diff options
Diffstat (limited to '')
71 files changed, 11623 insertions, 1808 deletions
diff --git a/doc/mailman-install.dvi b/doc/mailman-install.dvi Binary files differnew file mode 100644 index 00000000..80c5c1be --- /dev/null +++ b/doc/mailman-install.dvi diff --git a/doc/mailman-install.pdf b/doc/mailman-install.pdf Binary files differnew file mode 100644 index 00000000..6df47825 --- /dev/null +++ b/doc/mailman-install.pdf diff --git a/doc/mailman-install.ps b/doc/mailman-install.ps new file mode 100644 index 00000000..b2802765 --- /dev/null +++ b/doc/mailman-install.ps @@ -0,0 +1,2266 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.96.1 Copyright 2007 Radical Eye Software +%%Title: mailman-install.dvi +%%CreationDate: Wed Dec 5 17:20:46 2007 +%%Pages: 27 +%%PageOrder: Ascend +%%BoundingBox: 0 0 595 842 +%%DocumentFonts: Helvetica Helvetica-Oblique Times-Roman Times-Bold +%%+ Times-Italic Courier Times-BoldItalic Helvetica-Bold CMSY10 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -N0 -o mailman-install.ps mailman-install +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2007.12.05:1720 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: 8r.enc 0 0 +% File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30 +% +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, +% W. Schmidt, P. Lehman", +% version = "2.0", +% date = "27nov06", +% filename = "8r.enc", +% email = "tex-fonts@@tug.org", +% docstring = "This is the encoding vector for Type1 and TrueType +% fonts to be used with TeX. This file is part of the +% PSNFSS bundle, version 9" +% @} +% +% The idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol, +% MacRoman, and some extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% These are /dotlessj /ff /ffi /ffl. +% +% (4) hyphen appears twice for compatibility with both ASCII and Windows. +% +% (5) /Euro was assigned to 128, as in Windows ANSI +% +% (6) Missing characters from MacRoman encoding incorporated as follows: +% +% PostScript MacRoman TeXBase1 +% -------------- -------------- -------------- +% /notequal 173 0x16 +% /infinity 176 0x17 +% /lessequal 178 0x18 +% /greaterequal 179 0x19 +% /partialdiff 182 0x1A +% /summation 183 0x1B +% /product 184 0x1C +% /pi 185 0x1D +% /integral 186 0x81 +% /Omega 189 0x8D +% /radical 195 0x8E +% /approxequal 197 0x8F +% /Delta 198 0x9D +% /lozenge 215 0x9E +% +/TeXBase1Encoding [ +% 0x00 + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef /breve + /minus /.notdef /Zcaron /zcaron +% 0x10 + /caron /dotlessi /dotlessj /ff + /ffi /ffl /notequal /infinity + /lessequal /greaterequal /partialdiff /summation + /product /pi /grave /quotesingle +% 0x20 + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three + /four /five /six /seven + /eight /nine /colon /semicolon + /less /equal /greater /question +% 0x40 + /at /A /B /C + /D /E /F /G + /H /I /J /K + /L /M /N /O +% 0x50 + /P /Q /R /S + /T /U /V /W + /X /Y /Z /bracketleft + /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c + /d /e /f /g + /h /i /j /k + /l /m /n /o +% 0x70 + /p /q /r /s + /t /u /v /w + /x /y /z /braceleft + /bar /braceright /asciitilde /.notdef +% 0x80 + /Euro /integral /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /Omega /radical /approxequal +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /Delta /lozenge /Ydieresis +% 0xA0 + /.notdef /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot /hyphen /registered /macron +% 0xB0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde + /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def + + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 +ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ +pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get +div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type +/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end +definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup +sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll +mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ +exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} +forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def +end + +%%EndProcSet +%%BeginFont: CMSY10 +%!PS-AdobeFont-1.1: CMSY10 1.0 +%%CreationDate: 1991 Aug 15 07:20:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 15 /bullet put +readonly def +/FontBBox{-29 -960 1116 775}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A +27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF +5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 +0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 +DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A +71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 +4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C +515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609 +C627A8BECD6E1FA14A3B02476E90AAD8B4700C400380BC9AFFBF7847EB28661B +9DC3AA0F44C533F2E07DCC4DE19D367BF223E33DC321D0247A0E6EF6ABC8FA52 +15AE044094EF678A8726CD7C011F02BFF8AB6EAEEE391AD837120823BED0B5D8 +F8B15245377871A64F78378BB4330149D6941F7A86FBFFC49B93C94155F5FA7D +F22E7214511C0A92693F4CDBF38411651540572F2DD70D924AE0F18E1CD581F3 +C871399127FF5D07A868885B5FF7CDEB50B8323B2533DEF8DC973B1AE84FA0A2 + +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 39139632 55387786 1000 600 600 (mailman-install.dvi) +@start /Fa 136[48 2[22 26 3[33 37 1[18 2[18 37 33 3[29 +37 50[18 44[37 2[{TeXBase1Encoding ReEncodeFont}13 66.4176 +/Times-Bold rf /Fb 158[25 97[{TeXBase1Encoding ReEncodeFont}1 +49.8132 /Times-Italic rf /Fc 158[29 97[{TeXBase1Encoding ReEncodeFont}1 +58.1154 /Times-Italic rf /Fd 240[42 15[{}1 83.022 /CMSY10 +rf /Fe 134[42 4[25 3[46 46 46 5[46 6[42 49[21 47[{ +TeXBase1Encoding ReEncodeFont}8 74.7198 /Helvetica-Bold +rf /Ff 135[42 2[46 23 32 32 1[42 42 46 65 3[23 46 42 +1[37 42 2[42 51[28 45[{TeXBase1Encoding ReEncodeFont}16 +83.022 /Times-BoldItalic rf /Fg 138[55 2[44 2[50 55 6[50 +1[44 1[44 96[55 2[{TeXBase1Encoding ReEncodeFont}8 99.6264 +/Times-Bold rf /Fh 144[32 32 48 13 2[13 32 2[32 3[32 +49[16 47[{TeXBase1Encoding ReEncodeFont}9 58.1154 /Helvetica +rf /Fi 201[25 25 25 25 25 25 49[{TeXBase1Encoding ReEncodeFont}6 +49.8132 /Times-Roman rf /Fj 219[42 36[{ +.167 SlantFont TeXBase1Encoding ReEncodeFont}1 83.022 +/Times-Roman rf /Fk 119[45 10[45 45 45 45 45 45 45 45 +45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 +45 45 45 1[45 1[45 45 45 45 45 45 45 45 45 45 45 45 1[45 +45 45 45 45 45 1[45 45 45 45 45 45 45 1[45 45 45 45 45 +45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 +45 45 45 45 1[45 45 45 45 45 33[{TeXBase1Encoding ReEncodeFont}88 +74.7198 /Courier rf /Fl 133[50 50 50 50 50 50 50 50 50 +50 50 50 50 50 50 50 1[50 50 50 50 50 50 50 50 50 1[50 +10[50 50 50 1[50 50 1[50 50 2[50 2[50 50 50 50 1[50 50 +5[50 4[50 1[50 50 50 1[50 50 50 1[50 50 50 50 50 3[50 +35[{TeXBase1Encoding ReEncodeFont}54 83.022 /Courier +rf /Fm 201[29 29 29 29 29 29 49[{TeXBase1Encoding ReEncodeFont}6 +58.1154 /Times-Roman rf /Fn 134[50 50 1[50 55 28 50 33 +1[55 55 55 83 22 50 1[22 55 55 1[55 55 50 1[55 8[66 2[72 +1[66 72 78 66 78 72 83 55 4[78 1[66 72 72 66 66 10[55 +55 55 55 55 55 1[28 28 43[50 2[{TeXBase1Encoding ReEncodeFont}45 +99.6264 /Helvetica rf /Fo 107[28 28 25[42 42 60 42 46 +23 42 28 46 46 46 46 69 18 42 1[18 46 46 23 46 46 42 +46 46 8[55 1[55 60 51 55 60 65 55 65 1[69 46 2[23 60 +2[55 60 60 55 55 7[46 46 46 46 46 46 46 46 46 46 23 23 +28 42[42 2[{TeXBase1Encoding ReEncodeFont}58 83.022 /Helvetica +rf /Fp 134[33 33 48 33 33 18 26 22 1[33 33 33 52 18 33 +1[18 33 33 22 29 33 29 33 29 22 6[48 48 3[41 37 4[48 +59 3[22 3[41 48 44 44 12[33 2[33 33 2[17 22 17 4[22 5[22 +33[{TeXBase1Encoding ReEncodeFont}43 66.4176 /Times-Roman +rf /Fq 134[37 37 55 37 42 23 32 32 42 42 42 42 60 23 +37 1[23 42 42 23 37 42 37 42 42 7[46 51 69 51 60 46 42 +51 1[51 60 55 69 46 55 1[28 60 60 51 51 60 55 51 51 6[28 +7[42 42 2[21 28 5[28 36[42 2[{TeXBase1Encoding ReEncodeFont}54 +83.022 /Times-Italic rf /Fr 103[28 30[42 42 60 42 46 +28 32 37 46 46 42 46 69 23 46 1[23 46 42 28 37 46 37 +46 42 28 8[83 2[55 46 60 1[51 1[60 78 3[32 4[60 60 55 +4[47 2[28 42 42 42 42 42 42 42 42 42 42 23 21 28 1[47 +3[28 36[46 2[{TeXBase1Encoding ReEncodeFont}55 83.022 +/Times-Bold rf /Fs 167[43 9[43 4[20 73[{TeXBase1Encoding ReEncodeFont}3 +59.7758 /Times-Roman rf /Ft 134[37 37 54 37 37 21 29 +25 2[37 37 58 21 2[21 37 37 25 33 37 33 37 33 8[54 2[54 +46 42 2[42 54 54 66 46 2[25 1[54 23[21 19 25 19 44[{ +TeXBase1Encoding ReEncodeFont}36 74.7198 /Times-Roman +rf /Fu 139[25 29 33 14[33 42 37 31[54 65[{TeXBase1Encoding ReEncodeFont} +7 74.7198 /Times-Bold rf /Fv 103[25 29[37 37 37 54 37 +42 21 37 25 42 42 42 42 62 17 37 1[17 42 42 21 42 42 +37 42 42 12[46 50 54 1[50 58 1[62 42 2[21 2[46 50 54 +2[50 76 42 1[44 2[21 42 42 42 42 42 42 42 42 42 42 21 +21 25 2[29 25 25 1[50 35[37 2[{TeXBase1Encoding ReEncodeFont}60 +74.7198 /Helvetica rf /Fw 64[37 29[28 10[42 1[37 37 24[37 +42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 +42 28 37 42 37 42 37 28 6[60 60 78 60 60 51 46 55 60 +46 60 60 74 51 60 32 28 60 60 46 51 60 55 55 60 1[37 +1[47 1[23 23 42 42 42 42 42 42 42 42 42 42 23 21 28 21 +2[28 28 28 1[69 3[28 29[46 46 2[{TeXBase1Encoding ReEncodeFont}82 +83.022 /Times-Roman rf /Fx 134[60 1[86 60 66 33 60 40 +66 66 66 66 100 27 60 1[27 66 66 33 66 66 60 66 66 9[113 +2[73 80 86 1[80 2[100 3[33 5[86 80 8[66 66 66 66 66 66 +66 66 66 66 2[40 42[60 2[{TeXBase1Encoding ReEncodeFont}44 +119.552 /Helvetica rf /Fy 140[50 6[22 6[55 3[55 14[72 +31[55 55 2[28 46[{TeXBase1Encoding ReEncodeFont}8 99.6264 +/Helvetica-Oblique rf /Fz 138[115 57 103 3[115 115 172 +46 2[46 7[115 11[149 6[149 172 3[57 1[161 25[69 45[{ +TeXBase1Encoding ReEncodeFont}15 206.559 /Helvetica rf +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: A4 + end +%%EndSetup +%%Page: 1 1 +TeXDict begin 1 0 bop 0 83 3901 9 v 700 357 a Fz(GNU)57 +b(Mailman)g(-)g(Installation)h(Man)n(ual)3368 504 y Fy(Release)30 +b(2.1)3153 859 y Fx(Barr)t(y)i(W)-5 b(arsa)n(w)3289 1213 +y Fw(December)19 b(5,)h(2007)3229 1360 y Fv(barr)r(y)g(\(at\))g(list)g +(dot)g(org)1811 1581 y Fu(Abstract)208 1732 y Ft(This)30 +b(document)j(describes)f(ho)n(w)g(to)f(install)f(GNU)h(Mailman)h(on)f +(a)g(POSIX-based)g(system)h(such)g(as)h(U)t Fs(N)t(I)t(X)r +Ft(,)f(MacOSX,)f(or)208 1824 y(GNU/Linux.)45 b(It)26 +b(will)g(co)o(v)o(er)h(basic)g(installation)f(instructions,)j(as)e +(well)f(as)g(guidelines)i(for)e(inte)o(grating)h(Mailman)g(with)f(your) +208 1915 y(web)19 b(and)g(mail)g(serv)o(ers.)208 2006 +y(The)f(GNU)h(Mailman)g(website)g(is)g(at)g Fv(http://www)l(.list.org)0 +2287 y Fx(Contents)0 2472 y Fr(1)83 b(Installation)19 +b(Requir)o(ements)2810 b(2)0 2655 y(2)83 b(Set)20 b(up)h(y)n(our)f +(system)3064 b(3)125 2754 y Fw(2.1)85 b(Add)20 b(the)g(group)f(and)g +(user)47 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)143 b(3)125 2854 +y(2.2)85 b(Create)21 b(the)f(installation)g(directory)k(.)41 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)143 b(3)0 3037 y Fr(3)83 b(Build)21 b(and)g(install)f(Mailman) +2804 b(4)125 3136 y Fw(3.1)85 b(Run)21 b Fr(con\002gur)o(e)i +Fw(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)143 +b(4)125 3236 y(3.2)85 b(Mak)o(e)20 b(and)g(install)k(.)42 +b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)143 b(5)0 3419 +y Fr(4)83 b(Check)20 b(y)n(our)g(installation)2904 b(5)0 +3601 y(5)83 b(Set)20 b(up)h(y)n(our)f(web)g(ser)o(v)o(er)2921 +b(6)0 3784 y(6)83 b(Set)20 b(up)h(y)n(our)f(mail)g(ser)o(v)o(er)2907 +b(7)125 3884 y Fw(6.1)85 b(Using)21 b(the)f(Post\002x)g(mail)h(serv)o +(er)48 b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)143 b(7)315 3983 y(Inte)o(grating)18 +b(Post\002x)j(and)e(Mailman)61 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)143 b(7)315 4083 +y(V)-5 b(irtual)20 b(domains)43 b(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)143 b(9)315 4182 y(An)21 b(alternati)n(v)o(e)e(approach)29 +b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(10)125 4282 y(6.2)85 +b(Using)21 b(the)f(Exim)f(mail)i(serv)o(er)37 b(.)k(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 +b(10)315 4382 y(Exim)20 b(con\002guration)55 b(.)41 b(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)102 b(10)315 4481 y(Main)20 b(con\002guration)e +(settings)37 b(.)k(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(11)315 4581 y(T)m(ransport)19 +b(for)h(Exim)f(3)63 b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 +b(11)315 4681 y(Director)20 b(for)f(Exim)h(3)44 b(.)d(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)102 b(11)315 4780 y(Router)20 b(for)g(Exim)f(4)33 +b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(12)315 +4880 y(T)m(ransports)19 b(for)h(Exim)g(4)30 b(.)42 b(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)102 b(12)315 4979 y(Additional)19 b(notes)25 +b(.)42 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(12)315 +5079 y(Problems)76 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)102 b(12)315 5179 y(Recei)n(v)o(er)20 b(V)-9 b(eri\002cation)62 +b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(13)315 5278 +y(SMTP)21 b(Callback)43 b(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 +b(13)315 5378 y(Doing)20 b(VERP)h(with)f(Exim)g(and)f(Mailman)53 +b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 +b(14)p eop end +%%Page: 2 2 +TeXDict begin 2 1 bop 315 83 a Fw(V)-5 b(irtual)20 b(Domains)25 +b(.)42 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(14)315 +183 y(List)21 b(V)-9 b(eri\002cation)38 b(.)k(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)102 b(15)315 282 y(Document)19 b(History)k(.)41 +b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(15)125 382 +y(6.3)85 b(Using)21 b(the)f(Sendmail)f(mail)i(serv)o(er)28 +b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)102 b(15)315 482 y(Sendmail)20 b(\223smrsh\224)g +(compatibility)65 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(16)315 581 y(Inte)o(grating)18 +b(Sendmail)i(and)f(Mailman)40 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(16)315 681 y(Performance)18 +b(notes)81 b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(17)125 +780 y(6.4)85 b(Using)21 b(the)f(Qmail)g(mail)g(serv)o(er)72 +b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)102 b(17)315 880 y(Information)18 +b(on)i(VERP)30 b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(19)315 +980 y(V)-5 b(irtual)20 b(mail)h(serv)o(er)79 b(.)41 b(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)102 b(19)315 1079 y(More)20 b(information)44 +b(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(19)0 1262 +y Fr(7)83 b(Re)o(view)19 b(y)n(our)h(site)h(defaults)2807 +b(20)0 1445 y(8)83 b(Cr)o(eate)18 b(a)j(site-wide)f(mailing)g(list)2643 +b(20)0 1627 y(9)83 b(Set)20 b(up)h(cr)o(on)3287 b(20)0 +1810 y(10)41 b(Start)19 b(the)i(Mailman)f(qrunner)2722 +b(21)0 1993 y(11)41 b(Check)20 b(the)h(hostname)f(settings)2684 +b(22)0 2175 y(12)41 b(Cr)o(eate)18 b(the)j(site)g(passw)o(ord)2825 +b(22)0 2358 y(13)41 b(Cr)o(eate)18 b(y)n(our)i(\002rst)h(mailing)f +(list)2691 b(23)0 2540 y(14)41 b(T)-6 b(r)o(oubleshooting)3112 +b(23)0 2723 y(15)41 b(Platf)n(orm)18 b(and)j(operating)e(system)i +(notes)2393 b(25)125 2823 y Fw(15.1)43 b(GNU/Linux)19 +b(issues)82 b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 +b(25)125 2922 y(15.2)43 b(BSD)22 b(issues)72 b(.)41 b(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 b(25)125 3022 y(15.3)43 +b(MacOSX)21 b(issues)44 b(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)102 +b(26)p 0 3169 3901 9 v 0 3596 a Fx(1)120 b(Installation)35 +b(Requirements)0 3829 y Fq(Please)22 b(note)g(that)g(the)h(information) +e(on)h(this)h(pa)o(g)o(e)f(may)g(be)g(out)g(of)h(date)o(.)31 +b Fw(Check)22 b(for)g(the)g(latest)i(installation)e(information)e(on)i +(the)0 3928 y(Mailman)e(wiki.)0 4075 y(GNU)j(Mailman)f(w)o(orks)h(on)f +(most)h(POSIX-based)f(systems)h(such)f(as)k(U)t Fp(N)t(I)t(X)r +Fw(,)e(MacOSX,)f(or)f(GNU/Linux.)31 b(It)23 b(does)g(not)f(currently)0 +4175 y(w)o(ork)j(on)f(W)m(indo)n(ws.)40 b(Y)-9 b(ou)25 +b(must)g(ha)n(v)o(e)g(a)g(mail)h(serv)o(er)e(that)i(you)e(can)h(send)g +(messages)h(to,)g(and)f(a)g(web)h(serv)o(er)e(that)h(supports)g(the)0 +4274 y(CGI/1.1)18 b(API.)g(Apache)g(mak)o(es)g(a)g(\002ne)h(choice)e +(for)h(web)g(serv)o(er)m(,)g(and)f(mail)i(serv)o(ers)f(such)g(as)h +(Post\002x,)g(Exim,)e(Sendmail,)h(and)g(qmail)0 4374 +y(should)h(w)o(ork)h(just)g(\002ne.)0 4521 y(T)-7 b(o)21 +b(install)h(Mailman)e(from)g(source,)g(you)g(will)i(need)e(an)h(ANSI)g +(C)h(compiler)e(to)h(b)n(uild)f(Mailman')-5 b(s)21 b(security)f +(wrappers.)27 b(The)20 b(GNU)0 4621 y(C)h(compiler)e(gcc)h(w)o(orks)g +(well.)0 4767 y(Y)-9 b(ou)20 b(must)h(ha)n(v)o(e)f(the)h(Python)f +(interpreter)f(installed)h(some)n(where)g(on)g(your)g(system.)27 +b(As)21 b(of)g(this)g(writing,)f(Python)g(2.4.4)f(is)j(recom-)0 +4867 y(mended,)c(b)n(ut)j(see)f(the)h(wiki)f(page)f(abo)o(v)o(e)g(for)g +(the)i(latest)g(information.)p 0 5549 3901 4 v 0 5649 +a Fo(2)2788 b(1)83 b(Installation)25 b(Requirements)p +eop end +%%Page: 3 3 +TeXDict begin 3 2 bop 0 88 a Fx(2)120 b(Set)34 b(up)g(y)n(our)f(system) +0 321 y Fw(Before)17 b(installing)h(Mailman,)f(you)g(need)g(to)h +(prepare)f(your)f(system)i(by)g(adding)e(certain)h(users)h(and)g +(groups.)k(Y)-9 b(ou)17 b(will)i(need)e(to)h(ha)n(v)o(e)0 +421 y(root)i(pri)n(vile)o(ges)e(to)j(perform)d(the)i(steps)h(in)f(this) +h(section.)0 705 y Fn(2.1)100 b(Add)29 b(the)f(g)o(roup)i(and)f(user)0 +908 y Fw(Mailman)f(requires)g(a)h(unique)e(user)i(and)f(group)f(name)h +(which)g(will)i(o)n(wn)e(its)i(\002les,)h(and)d(under)g(which)g(its)i +(processes)e(will)i(run.)0 1008 y(Mailman')-5 b(s)21 +b(basic)g(security)f(is)i(based)f(on)f(group)g(o)n(wnership)f +(permissions,)h(so)i(it')-5 b(s)22 b(important)d(to)i(get)g(this)h +(step)f(right)3492 978 y Fm(1)3524 1008 y Fw(.)28 b(T)-7 +b(ypically)i(,)0 1108 y(you)29 b(will)h(add)f(a)h(ne)n(w)f(user)g(and)g +(a)h(ne)n(w)f(group,)h(both)f(called)g Fl(mailman)p Fw(.)52 +b(The)29 b Fl(mailman)g Fw(user)g(must)h(be)f(a)h(member)e(of)i(the)0 +1207 y Fl(mailman)25 b Fw(group.)40 b(Mailman)25 b(will)i(be)f +(installed)g(under)e(the)i Fl(mailman)f Fw(user)h(and)f(group,)g(with)h +(the)g(set-group-id)d(\(setgid\))i(bit)0 1307 y(enabled.)0 +1454 y(If)i(these)h(names)f(are)g(already)g(in)g(use,)j(you)c(can)h +(choose)g(dif)n(ferent)f(user)h(and)g(group)f(names,)i(as)g(long)f(as)h +(you)f(remember)e(these)0 1553 y(when)e(you)g(run)g Fr(con\002gur)o(e)p +Fw(.)34 b(If)23 b(you)g(choose)g(a)h(dif)n(ferent)e(unique)g(user)i +(name,)f(you)g(will)h(ha)n(v)o(e)f(to)h(specify)f(this)h(with)g +Fr(con\002gur)o(e)p Fw(')-5 b(s)0 1653 y Fr(--with-user)o(name)26 +b Fw(option,)i(and)e(if)i(you)e(choose)h(a)g(dif)n(ferent)f(group)g +(name,)i(you)e(will)i(ha)n(v)o(e)f(to)g(specify)g(this)h(with)f +Fr(con\002gur)o(e)p Fw(')-5 b(s)0 1753 y Fr(--with-gr)o(oupname)18 +b Fw(option.)0 1899 y(On)i(Linux)f(systems,)h(you)g(can)f(use)i(the)f +(follo)n(wing)e(commands)h(to)h(create)g(these)g(accounts.)k(Check)19 +b(your)g(system')-5 b(s)21 b(manual)e(pages)0 1999 y(for)h(details:)416 +2237 y Fk(\045)44 b(groupadd)g(mailman)416 2329 y(\045)g(useradd)g +(-c''GNU)g(Mailman'')f(-s)h(/no/shell)g(-d)g(/no/home)g(-g)g(mailman)g +(mailman)0 2753 y Fn(2.2)100 b(Create)29 b(the)f(installation)h +(director)s(y)0 2956 y Fw(T)-7 b(ypically)i(,)18 b(Mailman)i(is)h +(installed)e(into)h(a)g(single)g(directory)-5 b(,)18 +b(which)h(includes)g(both)g(the)h(Mailman)f(source)h(code)f(and)g(the)h +(run-time)0 3056 y(list)30 b(and)e(archi)n(v)o(e)f(data.)51 +b(It)29 b(is)h(possible)e(to)h(split)g(the)g(static)h(program)c +(\002les)k(from)e(the)h(v)n(ariable)e(data)i(\002les)h(and)e(install)h +(them)f(in)0 3156 y(separate)20 b(directories.)k(This)c(section)g(will) +h(describe)e(the)h(a)n(v)n(ailable)g(options.)0 3302 +y(The)15 b(def)o(ault)g(is)h(to)g(install)g(all)g(of)f(Mailman)g(to)g +(`)p Fv(/usr/local/mailman)p Fw(')2004 3272 y Fm(2)2033 +3302 y Fw(.)23 b(Y)-9 b(ou)15 b(can)g(change)g(this)h(base)f +(installation)g(directory)f(\(referred)0 3402 y(to)20 +b(here)g(as)h Fj($)p Fq(pr)m(e\002x)p Fw(\))e(by)g(specifying)g(the)h +(directory)f(with)h(the)g Fr(--pr)o(e\002x)f(con\002gur)o(e)g +Fw(option.)24 b(If)c(you')l(re)e(upgrading)g(from)h(a)h(pre)n(vious)0 +3502 y(v)o(ersion)f(of)h(Mailman,)f(you)g(may)h(w)o(ant)g(to)h(use)f +(the)g Fr(--pr)o(e\002x)g Fw(option)f(unless)h(you)f(mo)o(v)o(e)g(your) +g(mailing)g(lists.)p 0 3592 3901 17 v 0 3982 17 391 v +75 3707 a Fr(W)-5 b(ar)o(ning:)88 b Fw(Y)-9 b(ou)29 b(cannot)g(install) +h(Mailman)f(on)g(a)h(\002lesystem)g(that)g(is)h(mounted)d(with)i(the)g +Fl(nosuid)f Fw(option.)52 b(This)30 b(will)75 3807 y(break)17 +b(Mailman,)h(which)g(relies)h(on)f(setgid)h(programs)d(for)i(its)i +(security)-5 b(.)23 b(If)18 b(this)h(describes)f(your)g(en)m +(vironment,)d(simply)j(install)75 3906 y(Mailman)h(in)i(a)f(location)f +(that)i(allo)n(ws)f(setgid)g(programs.)p 3883 3982 V +0 3999 3901 17 v 0 4154 a(Mak)o(e)32 b(sure)g(the)g(installation)g +(directory)f(is)i(set)g(to)f(group)f Fl(mailman)g Fw(\(or)h(whate)n(v)o +(er)f(you')l(re)f(going)h(to)h(specify)g(with)g Fr(--with-)0 +4254 y(gr)o(oupname)p Fw(\))d(and)i(has)g(the)g(setgid)g(bit)g(set)1331 +4224 y Fm(3)1364 4254 y Fw(.)58 b(Y)-9 b(ou)30 b(probably)f(also)i(w)o +(ant)g(to)g(guarantee)e(that)i(this)g(directory)f(is)h(readable)f(and)0 +4353 y(e)o(x)o(ecutable)18 b(by)i(e)n(v)o(eryone.)i(F)o(or)e(e)o +(xample,)f(these)h(shell)h(commands)d(will)j(accomplish)e(this:)416 +4592 y Fk(\045)44 b(cd)h($prefix)416 4683 y(\045)f(chgrp)g(mailman)g(.) +416 4774 y(\045)g(chmod)g(a+rx,g+ws)g(.)0 5061 y Fw(Y)-9 +b(ou)20 b(are)g(no)n(w)f(ready)h(to)g(con\002gure)e(and)i(install)h +(the)f(Mailman)f(softw)o(are.)p 0 5132 1560 4 v 90 5187 +a Fi(1)120 5211 y Fp(Y)-7 b(ou)16 b(will)i(be)f(able)i(to)e(check)h +(and)g(repair)g(your)g(permissions)g(after)g(installation)j(is)c +(complete.)90 5269 y Fi(2)120 5292 y Fp(This)f(is)h(the)h(def)o(ault)h +(for)e(Mailman)i(2.1.)h(Earlier)e(v)o(ersions)g(of)f(Mailman)i +(installed)g(e)n(v)o(erything)h(under)e(`)p Fh(/home/mailman)p +Fp(')i(by)d(def)o(ault.)90 5350 y Fi(3)120 5373 y Fp(BSD)f(users)h +(should)h(see)g(the)f(15.2)g(section)i(for)e(additional)j(information.) +p 0 5549 3901 4 v 3854 5649 a Fo(3)p eop end +%%Page: 4 4 +TeXDict begin 4 3 bop 0 86 a Fx(3)120 b(Build)33 b(and)i(install)d +(Mailman)0 336 y Fn(3.1)100 b(Run)29 b Fg(con\002gur)n(e)0 +539 y Fw(Before)20 b(you)f(can)h(install)h(Mailman,)e(you)g(must)h(run) +g Fr(con\002gur)o(e)f Fw(to)i(set)g(v)n(arious)e(installation)g +(options)h(your)f(system)h(might)g(need.)0 686 y Fr(Note:)79 +b Fw(T)-7 b(ak)o(e)27 b(special)h(note)f(of)g(the)g Fr(--with-mail-gid) +f Fw(and)h Fr(--with-cgi-gid)e Fw(options)i(belo)n(w)-5 +b(.)45 b(Y)-9 b(ou)27 b(will)h(probably)d(need)i(to)g(use)0 +785 y(these.)0 932 y(Y)-9 b(ou)18 b(should)f Fr(not)h +Fw(be)g(root)g(while)g(performing)d(the)j(steps)h(in)f(this)h(section.) +24 b(Do)18 b(them)g(under)f(your)g(o)n(wn)h(login,)f(or)h(whate)n(v)o +(er)f(account)0 1032 y(you)23 b(typically)g(use)g(to)h(install)h(softw) +o(are.)34 b(Y)-9 b(ou)24 b(do)f(not)g(need)g(to)h(do)f(these)h(steps)g +(as)h(user)e Fl(mailman)p Fw(,)h(b)n(ut)g(you)e(could.)35 +b(Ho)n(we)n(v)o(er)m(,)0 1131 y(mak)o(e)28 b(sure)g(that)g(the)g(login) +f(used)h(is)h(a)f(member)f(of)h(the)g Fl(mailman)f Fw(group)f(as)j +(that)f(that)g(group)f(has)h(write)g(permissions)f(to)i(the)0 +1231 y Fj($)p Fq(pr)m(e\002x)c Fw(directory)e(made)i(in)h(the)f(pre)n +(vious)f(step.)41 b(Y)-9 b(ou)24 b(must)i(also)g(ha)n(v)o(e)e +(permission)h(to)g(create)g(a)h(setgid)f(\002le)h(in)g(the)f(\002le)h +(system)0 1331 y(where)20 b(it)g(resides)h(\(NFS)f(and)g(other)f +(mounts)h(can)g(be)g(con\002gured)e(to)i(inhibit)g(setgid)g +(settings\).)0 1477 y(If)i(you')l(v)o(e)e(installed)j(other)e(GNU)i +(softw)o(are,)f(you)f(should)h(be)g(f)o(amiliar)g(with)h(the)f +Fr(con\002gur)o(e)f Fw(script.)32 b(Usually)22 b(you)f(can)i(just)f +Fr(cd)h Fw(to)0 1577 y(the)d(directory)f(you)g(unpack)o(ed)f(the)i +(Mailman)g(source)f(tarball)h(into,)g(and)f(run)h Fr(con\002gur)o(e)f +Fw(with)i(no)e(ar)o(guments:)326 1815 y Fk(\045)45 b(cd)f +(mailman-<version>)326 1907 y(\045)h(./configure)326 +1998 y(\045)g(make)f(install)0 2284 y Fw(The)20 b(follo)n(wing)e +(options)i(allo)n(w)g(you)f(to)h(customize)g(your)f(Mailman)g +(installation.)0 2514 y Fr(--pr)o(e\002x=)p Ff(dir)40 +b Fw(Standard)27 b(GNU)i(con\002gure)d(option)h(which)h(changes)f(the)i +(base)f(directory)f(that)h(Mailman)g(is)h(installed)f(into.)49 +b(By)208 2614 y(def)o(ault)19 b Fj($)p Fq(pr)m(e\002x)h +Fw(is)h(`)p Fv(/usr/local/mailman)p Fw('.)f(This)h(directory)d(must)i +(already)g(e)o(xist,)g(and)f(be)h(set)h(up)f(as)h(described)e(in)h +(2.2.)0 2780 y Fr(--exec-pr)o(e\002x=)p Ff(dir)39 b Fw(Standard)22 +b(GNU)h(con\002gure)f(option)g(which)h(lets)h(you)e(specify)h(a)h(dif)n +(ferent)d(installation)i(directory)f(for)g(archi-)208 +2880 y(tecture)d(dependent)f(binaries.)0 3046 y Fr(--with-v)o(ar)m(-pr) +o(e\002x=)p Ff(dir)38 b Fw(Store)26 b(mutable)f(data)h(under)f +Fq(dir)k Fw(instead)d(of)g(under)e(the)j Fj($)p Fq(pr)m(e\002x)e +Fw(or)h Fj($)p Fq(e)n(xec)p 3023 3046 25 4 v 29 w(pr)m(e\002x)p +Fw(.)43 b(Examples)25 b(of)h(such)208 3145 y(data)20 +b(include)f(the)h(list)h(archi)n(v)o(es)e(and)h(list)h(settings)g +(database.)0 3311 y Fr(--with-python=`)p Fe(/path/to/p)o(ython)o +Fr(')36 b Fw(Specify)29 b(an)g(alternati)n(v)o(e)g(Python)g +(interpreter)f(to)i(use)g(for)f(the)h(wrapper)f(programs.)52 +b(The)208 3411 y(def)o(ault)19 b(is)i(to)g(use)f(the)g(interpreter)f +(found)f(\002rst)j(on)f(your)f(shell')-5 b(s)21 b Fj($)p +Fq(P)-7 b(A)m(TH)t Fw(.)0 3577 y Fr(--with-user)o(name=)p +Ff(username-or-uid)40 b Fw(Specify)19 b(a)g(dif)n(ferent)f(username)g +(than)h Fl(mailman)p Fw(.)24 b(The)19 b(v)n(alue)f(of)h(this)h(option)e +(can)h(be)h(an)208 3677 y(inte)o(ger)f(user)h(id)g(or)g(a)h(user)f +(name.)k(Be)d(sure)f(your)f Fj($)p Fq(pr)m(e\002x)g Fw(directory)g(is)i +(o)n(wned)e(by)h(this)h(user)-5 b(.)0 3843 y Fr(--with-gr)o(oupname=)p +Ff(groupname-or-gid)37 b Fw(Specify)21 b(a)h(dif)n(ferent)e(groupname)f +(than)i Fl(mailman)p Fw(.)30 b(The)21 b(v)n(alue)g(of)h(this)g(option)f +(can)208 3942 y(be)f(an)g(inte)o(ger)f(group)f(id)j(or)f(a)g(group)f +(name.)24 b(Be)d(sure)f(your)f Fj($)p Fq(pr)m(e\002x)g +Fw(directory)g(is)i(group-o)n(wned)16 b(by)k(this)h(group.)0 +4108 y Fr(--with-mail-gid=)p Ff(group-or-groups)37 b +Fw(Specify)25 b(an)g(alternati)n(v)o(e)g(group)f(for)h(running)e +(scripts)j(via)g(the)f(mail)h(wrapper)-5 b(.)40 b Fq(gr)l(oup-or)n(-) +208 4208 y(gr)l(oups)23 b Fw(can)h(be)g(a)h(list)g(of)f(one)f(or)h +(more)g(inte)o(ger)f(group)f(ids)j(or)f(symbolic)f(group)f(names.)37 +b(The)23 b(\002rst)i(v)n(alue)f(in)g(the)g(list)h(that)208 +4308 y(resolv)o(es)19 b(to)h(an)h(e)o(xisting)e(group)f(is)k(used.)i +(By)d(def)o(ault,)e(the)h(v)n(alue)g(is)h(the)f(list)h +Fl(mailman)p Fw(,)f Fl(other)p Fw(,)f Fl(mail)p Fw(,)h(and)g +Fl(daemon)p Fw(.)208 4440 y Fr(Note:)85 b Fw(This)29 +b(is)h(highly)e(system)h(dependent)d(and)j(you)f(must)h(get)g(this)g +(right,)i(because)d(the)h(group)e(id)i(is)h(compiled)e(into)208 +4540 y(the)23 b(mail)h(wrapper)e(program)f(for)i(added)g(security)-5 +b(.)34 b(On)23 b(systems)h(using)f Fr(sendmail)p Fw(,)i(the)f(`)p +Fv(sendmail.cf)p Fw(')d(con\002guration)g(\002le)208 +4640 y(designates)f(the)g(group)f(id)i(of)f Fr(sendmail)h +Fw(processes)g(using)f(the)g Fq(DefaultUser)j Fw(option.)i(\(If)20 +b(commented)e(out,)i(it)i(still)g(may)e(be)208 4739 y(indicating)e(the) +j(def)o(ault...\))208 4872 y(Check)e(your)g(mail)i(serv)o(er')-5 +b(s)19 b(documentation)f(and)h(con\002guration)f(\002les)j(to)f(\002nd) +g(the)g(right)g(v)n(alue)g(for)f(this)i(switch.)0 5038 +y Fr(--with-cgi-gid=)p Ff(group-or-groups)37 b Fw(Specify)29 +b(an)h(alternati)n(v)o(e)f(group)g(for)g(running)f(scripts)j(via)f(the) +g(CGI)h(wrapper)-5 b(.)54 b Fq(gr)l(oup-or)n(-)208 5138 +y(gr)l(oups)23 b Fw(can)h(be)g(a)h(list)g(of)f(one)f(or)h(more)g(inte)o +(ger)f(group)f(ids)j(or)f(symbolic)f(group)f(names.)37 +b(The)23 b(\002rst)i(v)n(alue)f(in)g(the)g(list)h(that)208 +5237 y(resolv)o(es)19 b(to)h(an)h(e)o(xisting)e(group)f(is)k(used.)i +(By)d(def)o(ault,)e(the)h(v)n(alue)g(is)h(the)f(the)g(list)i +Fl(www)p Fw(,)e Fl(www-data)p Fw(,)f(and)g Fl(nobody)p +Fw(.)p 0 5549 3901 4 v 0 5649 a Fo(4)2807 b(3)83 b(Build)25 +b(and)e(install)h(Mailman)p eop end +%%Page: 5 5 +TeXDict begin 5 4 bop 208 83 a Fr(Note:)47 b Fw(The)17 +b(proper)f(v)n(alue)h(for)g(this)i(is)f(dependent)e(on)h(your)f(web)i +(serv)o(er)f(con\002guration.)k(Y)-9 b(ou)17 b(must)h(get)g(this)g +(right,)f(because)208 183 y(the)h(group)f(id)i(is)h(compiled)d(into)h +(the)h(CGI)g(wrapper)e(program)g(for)h(added)g(security)-5 +b(,)17 b(and)h(no)h(Mailman)f(CGI)h(scripts)g(will)g(run)208 +282 y(if)h(this)h(is)g(incorrect.)208 415 y(If)f(you')l(re)e(using)i +(Apache,)f(check)g(the)h(v)n(alues)g(for)g(the)g Fq(Gr)l(oup)g +Fw(option)e(in)j(your)e(`)p Fv(httpd.conf)p Fw(')e(\002le.)0 +581 y Fr(--with-cgi-ext=)p Ff(extension)38 b Fw(Specify)24 +b(an)g(e)o(xtension)e(for)i(cgi-bin)f(programs.)35 b(The)24 +b(CGI)h(wrappers)e(placed)g(in)h(`)p Fj($)p Fq(pr)m(e\002x)p +Fo(/cgi-bin)p Fw(')208 681 y(will)c(ha)n(v)o(e)g(this)h(e)o(xtension)e +(\(some)g(web)h(serv)o(ers)g(require)f(an)h(e)o(xtension\).)j +Fq(e)n(xtension)d Fw(must)g(include)f(the)h(leading)f(dot.)0 +847 y Fr(--with-mailhost=)p Ff(hostname)39 b Fw(Specify)27 +b(the)h(fully)f(quali\002ed)g(host)g(name)g(part)h(for)f(outgoing)e +(email.)47 b(After)28 b(the)f(installation)h(is)208 946 +y(complete,)18 b(this)j(v)n(alue)f(can)g(be)g(o)o(v)o(erriden)d(in)k(`) +p Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/mm)p 2308 946 25 +4 v 30 w(cfg.p)n(y)p Fw('.)0 1112 y Fr(--with-urlhost=)p +Ff(hostname)39 b Fw(Specify)25 b(the)g(fully)f(quali\002ed)h(host)g +(name)f(part)h(of)g(urls.)39 b(After)25 b(the)g(installation)g(is)h +(complete,)f(this)208 1212 y(v)n(alue)19 b(can)h(be)g(o)o(v)o(erriden)e +(in)i(`)p Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/mm)p 1821 +1212 V 30 w(cfg.p)n(y)p Fw('.)0 1378 y Fr(--with-gcc=no)40 +b Fw(Don')o(t)18 b(use)j(gcc,)f(e)n(v)o(en)f(if)h(it)h(is)g(found.)j +(In)19 b(this)i(case,)g Fr(cc)f Fw(must)g(be)g(found)f(on)h(your)f +Fj($)p Fq(P)-7 b(A)m(TH)t Fw(.)0 1663 y Fn(3.2)100 b(Mak)n(e)28 +b(and)h(install)0 1866 y Fw(Once)20 b(you')l(v)o(e)e(run)h +Fr(con\002gur)o(e)p Fw(,)g(you)h(can)g(simply)f(run)h +Fr(mak)o(e)p Fw(,)g(then)g Fr(mak)o(e)h(install)f Fw(to)h(b)n(uild)e +(and)h(install)h(Mailman.)0 2193 y Fx(4)120 b(Chec)n(k)34 +b(y)n(our)f(installation)0 2426 y Fw(After)e(you')l(v)o(e)d(run)i +Fr(mak)o(e)i(install)p Fw(,)h(you)d(should)g(check)g(that)h(your)f +(installation)g(has)i(all)f(the)g(correct)f(permissions)g(and)g(group)0 +2526 y(o)n(wnerships)24 b(by)h(running)e(the)i Fr(check)p +1130 2526 V 30 w(perms)h Fw(script.)40 b(First)26 b(change)e(to)i(the)f +(installation)g(\(i.e.)40 b Fj($)p Fq(pr)m(e\002x)p Fw(\))24 +b(directory)-5 b(,)24 b(then)h(run)g(the)0 2625 y Fr(bin/check)p +346 2625 V 30 w(perms)30 b Fw(program.)47 b(Don')o(t)28 +b(try)g(to)h(run)f(bin/check)p 1881 2625 V 27 w(perms)g(from)g(the)g +(source)g(directory;)j(it)e(will)h(only)d(run)h(from)g(the)0 +2725 y(installation)20 b(directory)-5 b(.)0 2872 y(If)20 +b(this)h(reports)e(no)h(problems,)f(then)h(it')-5 b(s)21 +b(v)o(ery)f(lik)o(ely)g(\241wink\277)f(that)i(your)e(installation)h(is) +h(set)g(up)f(correctly)-5 b(.)24 b(If)c(it)h(reports)e(problems,)0 +2972 y(then)j(you)g(can)h(either)f(\002x)h(them)g(manually)-5 +b(,)21 b(re-run)g(the)i(installation,)g(or)f(use)h Fr(bin/check)p +2651 2972 V 30 w(perms)h Fw(to)f(\002x)g(the)g(problems)e(\(probably)0 +3071 y(the)f(easiest)h(solution\):)125 3301 y Fd(\017)41 +b Fw(Y)-9 b(ou)19 b(need)h(to)g(become)f(the)h(user)g(that)h(did)e(the) +i(installation,)e(and)h(that)g(o)n(wns)g(all)h(the)f(\002les)h(in)f +Fj($)p Fq(pr)m(e\002x)p Fw(,)g(or)g(root.)125 3467 y +Fd(\017)41 b Fw(Run)20 b Fr(bin/check)p 713 3467 V 30 +w(perms)h(-f)125 3633 y Fd(\017)41 b Fw(Repeat)20 b(pre)n(vious)e(step) +j(until)f(no)g(more)f(errors)g(are)i(reported!)p 0 3806 +3901 17 v 0 5109 17 1303 v 75 3922 a Fr(W)-5 b(ar)o(ning:)83 +b Fw(If)28 b(you')l(re)f(running)f(Mailman)i(on)h(a)g(shared)e +(multiuser)h(system,)j(and)d(you)f(ha)n(v)o(e)h(mailing)g(lists)i(with) +f(pri)n(v)n(ate)75 4021 y(archi)n(v)o(es,)23 b(you)g(may)h(w)o(ant)g +(to)g(hide)g(the)g(pri)n(v)n(ate)f(archi)n(v)o(e)f(directory)h(from)g +(other)g(users)h(on)f(your)g(system.)37 b(In)23 b(that)i(case,)g(you)75 +4121 y(should)h(drop)g(the)i(other)e(e)o(x)o(ecute)g(permission)g +(\(o-x\))g(from)h(the)g(`)p Fv(archiv)n(es/pr)q(iv)n(ate)p +Fw(')e(directory)-5 b(.)44 b(Ho)n(we)n(v)o(er)m(,)27 +b(the)g(web)h(serv)o(er)75 4221 y(process)17 b(must)h(be)g(able)g(to)g +(follo)n(w)f(the)h(symbolic)f(link)g(in)h(public)f(directory)-5 +b(,)16 b(otherwise)h(your)g(public)g(Pipermail)g(archi)n(v)o(es)g(will) +75 4320 y(not)j(w)o(ork.)k(T)-7 b(o)20 b(set)h(this)g(up,)e(become)g +(root)h(and)g(run)f(the)h(follo)n(wing)f(commands:)311 +4511 y Fk(#)45 b(cd)f(<prefix>/archives)311 4602 y(#)h(chown)f +(<web-server-user>)e(private)311 4694 y(#)j(chmod)f(o-x)g(private)75 +4933 y Fw(Y)-9 b(ou)21 b(need)h(to)g(kno)n(w)f(what)h(user)g(your)f +(web)h(serv)o(er)g(runs)g(as.)31 b(It)23 b(may)e(be)h +Fl(www)p Fw(,)h Fl(apache)p Fw(,)f Fl(httpd)g Fw(or)g +Fl(nobody)p Fw(,)f(depending)75 5033 y(on)e(your)g(serv)o(er')-5 +b(s)20 b(con\002guration.)p 3883 5109 V 0 5125 3901 17 +v 0 5549 3901 4 v 0 5649 a Fo(3.2)83 b(Mak)n(e)24 b(and)f(install)3059 +b(5)p eop end +%%Page: 6 6 +TeXDict begin 6 5 bop 0 88 a Fx(5)120 b(Set)34 b(up)g(y)n(our)f(w)o(eb) +i(ser)t(v)m(er)0 321 y Fw(Congratulations!)26 b(Y)-9 +b(ou')l(v)o(e)19 b(installed)i(the)h(Mailman)e(softw)o(are.)28 +b(T)-7 b(o)21 b(get)g(e)n(v)o(erything)e(running)g(you)h(need)h(to)g +(hook)f(Mailman)h(up)f(to)0 421 y(both)f(your)g(web)h(serv)o(er)g(and)f +(your)g(mail)i(system.)0 567 y(If)15 b(you)g(plan)g(on)g(running)e +(your)i(mail)g(and)g(web)h(serv)o(ers)f(on)g(dif)n(ferent)f(machines,)h +(sharing)f(Mailman)h(installations)h(via)f(NFS,)h(be)g(sure)0 +667 y(that)g(the)f(clocks)h(on)f(those)h(tw)o(o)g(machines)e(are)i +(synchronized)d(closely)-5 b(.)23 b(Y)-9 b(ou)15 b(might)g(tak)o(e)g(a) +i(look)d(at)j(the)e(\002le)i(`)p Fv(Mailman/Loc)o(kFile)o(.p)n(y)p +Fw(';)0 767 y(the)j(constant)g Fq(CLOCK)p 696 767 25 +4 v 31 w(SLOP)g Fw(helps)g(the)g(locking)f(mechanism)g(compensate)g +(for)g(clock)h(sk)o(e)n(w)g(in)g(this)h(type)f(of)g(en)m(vironment.)0 +914 y(This)29 b(section)f(describes)g(some)g(of)g(the)h(things)f(you)f +(need)h(to)h(do)f(to)h(connect)e(Mailman')-5 b(s)28 b(web)g(interf)o +(ace)g(to)h(your)e(web)h(serv)o(er)-5 b(.)0 1013 y(The)28 +b(instructions)f(here)h(are)g(some)n(what)f(geared)g(to)n(w)o(ard)h +(the)g(Apache)g(web)g(serv)o(er)m(,)g(so)h(you)e(should)h(consult)f +(your)g(web)h(serv)o(er)0 1113 y(documentation)17 b(for)j(details.)0 +1260 y(Y)-9 b(ou)22 b(must)g(con\002gure)f(your)g(web)i(serv)o(er)e(to) +i(enable)f(CGI)h(script)f(permission)g(in)g(the)h(`)p +Fj($)p Fq(pr)m(e\002x)p Fo(/cgi-bin)p Fw(')e(to)i(run)f(CGI)h(scripts.) +32 b(The)0 1359 y(line)23 b(you)f(should)g(add)g(might)h(look)f +(something)f(lik)o(e)j(the)f(follo)n(wing,)e(with)i(the)g(real)g +(absolute)g(directory)e(substituted)h(for)h Fj($)p Fq(pr)m(e\002x)p +Fw(,)0 1459 y(of)d(course:)416 1697 y Fk(Exec)358 b(/mailman/)1359 +1710 y(*)1671 1697 y($prefix/cgi-bin/)2391 1710 y(*)0 +1965 y Fw(or:)416 2203 y Fk(ScriptAlias)43 b(/mailman/)312 +b($prefix/cgi-bin/)p 0 2449 3901 17 v 0 2740 17 292 v +75 2565 a Fr(W)-5 b(ar)o(ning:)65 b Fw(Y)-9 b(ou)24 b(w)o(ant)g(to)g +(be)g(v)o(ery)f(sure)h(that)g(the)g(user)g(id)h(under)d(which)i(your)f +(CGI)h(scripts)h(run)e(is)i Fr(not)f Fw(in)g(the)h Fl(mailman)75 +2664 y Fw(group)18 b(you)h(created)h(abo)o(v)o(e,)e(otherwise)i(pri)n +(v)n(ate)f(archi)n(v)o(es)g(will)i(be)f(accessible)g(to)h(an)o(yone.)p +3883 2740 V 0 2757 3901 17 v 0 2912 a(Cop)o(y)k(the)h(Mailman,)g +(Python,)f(and)g(GNU)h(logos)f(to)g(a)h(location)f(accessible)g(to)h +(your)e(web)i(serv)o(er)-5 b(.)40 b(E.g.)g(with)26 b(Apache,)g(you')l +(v)o(e)0 3012 y(usually)20 b(got)f(an)i(`)p Fv(icons)p +Fw(')e(directory)f(that)j(you)e(can)h(drop)f(the)h(images)g(into.)25 +b(F)o(or)20 b(e)o(xample:)416 3250 y Fk(\045)44 b(cp)h($prefix/icons/) +1270 3263 y(*)1315 3250 y(.{jpg,png})40 b(/path/to/apache/icons)0 +3541 y Fw(Y)-9 b(ou)25 b(then)g(w)o(ant)g(to)h(add)f(a)g(line)h(to)f +(your)g(`)p Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/mm)p +1992 3541 25 4 v 30 w(cfg.p)n(y)p Fw(')g(\002le)h(which)e(sets)j(the)e +(base)h(URL)g(for)f(the)g(logos.)40 b(F)o(or)0 3641 y(e)o(xample:)326 +3879 y Fk(IMAGE_LOGOS)j(=)i('/images/')0 4166 y Fw(The)20 +b(def)o(ault)f(v)n(alue)h(for)f Fq(IMA)m(GE)p 977 4166 +V 30 w(LOGOS)h Fw(is)i(`)p Fv(/icons/)p Fw('.)h(Read)e(the)f(comment)f +(in)h(`)p Fv(Def)n(aults)o(.p)n(y)-7 b(.in)p Fw(')16 +b(for)j(details.)0 4312 y(Con\002gure)g(your)g(web)h(serv)o(er)f(to)i +(point)e(to)h(the)h(Pipermail)e(public)g(mailing)h(list)h(archi)n(v)o +(es.)j(F)o(or)c(e)o(xample,)e(in)j(Apache:)416 4551 y +Fk(Alias)133 b(/pipermail/)223 b($varprefix/archives/public/)0 +4841 y Fw(where)28 b Fj($)p Fq(varpr)m(e\002x)g Fw(is)i(usually)e +Fj($)p Fq(pr)m(e\002x)g Fw(unless)h(you')l(v)o(e)e(used)i(the)g +Fr(--with-v)o(ar)m(-pr)o(e\002x)d Fw(option)h(to)i Fr(con\002gur)o(e)p +Fw(.)51 b(Also)29 b(be)g(sure)f(to)0 4941 y(con\002gure)e(your)g(web)i +(serv)o(er)e(to)i(follo)n(w)f(symbolic)g(links)h(in)f(this)i(directory) +-5 b(,)27 b(otherwise)g(public)f(Pipermail)i(archi)n(v)o(es)e(w)o(on')o +(t)h(be)0 5040 y(accessible.)e(F)o(or)20 b(Apache)f(users,)h(consult)g +(the)g Fq(F)-9 b(ollowSymLinks)20 b Fw(option.)0 5187 +y(If)c(you')l(re)e(going)h(to)h(be)g(supporting)e(internationalized)f +(public)i(archi)n(v)o(es,)h(you)f(will)i(probably)c(w)o(ant)k(to)f +(turn)f(of)n(f)g(an)o(y)h(def)o(ault)f(charset)0 5287 +y(directi)n(v)o(e)25 b(for)g(the)g(Pipermail)h(directory)-5 +b(,)24 b(otherwise)i(your)e(multilingual)g(archi)n(v)o(e)h(pages)g(w)o +(on')o(t)g(sho)n(w)g(up)h(correctly)-5 b(.)40 b(Here')-5 +b(s)26 b(an)0 5386 y(e)o(xample)19 b(for)g(Apache,)g(based)h(on)g(the)g +(standard)f(installation)h(directories:)p 0 5549 3901 +4 v 0 5649 a Fo(6)2873 b(5)83 b(Set)24 b(up)g(y)n(our)e(w)o(eb)i(ser)r +(v)n(er)p eop end +%%Page: 7 7 +TeXDict begin 7 6 bop 416 174 a Fk(<Directory)43 b +("/usr/local/mailman/archives/public/")o(>)595 266 y(AddDefaultCharset) +f(Off)416 357 y(</Directory>)0 644 y Fw(No)n(w)20 b(restart)g(your)f +(web)h(serv)o(er)-5 b(.)0 971 y Fx(6)120 b(Set)34 b(up)g(y)n(our)f +(mail)g(ser)t(v)m(er)0 1204 y Fw(This)18 b(section)f(describes)g(some)g +(of)g(the)h(things)f(you)f(need)h(to)h(do)f(to)g(connect)g(Mailman')-5 +b(s)17 b(email)g(interf)o(ace)g(to)g(your)g(mail)g(serv)o(er)-5 +b(.)24 b(The)0 1303 y(instructions)f(here)g(are)h(dif)n(ferent)e(for)h +(each)h(mail)g(serv)o(er;)h(if)f(your)e(mail)j(serv)o(er)e(is)h(not)g +(described)e(in)i(the)g(follo)n(wing)e(subsections,)0 +1403 y(try)i(to)g(generalize)f(from)g(the)h(e)o(xisting)f +(documentation,)f(and)h(consider)g(contrib)n(uting)f(documentation)f +(updates)i(to)h(the)g(Mailman)0 1503 y(de)n(v)o(elopers.)0 +1788 y Fn(6.1)100 b(Using)28 b(the)h(P)-5 b(ost\002x)27 +b(mail)i(ser)s(v)n(er)0 1990 y Fw(Mailman)22 b(should)f(w)o(ork)g +(pretty)h(much)f(out)h(of)g(the)g(box)f(with)i(a)f(standard)f +(Post\002x)i(installation.)30 b(It)23 b(has)f(been)g(tested)g(with)h(v) +n(arious)0 2090 y(Post\002x)d(v)o(ersions)g(up)f(to)i(and)e(including)g +(Post\002x)h(2.1.5.)0 2237 y(In)e(order)g(to)g(support)g(Mailman')-5 +b(s)18 b(optional)f(VERP)i(deli)n(v)o(ery)-5 b(,)17 b(you)h(will)h(w)o +(ant)g(to)f(disable)h Fl(luser_relay)e Fw(\(the)h(def)o(ault\))f(and)h +(you)0 2337 y(will)i(w)o(ant)e(to)h(set)h Fl(recipient_delimiter)c +Fw(for)i(e)o(xtended)f(address)h(semantics.)25 b(Y)-9 +b(ou)18 b(should)g(comment)f(out)h(an)o(y)g Fl(luser_-)0 +2436 y(relay)i Fw(v)n(alue)f(in)i(your)e(`)p Fv(main.cf)p +Fw(')f(and)i(just)h(go)f(with)g(the)g(def)o(aults.)25 +b(Also,)20 b(add)g(this)g(to)h(your)e(`)p Fv(main.cf)p +Fw(')g(\002le:)416 2674 y Fk(recipient_delimiter)41 b(=)k(+)0 +2961 y Fw(Using)15 b(`)p Fl(+)p Fw(')h(as)g(the)f(delimiter)g(w)o(orks) +g(well)h(with)g(the)f(def)o(ault)g(v)n(alues)g(for)g +Fq(VERP)p 2306 2961 25 4 v 29 w(FORMA)m(T)22 b Fw(and)15 +b Fq(VERP)p 3022 2961 V 29 w(REGEXP)f Fw(in)i(`)p Fv(Def)n(aults)o(.p)n +(y)p Fw('.)0 3108 y(When)21 b(attempting)f(to)h(deli)n(v)o(er)f(a)h +(message)g(to)g(a)h(non-e)o(xistent)d(local)i(address,)f(Post\002x)i +(may)e(return)g(a)i(450)e(error)g(code.)27 b(Since)21 +b(this)0 3207 y(is)i(a)f(transient)f(error)g(code,)g(Mailman)g(will)i +(continue)d(to)i(attempt)f(to)h(deli)n(v)o(er)f(the)h(message)f(for)g +Fq(DELIVER)o(Y)p 3240 3207 V 29 w(RETR)o(Y)p 3513 3207 +V 28 w(PERIOD)g Fw(\226)0 3307 y(5)d(days)g(by)g(def)o(ault.)24 +b(Y)-9 b(ou)17 b(might)h(w)o(ant)g(to)g(set)h(Post\002x)g(up)f(so)g +(that)g(it)h(returns)f(permanent)e(error)h(codes)h(for)f(non-e)o +(xistent)f(local)i(users)0 3407 y(by)i(adding)f(the)h(follo)n(wing)e +(to)j(your)e(`)p Fv(main.cf)p Fw(')f(\002le:)416 3645 +y Fk(unknown_local_recipient_reject_code)38 b(=)45 b(550)0 +3931 y Fw(Finally)-5 b(,)19 b(if)i(you)e(are)h(using)g(Post\002x-style) +g(virtual)f(domains,)g(read)h(the)g(section)g(on)g(virtual)f(domain)g +(support)g(belo)n(w)-5 b(.)0 4200 y Fo(Integ)o(r)o(ating)25 +b(P)l(ost\002x)d(and)h(Mailman)0 4403 y Fw(Y)-9 b(ou)30 +b(can)h(inte)o(grate)f(Post\002x)h(and)f(Mailman)g(such)h(that)g(when)f +(ne)n(w)h(lists)h(are)f(created,)i(or)d(lists)j(are)d(remo)o(v)o(ed,)h +(Post\002x')-5 b(s)32 b(alias)0 4502 y(database)20 b(will)h(be)f +(automatically)e(updated.)24 b(The)c(follo)n(wing)e(are)i(the)g(steps)h +(you)f(need)f(to)h(tak)o(e)h(to)f(mak)o(e)g(this)g(w)o(ork.)0 +4649 y(In)g(the)h(description)e(belo)n(w)-5 b(,)20 b(we)h(assume)g +(that)g(you')l(v)o(e)d(installed)j(Mailman)f(in)h(the)g(def)o(ault)f +(location,)f(i.e.)27 b(`)p Fv(/usr/local/mailman)p Fw('.)c(If)0 +4749 y(that')-5 b(s)20 b(not)e(the)i(case,)f(adjust)g(the)g +(instructions)g(according)e(to)i(your)f(use)h(of)g Fr(con\002gur)o(e)p +Fw(')-5 b(s)19 b Fr(--pr)o(e\002x)f Fw(and)h Fr(--with-v)o(ar)m(-pr)o +(e\002x)d Fw(options.)0 4896 y Fr(Note:)69 b Fw(If)25 +b(you)f(are)g(using)h(virtual)f(domains)g(and)g(you)g(w)o(ant)h +(Mailman)f(to)i(honor)d(your)g(virtual)i(domains,)f(read)h(the)g(6.1)f +(section)0 4995 y(belo)n(w)c(\002rst!)125 5225 y Fd(\017)41 +b Fw(Add)19 b(this)i(to)f(the)h(bottom)e(of)g(the)i(`)p +Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/mm)p 1946 5225 V +30 w(cfg.p)n(y)p Fw(')f(\002le:)p 0 5549 3901 4 v 3854 +5649 a Fo(7)p eop end +%%Page: 8 8 +TeXDict begin 8 7 bop 802 174 a Fk(MTA)45 b(=)f('Postfix')208 +538 y Fw(The)30 b(MT)-8 b(A)31 b(v)n(ariable)f(names)h(a)g(module)f(in) +h(the)g(`)p Fv(Mailman/MT)-9 b(A)p Fw(')28 b(directory)h(which)i +(contains)f(the)h(mail)g(serv)o(er)n(-speci\002c)208 +638 y(functions)18 b(to)j(be)f(e)o(x)o(ecuted)e(when)i(a)g(list)i(is)f +(created)e(or)h(remo)o(v)o(ed.)125 804 y Fd(\017)41 b +Fw(Look)28 b(at)i(the)g(`)p Fv(Def)n(aults)o(.p)n(y)p +Fw(')c(\002le)k(for)f(the)h(v)n(ariables)f Fq(POSTFIX)p +2145 804 25 4 v 28 w(ALIAS)p 2391 804 V 29 w(CMD)h Fw(and)f +Fq(POSTFIX)p 3113 804 V 29 w(MAP)p 3313 804 V 29 w(CMD)i +Fw(command.)208 903 y(Mak)o(e)26 b(sure)h(these)h(point)e(to)i(your)d +Fr(postalias)i Fw(and)g Fr(postmap)g Fw(programs)e(respecti)n(v)o(ely) +-5 b(.)44 b(Remember)26 b(that)h(if)h(you)e(need)g(to)208 +1003 y(mak)o(e)19 b(changes,)g(do)h(it)h(in)f(`)p Fv(mm)p +1128 1003 23 4 v 27 w(cfg.p)n(y)p Fw('.)125 1169 y Fd(\017)41 +b Fw(Run)20 b(the)g Fr(bin/genaliases)g Fw(script)h(to)f(initialize)g +(your)f(`)p Fv(aliases)p Fw(')g(\002le.)802 1393 y Fk(\045)45 +b(cd)g(/usr/local/mailman)802 1485 y(\045)g(bin/genaliases)208 +1848 y Fw(Mak)o(e)21 b(sure)h(that)g(the)g(o)n(wner)e(of)i(the)g(`)p +Fv(data/aliases)p Fw(')c(and)j(`)p Fv(data/aliases)o(.db)p +Fw(')c(\002le)23 b(is)f Fl(mailman)p Fw(,)g(that)g(the)f(group)f(o)n +(wner)h(for)208 1948 y(those)f(\002les)h(is)g Fl(mailman)p +Fw(,)e(or)h(whate)n(v)o(er)f(user)h(and)g(group)e(you)i(used)g(in)g +(the)g(con\002gure)f(command,)f(and)i(that)g(both)f(\002les)j(are)208 +2048 y(group)c(writable:)802 2180 y Fk(\045)45 b(su)802 +2272 y(\045)g(chown)f(mailman:mailman)e(data/aliases)2418 +2285 y(*)802 2363 y(\045)j(chmod)f(g+w)g(data/aliases)1880 +2376 y(*)125 2760 y Fd(\017)d Fw(Hack)19 b(your)g(Post\002x')-5 +b(s)21 b(`)p Fv(main.cf)p Fw(')e(\002le)i(to)f(include)g(the)g(follo)n +(wing)e(path)i(in)g(your)f Fq(alias)p 2730 2760 25 4 +v 30 w(maps)h Fw(v)n(ariable:)892 2985 y Fk +(/usr/local/mailman/data/aliases)208 3349 y Fw(Note)h(that)h(there)f +(should)g(be)g(no)h(trailing)f Fl(.db)p Fw(.)29 b(Do)22 +b(not)f(include)g(this)h(in)g(your)e Fq(alias)p 2727 +3349 V 30 w(database)g Fw(v)n(ariable.)28 b(This)22 b(is)g(because)208 +3448 y(you)e(do)h(not)g(w)o(ant)g(Post\002x')-5 b(s)22 +b Fr(newaliases)g Fw(command)d(to)j(modify)e(Mailman')-5 +b(s)21 b(`)p Fv(aliases)o(.db)p Fw(')d(\002le,)k(b)n(ut)f(you)g(do)g(w) +o(ant)g(Post\002x)208 3548 y(to)f(consult)g(`)p Fv(aliases)o(.db)p +Fw(')d(when)i(looking)g(for)g(local)i(addresses.)208 +3681 y(Y)-9 b(ou)19 b(probably)f(w)o(ant)i(to)h(use)f(a)h +Fl(hash:)k Fw(style)20 b(database)g(for)f(this)i(entry)-5 +b(.)24 b(Here')-5 b(s)20 b(an)g(e)o(xample:)802 3905 +y Fk(alias_maps)44 b(=)g(hash:/etc/postfix/aliases,)982 +3996 y(hash:/usr/local/mailman/data/aliases)125 4394 +y Fd(\017)d Fw(When)26 b(you)f(con\002gure)f(Mailman,)j(use)g(the)f +Fr(--with-mail-gid=mailman)e Fw(switch;)30 b(this)d(will)g(be)f(the)g +(def)o(ault)g(if)g(you)f(con-)208 4493 y(\002gured)g(Mailman)i(after)f +(adding)g(the)h Fl(mailman)f Fw(o)n(wner)-5 b(.)45 b(Because)27 +b(the)g(o)n(wner)f(of)h(the)g(`)p Fv(aliases)o(.db)p +Fw(')d(\002le)k(is)g Fl(mailman)p Fw(,)208 4593 y(Post\002x)20 +b(will)h(e)o(x)o(ecute)e(Mailman')-5 b(s)20 b(wrapper)e(program)g(as)j +(uid)f(and)g(gid)g Fl(mailman)p Fw(.)0 4823 y(That')-5 +b(s)24 b(it!)35 b(One)23 b(ca)n(v)o(eat:)31 b(when)23 +b(you)g(add)f(or)i(remo)o(v)o(e)d(a)j(list,)h(the)e(`)p +Fv(aliases)o(.db)p Fw(')e(\002le)j(will)g(updated,)e(b)n(ut)i(it)g +(will)g(not)f(automatically)0 4922 y(run)c Fr(post\002x)g(r)o(eload)p +Fw(.)24 b(This)19 b(is)h(because)f(you)g(need)f(to)i(be)f(root)g(to)g +(run)g(this)h(and)f(suid-root)e(scripts)j(are)f(not)g(secure.)25 +b(The)19 b(only)f(ef)n(fect)0 5022 y(of)i(this)h(is)g(that)f(it)h(will) +g(tak)o(e)f(about)f(a)i(minute)e(for)h(Post\002x)g(to)h(notice)e(the)i +(change)d(to)j(the)f(`)p Fv(aliases)o(.db)p Fw(')d(\002le)k(and)f +(update)f(its)i(tables.)p 0 5549 3901 4 v 0 5649 a Fo(8)2873 +b(6)83 b(Set)23 b(up)h(y)n(our)f(mail)h(ser)r(v)n(er)p +eop end +%%Page: 9 9 +TeXDict begin 9 8 bop 0 83 a Fo(Vir)s(tual)25 b(domains)0 +286 y Fw(Post\002x)17 b(2.0)e(supports)g(\223virtual)h(alias)h +(domains\224,)f(essentially)g(what)g(used)g(to)h(be)f(called)g +(\223Post\002x-style)g(virtual)f(domains\224)h(in)g(earlier)0 +386 y(Post\002x)24 b(v)o(ersions.)35 b(T)-7 b(o)24 b(mak)o(e)g(virtual) +f(alias)i(domains)d(w)o(ork)i(with)g(Mailman,)g(you)f(need)g(to)h(do)f +(some)h(setup)g(in)g(both)f(Post\002x)h(and)0 485 y(Mailman.)43 +b(Mailman)26 b(will)i(write)f(all)g(virtual)f(alias)h(mappings)e(to)i +(a)g(\002le)g(called,)h(by)e(def)o(ault,)h(`)p Fv +(/usr/local/mailman/data/vir)s(t)o(ual)o(-)0 585 y(mailman)p +Fw('.)c(It)e(will)g(also)f(use)h Fr(postmap)f Fw(to)g(create)g(the)g +Fr(virtual-mailman.db)f Fw(\002le)i(that)g(Post\002x)f(will)h(actually) +f(use.)0 732 y(First,)31 b(you)d(need)g(to)g(set)i(up)e(the)g +(Post\002x)h(virtual)f(alias)h(domains)f(as)h(described)e(in)i(the)g +(Post\002x)g(documentation)c(\(see)k(Post\002x')-5 b(s)0 +831 y Fl(virtual\(5\))18 b Fw(manpage\).)23 b(Note)d(that)f(it')-5 +b(s)21 b(your)d(responsibility)g(to)i(include)f(the)g +Fl(virtual-alias.domain)46 b(anything)0 931 y Fw(line)18 +b(as)g(described)f(manpage;)f(Mailman)h(will)i(not)e(include)g(this)h +(line)g(in)g(`)p Fv(vir)s(tual-mailman)p Fw('.)i(Y)-9 +b(ou)17 b(are)h(highly)e(encouraged)f(to)j(mak)o(e)0 +1031 y(sure)i(your)f(virtual)h(alias)g(domains)g(are)g(w)o(orking)e +(properly)g(before)h(inte)o(grating)f(with)j(Mailman.)0 +1177 y(Ne)o(xt,)f(add)f(a)i(path)f(to)g(Post\002x')-5 +b(s)21 b Fq(virtual)p 1183 1177 25 4 v 29 w(alias)p 1374 +1177 V 29 w(maps)g Fw(v)n(ariable,)d(pointing)h(to)h(the)g +(virtual-mailman)e(\002le,)j(e.g.:)416 1416 y Fk(virtual_alias_maps)41 +b(=)k(<your)f(normal)g(virtual)f(alias)h(files>,)595 +1507 y(hash:/usr/local/mailman/data/virtual-m)o(ailman)0 +1793 y Fw(assuming)22 b(you')l(v)o(e)f(installed)i(Mailman)f(in)h(the)g +(def)o(ault)f(location.)33 b(If)23 b(you')l(re)e(using)h(an)h(older)f +(v)o(ersion)g(of)g(Post\002x)i(which)e(doesn')o(t)0 1893 +y(ha)n(v)o(e)e(the)g Fq(virtual)p 524 1893 V 29 w(alias)p +715 1893 V 29 w(maps)g Fw(v)n(ariable,)f(use)i(the)f +Fq(virtual)p 1723 1893 V 29 w(maps)g Fw(v)n(ariable)f(instead.)0 +2040 y(Ne)o(xt,)29 b(in)e(your)g(`)p Fv(mm)p 640 2040 +23 4 v 27 w(cfg.p)n(y)p Fw(')g(\002le,)i(you)e(will)h(w)o(ant)g(to)f +(set)i(the)e(v)n(ariable)g Fq(POSTFIX)p 2541 2040 25 +4 v 28 w(STYLE)p 2800 2040 V 30 w(VIRTU)m(AL)p 3160 2040 +V 28 w(DOMAINS)h Fw(to)g(the)f(list)0 2140 y(of)g(virtual)h(domains)e +(that)i(Mailman)f(should)g(update.)47 b(This)28 b(may)f(not)g(be)h(all) +g(of)g(the)g(virtual)f(alias)h(domains)f(that)h(your)e(Post\002x)0 +2239 y(installation)e(supports!)36 b(The)24 b(v)n(alues)g(in)g(this)h +(list)g(will)h(be)e(matched)f(against)h(the)g Fq(host)p +2584 2239 V 29 w(name)g Fw(attrib)n(ute)g(of)g(mailing)f(lists)j +(objects,)0 2339 y(and)20 b(must)g(be)g(an)g(e)o(xact)g(match.)0 +2486 y(Here')-5 b(s)35 b(an)g(e)o(xample.)67 b(Say)34 +b(that)h(Post\002x)g(is)h(con\002gured)c(to)j(handle)f(the)g(virtual)g +(domains)g Fl(dom1.ain)p Fw(,)j Fl(dom2.ain)p Fw(,)g(and)0 +2585 y Fl(dom3.ain)p Fw(,)19 b(and)h(further)e(that)j(in)f(your)f(`)p +Fv(main.cf)p Fw(')g(\002le)i(you')l(v)o(e)d(got)h(the)i(follo)n(wing)d +(settings:)416 2732 y Fk(myhostname)43 b(=)h(mail.dom1.ain)416 +2824 y(mydomain)f(=)i(dom1.ain)416 2915 y(mydestination)d(=)j +($myhostname,)e(localhost.$mydomain)416 3006 y(virtual_alias_maps)e(=) +595 3098 y(hash:/some/path/to/virtual-dom1,)595 3189 +y(hash:/some/path/to/virtual-dom2,)595 3280 y +(hash:/some/path/to/virtual-dom2)0 3567 y Fw(If)20 b(in)g(your)f(`)p +Fv(vir)s(tual-dom1)p Fw(')e(\002le,)k(you')l(v)o(e)d(got)i(the)g(follo) +n(wing)f(lines:)416 3714 y Fk(dom1.ain)88 b(IGNORE)416 +3805 y(@dom1.ain)43 b(@mail.dom1.ain)0 4091 y Fw(this)25 +b(tells)g(Post\002x)f(to)g(deli)n(v)o(er)f(an)o(ything)f(addressed)h +(to)h Fl(dom1.ain)f Fw(to)h(the)g(same)g(mailbox)f(at)h +Fl(mail.dom1.com)p Fw(,)f(its)i(def)o(ault)0 4191 y(destination.)0 +4338 y(In)16 b(this)g(case)g(you)f(w)o(ould)g(not)g(include)g +Fl(dom1.ain)g Fw(in)h Fq(POSTFIX)p 1958 4338 V 28 w(STYLE)p +2217 4338 V 30 w(VIRTU)m(AL)p 2577 4338 V 29 w(DOMAINS)g +Fw(because)f(otherwise)g(Mailman)0 4437 y(will)21 b(write)f(entries)g +(for)g(mailing)f(lists)j(in)e(the)h(dom1.ain)d(domain)g(as)416 +4676 y Fk(mylist@dom1.ain)401 b(mylist)416 4767 y +(mylist-request@dom1.ain)41 b(mylist-request)416 4858 +y(#)j(and)h(so)f(on...)0 5145 y Fw(The)20 b(more)f(speci\002c)i +(entries)f(trump)f(your)g(more)g(general)g(entries,)h(thus)g(breaking)e +(the)j(deli)n(v)o(ery)d(of)i(an)o(y)f Fl(dom1.ain)h Fw(mailing)f(list.) +0 5292 y(Ho)n(we)n(v)o(er)m(,)f(you)h(w)o(ould)h(include)f +Fl(dom2.ain)g Fw(and)h Fl(dom3.ain)f Fw(in)i(`)p Fv(mm)p +2196 5292 23 4 v 27 w(cfg.p)n(y)p Fw(':)p 0 5549 3901 +4 v 0 5649 a Fo(6.1)83 b(Using)24 b(the)f(P)l(ost\002x)f(mail)j(ser)r +(v)n(er)2606 b(9)p eop end +%%Page: 10 10 +TeXDict begin 10 9 bop 416 174 a Fk(POSTFIX_STYLE_VIRTUAL_DOMAINS)40 +b(=)k(['dom2.ain',)f('dom3.ain'])0 461 y Fw(No)n(w)-5 +b(,)48 b(an)o(y)42 b(list)h(that)g(Mailman)f(creates)h(in)g(either)f +(of)h(those)f(tw)o(o)h(domains,)k(will)d(ha)n(v)o(e)e(the)h(correct)e +(entries)i(written)f(to)0 560 y(`)p Fv(/usr/local/mailman/data/vir)r +(tua)o(l-mai)o(lma)o(n)p Fw('.)0 707 y(As)34 b(abo)o(v)o(e)e(with)h +(the)g(`)p Fv(data/aliases*)p Fw(')d(\002les,)37 b(you)32 +b(w)o(ant)i(to)f(mak)o(e)g(sure)g(that)g(both)g(`)p Fv(data/vir)s +(tual-mailman)p Fw(')27 b(and)33 b(`)p Fv(data/vir)s(tual-)0 +807 y(mailman.db)p Fw(')18 b(are)i(user)g(and)f(group)g(o)n(wned)g(by)h +Fl(mailman)p Fw(.)0 1075 y Fo(An)k(alter)r(nativ)n(e)g(approach)0 +1278 y Fw(Fil)d Fv(\002l@rez)o(o)m(.net)d Fw(has)j(an)f(alternati)n(v)o +(e)f(approach)f(based)i(on)f(virtual)h(maps)g(and)g(re)o(gular)e(e)o +(xpressions,)h(as)i(described)e(at:)125 1508 y Fd(\017)41 +b Fw(\(French\))18 b Fv(http://listes)o(.rez)o(o)m(.net/comment.p)o(hp) +125 1674 y Fd(\017)41 b Fw(\(English\))18 b Fv(http://listes)o(.rez)o +(o)m(.net/ho)o(w)-5 b(.p)o(hp)0 1904 y Fw(This)29 b(is)h(a)g(good)d +(\(and)h(simpler\))h(alternati)n(v)o(e)e(if)j(you)e(don')o(t)f(mind)i +(e)o(xposing)e(an)i(additional)e(hostname)h(in)h(the)g(domain)f(part)h +(of)0 2004 y(the)c(addresses)f(people)f(will)j(use)e(to)h(contact)f +(your)f(list.)40 b(I.e.)d(if)25 b(people)f(should)f(use)i +Fl(mylist@lists.dom.ain)d Fw(instead)i(of)0 2103 y Fl(mylist@dom.ain)p +Fw(.)0 2388 y Fn(6.2)100 b(Using)28 b(the)h(Exim)f(mail)g(ser)s(v)n(er) +0 2591 y Fr(Note:)70 b Fw(This)25 b(section)g(is)h(deri)n(v)o(ed)e +(from)g(Nigel)h(Metheringham')-5 b(s)23 b(\223HO)m(WT)o(O)i(-)h(Using)f +(Exim)f(and)h(Mailman)f(together\224,)h(which)0 2691 +y(co)o(v)o(ers)d(Mailman)g(2.0.x)g(and)h(Exim)f(3.)34 +b(It)23 b(has)g(been)g(updated)e(to)j(co)o(v)o(er)d(Mailman)i(2.1)f +(and)h(Exim)f(4.)34 b(The)23 b(original)f(document)f(is)0 +2790 y(here:)k Fv(http://www)l(.e)n(xim.org/ho)o(wt)o(o/mai)o(lman)o +(.h)o(tml)-6 b Fw(.)0 2937 y(There)19 b(is)i(no)e(Mailman)g +(con\002guration)e(needed)i(other)g(than)g(the)h(standard)f(options)g +(detailed)g(in)h(the)g(Mailman)f(install)h(documenta-)0 +3037 y(tion.)33 b(The)22 b(Exim)g(con\002guration)e(is)k(transparent)d +(to)i(Mailman.)33 b(The)22 b(user)h(and)f(group)f(settings)i(for)f +(Mailman)h(must)f(match)h(those)0 3136 y(in)d(the)h(con\002g)e +(fragments)g(gi)n(v)o(en)g(belo)n(w)-5 b(.)0 3405 y Fo(Exim)24 +b(con\002gur)o(ation)0 3608 y Fw(The)d(Exim)g(con\002guration)d(is)k(b) +n(uilt)g(so)f(that)g(a)h(list)g(created)f(within)g(Mailman)f +(automatically)g(appears)g(to)i(Exim)f(without)f(the)h(need)0 +3707 y(for)f(de\002ning)e(an)o(y)i(additional)f(aliases.)0 +3854 y(The)28 b(dra)o(wback)e(of)h(this)i(con\002guration)c(is)k(that)f +(it)h(will)f(w)o(ork)f(poorly)g(on)g(systems)i(supporting)c(lists)30 +b(in)e(se)n(v)o(eral)f(dif)n(ferent)f(mail)0 3954 y(domains.)d(While)c +(Mailman)e(handles)g(virtual)h(domains,)f(it)i(does)e(not)h(yet)g +(support)f(ha)n(ving)g(tw)o(o)h(distinct)g(lists)i(with)e(the)g(same)g +(name)0 4053 y(in)23 b(dif)n(ferent)f(virtual)h(domains,)f(using)h(the) +g(same)h(Mailman)e(installation.)34 b(This)23 b(will)h(e)n(v)o +(entually)e(change.)33 b(\(But)23 b(see)h(belo)n(w)f(for)f(a)0 +4153 y(v)n(ariation)d(on)h(this)g(scheme)g(that)g(should)g(accommodate) +d(virtual)j(domains)f(better)-5 b(.\))0 4300 y(The)21 +b(con\002guration)e(\002le)k(e)o(xcerpts)d(belo)n(w)h(are)h(for)f(use)h +(in)g(an)f(already)g(functional)f(Exim)h(con\002guration,)e(which)i +(accepts)g(mail)h(for)0 4400 y(the)i(domain)e(in)h(which)g(the)h(list)g +(resides.)35 b(If)24 b(this)g(domain)e(is)i(separate)f(from)g(the)g +(others)g(handled)f(by)h(your)g(Exim)f(con\002guration,)0 +4499 y(then)e(you')o(ll)f(need)g(to:)125 4729 y Fd(\017)41 +b Fw(add)19 b(the)h(list)i(domain,)c(\223my)-5 b(.list.domain\224)18 +b(to)i Fq(local)p 1728 4729 25 4 v 29 w(domains)125 4895 +y Fd(\017)41 b Fw(add)19 b(a)i(\223domains=my)-5 b(.list.domain\224)15 +b(option)k(to)i(the)f(director)f(\(router\))f(for)i(the)g(list)125 +5061 y Fd(\017)41 b Fw(\(optional\))18 b(e)o(xclude)g(that)j(domain)e +(from)g(your)g(other)g(directors)g(\(routers\))0 5291 +y Fr(Note:)74 b Fw(The)26 b(instructions)f(in)i(this)f(document)e +(should)i(w)o(ork)f(with)i(either)e(Exim)h(3)g(or)g(Exim)g(4.)43 +b(In)26 b(Exim)f(3,)j(you)d(must)i(ha)n(v)o(e)e(a)0 5391 +y Fq(local)p 172 5391 V 29 w(domains)e Fw(con\002guration)f(setting;)k +(in)f(Exim)f(4,)h(you)e(most)i(lik)o(ely)f(ha)n(v)o(e)g(a)h +Fq(local)p 2586 5391 V 28 w(domains)f Fw(domainlist.)36 +b(If)25 b(you)e(don')o(t,)g(you)p 0 5549 3901 4 v 0 5649 +a Fo(10)2827 b(6)83 b(Set)23 b(up)h(y)n(our)f(mail)h(ser)r(v)n(er)p +eop end +%%Page: 11 11 +TeXDict begin 11 10 bop 0 83 a Fw(probably)26 b(kno)n(w)g(what)i(you')l +(re)e(doing)g(and)i(can)f(adjust)h(accordingly)-5 b(.)45 +b(Similarly)-5 b(,)29 b(in)f(Exim)f(4)h(the)g(concept)e(of)i +(\223directors\224)e(has)0 183 y(disappeared)d(\226)j(there)e(are)i +(only)e(routers)g(no)n(w)-5 b(.)39 b(So)26 b(if)f(you')l(re)f(using)g +(Exim)h(4,)h(whene)n(v)o(er)e(this)h(document)f(says)h +(\223director\224,)g(read)0 282 y(\223router\224.)0 429 +y(Whether)20 b(you)g(are)h(using)f(Exim)g(3)h(or)f(Exim)g(4,)h(you)f +(will)h(need)f(to)h(add)f(some)h(macros)f(to)h(the)g(main)f(section)g +(of)h(your)e(Exim)h(con\002g)0 529 y(\002le.)33 b(Y)-9 +b(ou)22 b(will)h(also)g(need)f(to)h(de\002ne)f(one)g(ne)n(w)h +(transport.)30 b(W)m(ith)23 b(Exim)f(3,)i(you')o(ll)d(need)h(to)h(add)f +(a)h(ne)n(w)f(director;)h(with)g(Exim)f(4,)h(a)0 628 +y(ne)n(w)d(router)f(plays)h(the)g(same)h(role.)0 775 +y(Finally)-5 b(,)23 b(the)g(con\002guration)d(supplied)i(here)g(should) +g(allo)n(w)h(co-habiting)d(Mailman)i(2.0)h(and)f(2.1)g(installations,)h +(with)g(the)g(pro)o(viso)0 875 y(that)d(you')o(ll)g(probably)d(w)o(ant) +k(to)f(use)h Fl(mm21)f Fw(in)g(place)g(of)g Fl(mailman)f +Fw(\226)h(e.g.,)g Fq(MM21)p 2489 875 25 4 v 29 w(HOME)r +Fw(,)g Fq(mm21)p 3005 875 V 29 w(tr)o(ansport)q Fw(,)g(etc.)0 +1143 y Fo(Main)k(con\002gur)o(ation)g(settings)0 1346 +y Fw(First,)30 b(you)c(need)h(to)g(add)g(some)h(macros)e(to)i(the)f +(top)g(of)g(your)f(Exim)h(con\002g)g(\002le.)47 b(These)27 +b(just)h(mak)o(e)f(the)g(director)g(\(router\))e(and)0 +1446 y(transport)16 b(belo)n(w)h(a)i(bit)e(cleaner)-5 +b(.)24 b(Ob)o(viously)-5 b(,)16 b(you')o(ll)h(need)g(to)g(edit)h(these) +g(based)f(on)h(ho)n(w)f(you)f(con\002gured)g(and)h(installed)g +(Mailman.)416 1684 y Fk(#)44 b(Home)g(dir)h(for)f(your)g(Mailman)g +(installation)f(--)h(aka)g(Mailman's)g(prefix)416 1775 +y(#)g(directory.)416 1867 y(MAILMAN_HOME=/usr/local/mailman)416 +1958 y(MAILMAN_WRAP=MAILMAN_HOME/mail/mailm)o(an)416 +2141 y(#)g(User)g(and)h(group)f(for)g(Mailman,)g(should)f(match)h(your) +g(--with-mail-gid)416 2232 y(#)g(switch)g(to)h(Mailman's)e(configure)g +(script.)416 2323 y(MAILMAN_USER=mailman)416 2415 y +(MAILMAN_GROUP=mailman)0 2826 y Fo(T)-10 b(r)o(anspor)s(t)23 +b(f)n(or)f(Exim)i(3)0 3029 y Fw(Add)c(this)g(to)h(the)f(transports)f +(section)h(of)g(your)f(Exim)h(con\002g)f(\002le,)i(i.e.)k(some)n(where) +19 b(between)g(the)h(\002rst)h(and)f(second)f(\223end\224)g(line:)326 +3268 y Fk(mailman_transport:)416 3359 y(driver)43 b(=)i(pipe)416 +3450 y(command)e(=)i(MAILMAN_WRAP)e(\\)864 3542 y('${if)h +(def:local_part_suffix)d(\\)1133 3633 y +({${sg{$local_part_suffix}{-\(\\\\w+\)\(\\\\+.)2842 3646 +y(*)2887 3633 y(\)?}{\\)o($1}}})d(\\)1133 3724 y({post}}')43 +b(\\)864 3816 y($local_part)416 3907 y(current_directory)f(=)i +(MAILMAN_HOME)416 3998 y(home_directory)e(=)j(MAILMAN_HOME)416 +4089 y(user)f(=)g(MAILMAN_USER)416 4181 y(group)g(=)g(MAILMAN_GROUP)0 +4593 y Fo(Director)23 b(f)n(or)f(Exim)i(3)0 4796 y Fw(If)e(you')l(re)e +(using)h(Exim)h(3,)g(you')o(ll)f(need)g(to)h(add)g(the)g(follo)n(wing)e +(director)h(to)h(your)e(con\002g)i(\002le)g(\(directors)f(go)g(between) +g(the)h(second)0 4895 y(and)g(third)g(\223end\224)g(lines\).)33 +b(Also,)23 b(don')o(t)e(for)o(get)g(that)i(order)e(matters)i(\226)g +(e.g.)32 b(you)22 b(can)g(mak)o(e)g(Mailman)h(lists)h(tak)o(e)e +(precedence)f(o)o(v)o(er)0 4995 y(system)f(aliases)h(by)f(putting)f +(this)i(director)e(in)h(front)f(of)h(your)f(alias\002le)i(director)m(,) +e(or)h(vice-v)o(ersa.)p 0 5549 3901 4 v 0 5649 a Fo(6.2)83 +b(Using)24 b(the)f(Exim)h(mail)g(ser)r(v)n(er)2621 b(11)p +eop end +%%Page: 12 12 +TeXDict begin 12 11 bop 326 174 a Fk(#)45 b(Handle)e(all)i(addresses)e +(related)h(to)g(a)h(list)f('foo':)g(the)g(posting)g(address.)326 +266 y(#)h(Automatically)d(detects)i(list)g(existence)f(by)i(looking)326 +357 y(#)g(for)f(lists/$local_part/config.pck)c(under)k(MAILMAN_HOME.) +326 448 y(mailman_director:)416 540 y(driver)f(=)i(smartuser)416 +631 y(require_files)d(=)j(MAILMAN_HOME/lists/$local_part/config.)o(pck) +416 722 y(suffix_optional)416 814 y(suffix)e(=)i(-bounces)f(:)g +(-bounces+)1717 827 y(*)1805 814 y(:)h(\\)819 905 y(-confirm+)1224 +918 y(*)1312 905 y(:)g(-join)f(:)h(-leave)e(:)i(\\)819 +996 y(-owner)f(:)h(-request)e(:)i(-admin)416 1088 y(transport)e(=)i +(mailman_transport)0 1500 y Fo(Router)23 b(f)n(or)g(Exim)g(4)0 +1702 y Fw(In)f(Exim)f(4,)h(there')-5 b(s)22 b(no)f(such)h(thing)f(as)h +(directors)f(\226)h(you)f(need)g(to)h(add)f(a)i(ne)n(w)e(router)g +(instead.)30 b(Also,)22 b(the)g(canonical)e(order)h(of)h(the)0 +1802 y(con\002guration)f(\002le)j(w)o(as)h(changed)d(so)i(routers)f +(come)g(before)f(transports,)i(so)g(the)f(router)g(for)g(Exim)g(4)h +(comes)g(\002rst)g(here.)35 b(Put)24 b(this)0 1902 y(router)19 +b(some)n(where)g(after)h(the)g(\223be)o(gin)f(routers\224)g(line)h(of)g +(your)f(con\002g)g(\002le,)i(and)f(remember)e(that)i(order)f(matters.) +326 2140 y Fk(mailman_router:)416 2231 y(driver)43 b(=)i(accept)416 +2323 y(require_files)d(=)j(MAILMAN_HOME/lists/$local_part/config.)o +(pck)416 2414 y(local_part_suffix_optional)416 2505 y +(local_part_suffix)d(=)i(-bounces)g(:)g(-bounces+)2210 +2518 y(*)2298 2505 y(:)h(\\)1312 2597 y(-confirm+)1717 +2610 y(*)1805 2597 y(:)g(-join)f(:)h(-leave)e(:)i(\\)1312 +2688 y(-owner)f(:)h(-request)e(:)i(-admin)416 2779 y(transport)e(=)i +(mailman_transport)0 3191 y Fo(T)-10 b(r)o(anspor)s(ts)22 +b(f)n(or)h(Exim)g(4)0 3394 y Fw(The)f(transport)e(for)i(Exim)f(4)i(is)g +(the)f(same)g(as)h(for)e(Exim)h(3)g(\(see)g(6.2;)g(just)h(cop)o(y)e +(the)h(transport)f(gi)n(v)o(en)g(abo)o(v)o(e)f(to)i(some)n(where)f +(under)0 3494 y(the)f(\223be)o(gin)f(transports\224)g(line)h(of)g(your) +f(Exim)h(con\002g)f(\002le.)0 3762 y Fo(Additional)26 +b(notes)0 3965 y Fw(Exim)g(should)f(be)i(con\002gured)d(to)i(allo)n(w)h +(reasonable)e(v)n(olume)g(\226)h(e.g.)44 b(don')o(t)24 +b(set)k Fq(max)p 2597 3965 25 4 v 29 w(r)m(ecipients)e +Fw(do)n(wn)g(to)g(a)h(silly)g(v)n(alue)f(\226)g(and)0 +4064 y(with)21 b(normal)e(de)o(grees)h(of)g(security)g(\226)h +(speci\002cally)-5 b(,)20 b(be)h(sure)f(to)h(allo)n(w)g(relaying)e +(from)g(127.0.0.1,)f(b)n(ut)j(pretty)e(much)h(nothing)f(else.)0 +4164 y(P)o(arallel)g(deli)n(v)o(eries)g(and)g(other)f(tweaks)i(can)f +(also)h(be)f(used)g(if)h(you)e(lik)o(e;)i(e)o(xperiment)e(with)h(your)f +(setup)i(to)f(see)h(what)f(w)o(orks.)25 b(Delay)0 4264 +y(w)o(arning)17 b(messages)g(should)g(be)h(switched)f(of)n(f)g(or)h +(con\002gured)d(to)j(only)f(happen)f(for)h(non-list)g(mail,)h(unless)g +(you)f(lik)o(e)g(recei)n(ving)g(tons)0 4363 y(of)j(mail)g(when)g(some)g +(random)e(host)i(is)i(do)n(wn.)0 4632 y Fo(Prob)n(lems)125 +4821 y Fd(\017)41 b Fw(Mailman)26 b(will)i(send)f(as)h(man)o(y)e +Fl(MAIL)49 b(FROM)p Fw(/)p Fl(RCPT)g(TO)27 b Fw(as)h(it)g(needs.)45 +b(It)28 b(may)f(result)g(in)g(more)g(than)g(10)f(or)h(100)g(mes-)208 +4920 y(sages)h(sent)g(in)g(one)f(connection,)g(which)g(will)i(e)o +(xceed)d(the)i(def)o(ault)f(v)n(alue)g(of)h(Exim')-5 +b(s)27 b Fq(smtp)p 2997 4920 V 30 w(accept)p 3245 4920 +V 29 w(queue)p 3474 4920 V 28 w(per)p 3613 4920 V 29 +w(connec-)208 5020 y(tion)f Fw(v)n(alue.)44 b(This)26 +b(is)i(bad)e(because)g(it)i(will)f(cause)g(Exim)f(to)h(switch)g(into)f +(queue)f(mode)h(and)g(se)n(v)o(erely)g(delay)g(deli)n(v)o(ery)f(of)208 +5119 y(your)g(list)i(messages.)45 b(The)26 b(w)o(ay)g(to)h(\002x)g +(this)g(is)g(to)g(set)g(Mailman')-5 b(s)27 b Fq(SMTP)p +2458 5119 V 29 w(MAX)p 2658 5119 V 30 w(SESSIONS)p 3050 +5119 V 27 w(PER)p 3230 5119 V 29 w(CONNECTION)34 b Fw(\(in)208 +5219 y(`)p Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/mm)p 966 +5219 V 30 w(cfg.p)n(y)p Fw('\))19 b(to)h(a)h(smaller)f(v)n(alue)g(than) +f(Exim')-5 b(s)20 b Fq(smtp)p 2474 5219 V 30 w(accept)p +2722 5219 V 29 w(queue)p 2951 5219 V 28 w(per)p 3090 +5219 V 29 w(connection)p Fw(.)p 0 5549 3901 4 v 0 5649 +a Fo(12)2827 b(6)83 b(Set)23 b(up)h(y)n(our)f(mail)h(ser)r(v)n(er)p +eop end +%%Page: 13 13 +TeXDict begin 13 12 bop 125 83 a Fd(\017)41 b Fw(Mailman)14 +b(should)g(ignore)g(Exim)h(delay)g(w)o(arning)f(messages,)i(e)n(v)o(en) +e(though)g(Exim)h(should)f(ne)n(v)o(er)g(send)h(this)h(to)f(list)i +(messages.)208 183 y(Mailman)26 b(2.1')-5 b(s)27 b(general)f(bounce)f +(detection)h(and)g(VERP)i(support)e(should)g(greatly)g(impro)o(v)o(e)f +(the)i(bounce)e(detector')-5 b(s)26 b(hit)208 282 y(rates.)125 +448 y Fd(\017)41 b Fw(List)20 b(e)o(xistence)f(is)i(determined)d(by)i +(the)g(e)o(xistence)f(of)h(a)g(`)p Fv(con\002g.pc)o(k)p +Fw(')f(\002le)i(for)e(a)h(list.)26 b(If)20 b(you)f(delete)h(lists)h(by) +f(foul)f(means,)h(be)208 548 y(a)o(w)o(are)f(of)h(this.)125 +714 y Fd(\017)41 b Fw(If)26 b(you)g(are)h(getting)f(Exim)g(or)h +(Mailman)f(complaining)e(about)i(user)h(ids)g(when)g(you)e(send)i(mail) +g(to)g(a)g(list,)j(check)c(that)h(the)208 814 y Fq(MAILMAN)p +582 814 25 4 v 29 w(USER)19 b Fw(and)f Fq(MAILMAN)p 1342 +814 V 30 w(GR)m(OUP)h Fw(match)f(those)h(of)g(Mailman)f(itself)i +(\(i.e.)k(what)19 b(were)g(used)g(in)g(the)g Fr(con\002gur)o(e)208 +913 y Fw(script\).)24 b(Also)d(mak)o(e)e(sure)i(you)e(do)h(not)f(ha)n +(v)o(e)h(aliases)h(in)g(the)f(main)g(alias)g(\002le)h(for)f(the)g +(list.)0 1182 y Fo(Receiv)n(er)j(V)-7 b(er)q(i\002cation)0 +1384 y Fw(Exim')i(s)20 b(recei)n(v)o(er)e(v)o(eri\002cation)g(feature)h +(is)h(v)o(ery)f(useful)g(\226)h(it)g(lets)h(Exim)e(reject)h +(unrouteable)d(addresses)i(at)i(SMTP)f(time.)25 b(Ho)n(we)n(v)o(er)m(,) +0 1484 y(this)20 b(is)h(most)f(useful)f(for)g(e)o +(xternally-originating)c(mail)20 b(that)g(is)g(addressed)f(to)h(mail)g +(in)f(one)h(of)f(your)g(local)g(domains.)24 b(F)o(or)19 +b(Mailman)0 1584 y(list)g(traf)n(\002c,)f(mail)g(originates)f(on)h +(your)f(serv)o(er)m(,)g(and)g(is)i(addressed)e(to)i(random)d(e)o +(xternal)h(domains)g(that)h(are)g(not)g(under)e(your)h(control.)0 +1683 y(Furthermore,)25 b(each)g(message)h(is)h(addressed)d(to)i(man)o +(y)f(recipients)g(\226)h(up)f(to)h(500)f(if)i(you)d(use)j(Mailman')-5 +b(s)25 b(def)o(ault)g(con\002guration)0 1783 y(and)20 +b(don')o(t)e(tweak)i Fq(SMTP)p 767 1783 V 30 w(MAX)p +968 1783 V 29 w(RCPTS)q Fw(.)0 1930 y(Doing)27 b(recei)n(v)o(er)f(v)o +(eri\002cation)f(on)i(Mailman)g(list)i(traf)n(\002c)e(is)h(a)g(recipe)f +(for)g(trouble.)45 b(In)27 b(particular)m(,)h(Exim)f(will)h(attempt)f +(to)g(route)0 2029 y(e)n(v)o(ery)e(recipient)h(addresses)g(in)h +(outgoing)d(Mailman)i(list)h(posts.)44 b(Ev)o(en)26 b(though)f(this)i +(requires)e(nothing)g(more)h(than)g(a)h(fe)n(w)f(DNS)0 +2129 y(lookups)20 b(for)h(each)h(address,)f(it)i(can)e(still)i +(introduce)d(signi\002cant)h(delays.)29 b(Therefore,)20 +b(you)h(should)g(disable)g(recipient)g(v)o(eri\002cation)0 +2229 y(for)f(Mailman)f(traf)n(\002c.)0 2376 y(Under)g(Exim)h(3,)g(put)g +(this)g(in)h(your)e(main)h(con\002guration)d(section:)416 +2614 y Fk(receiver_verify_hosts)41 b(=)k(!127.0.0.1)0 +2900 y Fw(Under)23 b(Exim)h(4,)h(this)g(is)g(probably)d(already)h(tak)o +(en)h(care)g(of)g(for)g(you)f(by)h(the)g(def)o(ault)g(recipient)f(v)o +(eri\002cation)g(A)m(CL)i(statement)f(\(in)0 3000 y(the)c +Fl(RCPT)49 b(TO)21 b Fw(A)m(CL\):)326 3238 y Fk(accept)89 +b(domains)312 b(=)45 b(+local_domains)685 3329 y(endpass)685 +3421 y(message)312 b(=)45 b(unknown)f(user)685 3512 y(verify)357 +b(=)45 b(recipient)0 3799 y Fw(which)24 b(only)g(does)g(recipient)g(v)o +(eri\002cation)f(on)h(addresses)g(in)h(your)e(domain.)37 +b(\(That')-5 b(s)25 b(not)f(e)o(xactly)g(the)g(same)h(as)g(doing)f +(recipient)0 3898 y(v)o(eri\002cation)19 b(only)g(on)h(messages)g +(coming)f(from)g(non-127.0.0.1)c(hosts,)21 b(b)n(ut)f(it)h(should)e(do) +h(the)g(trick)g(for)f(Mailman.\))0 4166 y Fo(SMTP)24 +b(Callbac)n(k)0 4369 y Fw(Exim')-5 b(s)26 b(SMTP)h(callback)e(feature)h +(is)h(an)f(e)n(v)o(en)g(more)f(po)n(werful)g(w)o(ay)h(to)g(detect)h +(bogus)e(sender)g(addresses)h(than)g(normal)f(sender)0 +4469 y(v)o(eri\002cation.)41 b(Unfortunately)-5 b(,)23 +b(lots)k(of)f(serv)o(ers)f(send)g(bounce)g(messages)h(with)g(a)g(bogus) +f(address)g(in)h(the)g(header)m(,)g(and)f(there)h(are)0 +4569 y(plenty)e(that)g(send)h(bounces)e(with)h(bogus)g(en)m(v)o(elope)e +(senders)i(\(e)n(v)o(en)f(though)g(the)o(y')l(re)g(supposed)g(to)i +(just)g(use)g(an)f(empty)g(en)m(v)o(elope)0 4668 y(sender)19 +b(for)h(bounces\).)0 4815 y(In)25 b(order)f(to)i(ensure)f(that)g +(Mailman)g(can)h(disable/remo)o(v)o(e)c(bouncing)i(addresses,)i(you)e +(generally)g(w)o(ant)i(to)g(recei)n(v)o(e)e(bounces)g(for)0 +4915 y(Mailman)c(lists,)h(e)n(v)o(en)f(if)g(those)g(bounces)f(are)i +(themselv)o(es)e(not)h(bounceable.)k(Thus,)19 b(you)h(might)f(w)o(ant)i +(to)f(disable)h(SMTP)f(callback)0 5014 y(on)g(bounce)e(messages.)0 +5161 y(W)m(ith)i(Exim)g(4,)g(you)f(can)h(accomplish)f(this)i(using)f +(something)e(lik)o(e)j(the)f(follo)n(wing)f(in)h(your)f +Fl(RCPT)49 b(TO)20 b Fw(A)m(CL:)p 0 5549 3901 4 v 0 5649 +a Fo(6.2)83 b(Using)24 b(the)f(Exim)h(mail)g(ser)r(v)n(er)2621 +b(13)p eop end +%%Page: 14 14 +TeXDict begin 14 13 bop 326 174 a Fk(#)45 b(Accept)e(bounces)h(to)h +(lists)f(even)g(if)g(callbacks)f(or)i(other)f(checks)g(would)g(fail)326 +266 y(warn)223 b(message)268 b(=)45 b +(X-WhitelistedRCPT-nohdrfromcallback:)39 b(Yes)729 357 +y(condition)178 b(=)45 b(\\)729 448 y(${if)g(and)f +({{match{$local_part}{\(.)2168 461 y(*)2213 448 y(\)-bounces\\+.)2753 +461 y(*)2798 448 y(})o(})39 b(\\)1178 540 y({exists)k +({MAILMAN_HOME/lists/$1/config.pck}}})c(\\)954 631 y({yes}{no}})954 +722 y({yes}{no}})326 905 y(accept)133 b(condition)178 +b(=)45 b(\\)729 996 y(${if)g(and)f({{match{$local_part}{\(.)2168 +1009 y(*)2213 996 y(\)-bounces\\+.)2753 1009 y(*)2798 +996 y(})o(})39 b(\\)1178 1088 y({exists)k +({MAILMAN_HOME/lists/$1/config.pck}}})c(\\)954 1179 y({yes}{no}})954 +1270 y({yes}{no}})326 1453 y(#)45 b(Now,)f(check)g(sender)g(address)f +(with)h(SMTP)g(callback.)326 1544 y(deny)134 b(!verify)43 +b(=)i(sender/callout=90s)0 1831 y Fw(If)20 b(you)f(also)i(do)f(SMTP)g +(callbacks)g(on)g(header)f(addresses,)g(you')o(ll)h(w)o(ant)g +(something)f(lik)o(e)h(this)h(in)f(your)f Fl(DATA)h Fw(A)m(CL:)326 +2069 y Fk(deny)134 b(!condition)43 b(=)i +($header_X-WhitelistedRCPT-nohdrfromc)o(allbac)o(k:)640 +2160 y(!verify)e(=)i(header_sender/callout=90s)0 2572 +y Fo(Doing)24 b(VERP)g(with)g(Exim)f(and)h(Mailman)0 +2774 y Fw(VERP)30 b(will)g(send)e(one)h(email,)i(with)e(a)g(separate)g +(en)m(v)o(elope)e(sender)h(\(return)f(path\),)j(for)f(each)f(of)h(your) +f(subscribers)g(\226)h(read)g(the)0 2874 y(information)21 +b(in)j(`)p Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/Def)n(aults)o(.p)n(y)p +Fw(')e(for)h(the)h(options)e(that)i(start)f(with)h(VERP)-9 +b(.)24 b(In)f(a)h(nutshell,)f(all)h(you)f(need)f(to)i(do)0 +2974 y(to)c(enable)g(VERP)h(with)f(Exim)g(is)h(to)f(add)g(these)g +(lines)h(to)f(`)p Fj($)p Fq(pr)m(e\002x)p Fo(/Mailman/mm)p +2439 2974 25 4 v 31 w(cfg.p)n(y)p Fw(':)416 3212 y Fk +(VERP_PASSWORD_REMINDERS)41 b(=)j(Yes)416 3303 y +(VERP_PERSONALIZED_DELIVERIES)c(=)k(Yes)416 3395 y +(VERP_DELIVERY_INTERVAL)d(=)j(Yes)416 3486 y(VERP_CONFIRMATIONS)d(=)k +(Yes)0 3772 y Fw(\(The)20 b(director)e(\(router\))h(abo)o(v)o(e)f(is)j +(smart)g(enough)d(to)i(deal)g(with)h(VERP)g(bounces.\))0 +4041 y Fo(Vir)s(tual)k(Domains)0 4244 y Fw(One)18 b(approach)e(to)j +(handling)d(virtual)i(domains)f(is)i(to)g(use)f(a)h(separate)f(Mailman) +f(installation)h(for)g(each)g(virtual)f(domain.)23 b(Currently)-5 +b(,)0 4343 y(this)21 b(is)g(the)f(only)f(w)o(ay)i(to)f(ha)n(v)o(e)g +(lists)h(with)g(the)f(same)g(name)g(in)g(dif)n(ferent)f(virtual)g +(domains)g(handled)g(by)h(the)g(same)g(machine.)0 4490 +y(In)i(this)g(case,)h(the)f Fq(MAILMAN)p 919 4490 V 29 +w(HOME)j Fw(and)c Fq(MAILMAN)p 1724 4490 V 30 w(WRAP)h +Fw(macros)f(are)h(useless)g(\226)g(you)f(can)h(remo)o(v)o(e)e(them.)30 +b(Change)21 b(your)0 4590 y(director)e(\(router\))f(to)j(something)d +(lik)o(e)j(this:)326 4828 y Fk(require_files)43 b(=)h +(/virtual/${domain}/mailman/lists/${lc:$l)o(ocal_p)o(art}/c)o(onfig.)o +(pck)0 5114 y Fw(and)20 b(change)f(your)f(transport)h(lik)o(e)i(this:)p +0 5549 3901 4 v 0 5649 a Fo(14)2827 b(6)83 b(Set)23 b(up)h(y)n(our)f +(mail)h(ser)r(v)n(er)p eop end +%%Page: 15 15 +TeXDict begin 15 14 bop 326 174 a Fk(command)44 b(=)g +(/virtual/${domain}/mailman/mail/mailman)38 b(\\)774 +266 y(${if)44 b(def:local_part_suffix)e(\\)998 357 y +({${sg{$local_part_suffix}{-\(\\\\w+\)\(\\\\+.)2708 370 +y(*)2753 357 y(\)?)o(}{\\$1})o(}})998 448 y({post}})i(\\)864 +540 y($local_part)326 631 y(current_directory)e(=)j +(/virtual/${domain}/mailman)326 722 y(home_directory)d(=)j +(/virtual/${domain}/mailman)0 1130 y Fo(List)23 b(V)-7 +b(er)q(i\002cation)0 1333 y Fw(This)33 b(is)g(ho)n(w)f(a)h(set)g(of)f +(address)g(tests)i(for)e(the)h(Exim)e(lists)j(look)e(on)g(a)h(w)o +(orking)e(system.)62 b(The)32 b(list)i(in)e(question)g(is)h +Fv(quixote-)0 1432 y(users@mems-e)n(xchange)o(.org)p +Fw(,)21 b(and)i(these)g(commands)f(were)h(run)g(on)g(the)h +Fl(mems-exchange.org)c Fw(mail)k(serv)o(er)f(\(\224\045)g(\224)h(indi-) +0 1532 y(cates)d(the)f(Unix)g(shell)g(prompt\):)326 1770 +y Fk(\045)45 b(exim)f(-bt)g(quixote-users)326 1861 y +(quixote-users@mems-exchange.org)416 1953 y(router)f(=)i +(mailman_main_router,)d(transport)h(=)h(mailman_transport)326 +2135 y(\045)h(exim)f(-bt)g(quixote-users-request)326 +2227 y(quixote-users-request@mems-exchange.or)o(g)416 +2318 y(router)f(=)i(mailman_router,)d(transport)i(=)g +(mailman_transport)326 2501 y(\045)h(exim)f(-bt)g +(quixote-users-bounces)326 2592 y +(quixote-users-bounces@mems-exchange.or)o(g)416 2683 +y(router)f(=)i(mailman_router,)d(transport)i(=)g(mailman_transport)326 +2866 y(\045)h(exim)f(-bt)g(quixote-users-bounces+luser=example.com)326 +2957 y(quixote-users-bounces+luser=example.co)o(m@mems)o(-excha)o +(nge.or)o(g)416 3049 y(router)f(=)i(mailman_router,)d(transport)i(=)g +(mailman_transport)0 3336 y Fw(If)21 b(your)e Fr(exim)i(-bt)g +Fw(output)f(looks)g(something)f(lik)o(e)i(this,)h(that')-5 +b(s)21 b(a)g(start:)27 b(at)22 b(least)f(it)h(means)e(Exim)g(will)i +(pass)f(the)g(right)f(messages)h(to)0 3435 y(the)d(right)f(Mailman)g +(commands.)22 b(It)c(by)f(no)h(means)f(guarantees)f(that)i(your)f +(Exim/Mailman)f(installation)h(is)i(functioning)c(perfectly)-5 +b(,)0 3535 y(though!)0 3799 y Fo(Document)23 b(Histor)r(y)0 +4002 y Fw(Originally)j(written)g(by)h(Nigel)g(Metheringham)d +Fv(postmaster@e)n(xim.org)p Fw(.)42 b(Updated)26 b(by)g(Marc)h(Merlin)f +Fv(marc)p 3311 4002 23 4 v 27 w(soft@mer)q(lins)o(.org)0 +4101 y Fw(for)20 b(Mailman)f(2.1,)g(Exim)h(4.)25 b(Ov)o +(erhauled/reformatted/clari\002ed/simp)o(li\002ed)15 +b(by)k(Gre)o(g)h(W)-7 b(ard)20 b Fv(gw)o(ard@p)n(ython.net)p +Fw(.)0 4382 y Fn(6.3)100 b(Using)28 b(the)h(Sendmail)h(mail)e(ser)s(v)n +(er)p 0 4532 3901 17 v 0 5375 17 844 v 75 4647 a Fr(W)-5 +b(ar)o(ning:)107 b Fw(Y)-9 b(ou)34 b(may)g(be)g(tempted)g(to)h(set)g +(the)g Fq(DELIVER)o(Y)p 2038 4647 25 4 v 28 w(MODULE)i +Fw(con\002guration)32 b(v)n(ariable)h(in)i(`)p Fv(mm)p +3478 4647 23 4 v 27 w(cfg.p)n(y)p Fw(')f(to)75 4747 y +Fl('Sendmail')c Fw(when)h(using)g(the)h(Sendmail)f(mail)g(serv)o(er)-5 +b(.)59 b Fr(Don't)p Fw(.)g(The)31 b(`)p Fv(Sendmail.p)n(y)p +Fw(')e(module)h(is)j(misnamed)d(\226)i(it')-5 b(s)75 +4847 y(really)20 b(a)i(command)d(line)i(based)g(message)g(handof)n(f)e +(scheme)i(as)h(opposed)d(to)i(the)g(SMTP)h(scheme)f(used)g(in)g(`)p +Fv(SMTPDirect.p)n(y)p Fw(')75 4946 y(\(the)27 b(def)o(ault\).)45 +b(`)p Fv(Sendmail.p)n(y)p Fw(')24 b(has)k(kno)n(wn)e(security)h(holes)g +(and)g(is)h(pro)o(vided)d(as)j(a)g(proof-of-concept)22 +b(only)3388 4916 y Fc(a)3420 4946 y Fw(.)47 b(If)27 b(you)g(are)75 +5046 y(ha)n(ving)c(problems)f(using)i(`)p Fv(SMTPDirect.p)n(y)p +Fw(')d(\002x)k(those)e(instead)h(of)g(using)f(`)p Fv(Sendmail.p)n(y)p +Fw(',)f(or)h(you)h(may)f(open)g(your)g(system)75 5145 +y(up)c(to)i(security)e(e)o(xploits.)p 75 5217 1501 4 +v 165 5270 a Fb(a)194 5293 y Fp(In)e(f)o(act,)h(in)g(later)g(v)o +(ersions)g(of)f(Mailman,)h(this)g(module)g(is)e(e)o(xplicitly)21 +b(sabotaged.)i(Y)-7 b(ou)16 b(ha)o(v)o(e)i(to)f(kno)n(w)h(what)g(you')m +(re)f(doing)h(in)f(order)h(to)g(re-enable)h(it.)p 3883 +5375 17 844 v 0 5392 3901 17 v 0 5549 3901 4 v 0 5649 +a Fo(6.3)83 b(Using)24 b(the)f(Sendmail)i(mail)g(ser)r(v)n(er)2459 +b(15)p eop end +%%Page: 16 16 +TeXDict begin 16 15 bop 0 83 a Fo(Sendmail)25 b(\223smrsh\224)c +(compatibility)0 286 y Fw(Man)o(y)16 b(ne)n(wer)h(v)o(ersions)f(of)h +(Sendmail)g(come)g(with)g(a)h(restricted)f(e)o(x)o(ecution)e(utility)i +(called)h(\223smrsh\224,)f(which)g(limits)h(the)f(e)o(x)o(ecutables)0 +386 y(that)j(Sendmail)g(will)h(allo)n(w)f(to)h(be)f(used)g(as)h(mail)g +(programs.)i(Y)-9 b(ou)20 b(need)g(to)g(e)o(xplicitly)g(allo)n(w)g +(Mailman')-5 b(s)20 b(wrapper)f(program)f(to)j(be)0 485 +y(used)f(with)g(smrsh)h(or)f(Mailman)f(will)i(not)f(w)o(ork.)25 +b(If)20 b(mail)g(is)i(not)d(getting)h(deli)n(v)o(ered)e(to)j(Mailman') +-5 b(s)20 b(wrapper)f(program)f(and)h(you')l(re)0 585 +y(getting)g(an)i(\223operating)d(system)i(error\224)f(in)h(your)f(mail) +i(syslog,)e(this)i(could)e(be)h(your)f(problem.)0 732 +y(One)h(good)f(w)o(ay)h(of)g(enabling)f(this)h(is:)125 +962 y Fd(\017)41 b Fw(Find)20 b(out)f(where)h(your)f(Sendmail)g(e)o(x)o +(ecutes)g(its)j(smrsh)e(wrapper)982 1186 y Fk(\045)44 +b(grep)h(smrsh)f(/etc/mail/sendmail.cf)125 1583 y Fd(\017)d +Fw(Figure)21 b(out)h(where)f(smrsh)h(e)o(xpects)f(symlinks)g(for)h +(allo)n(w)o(able)f(mail)h(programs.)29 b(At)22 b(the)g(v)o(ery)f(be)o +(ginning)f(of)h(the)h(follo)n(wing)208 1682 y(output)d(you)g(will)i +(see)g(a)f(full)g(path)g(to)g(some)g(directory)-5 b(,)18 +b(e.g.)25 b(`)p Fv(/v)n(ar/adm/sm.bin)p Fw(')17 b(or)j(similar:)982 +1907 y Fk(\045)44 b(strings)g($path_to_smrsh)f(|)h(less)125 +2304 y Fd(\017)d Fw(cd)20 b(into)g(`)p Fv(/v)n(ar/adm/sm.bin)p +Fw(',)e(or)i(where)f(e)n(v)o(er)h(it)h(happens)e(to)h(reside)h(on)f +(your)f(system)h(\226)h(alternati)n(v)o(es)e(include)g(`)p +Fv(/etc/smrsh)p Fw(',)208 2403 y(`)p Fv(/v)n(ar/smrsh)p +Fw(')g(and)h(`)p Fv(/usr/local/smrsh)p Fw('.)982 2627 +y Fk(\045)44 b(cd)h(/var/adm/sm.bin)125 3024 y Fd(\017)c +Fw(Create)20 b(a)h(symbolic)e(link)h(to)g(Mailman')-5 +b(s)20 b(wrapper)f(program:)982 3248 y Fk(\045)44 b(ln)h(-s)f +(/usr/local/mailman/mail/mailman)c(mailman)0 3752 y Fo(Integ)o(r)o +(ating)25 b(Sendmail)g(and)e(Mailman)0 3955 y Fw(Da)n(vid)k(Champion)f +(has)i(contrib)n(uted)d(a)j(recipe)e(for)h(more)g(closely)g(inte)o +(grating)e(Sendmail)i(and)g(Mailman,)h(such)f(that)g(Sendmail)0 +4055 y(will)20 b(automatically)e(recognize)g(and)h(deli)n(v)o(er)f(to)h +(ne)n(w)h(mailing)e(lists)j(as)f(the)o(y)f(are)g(created,)g(without)f +(ha)n(ving)h(to)g(manually)f(edit)i(alias)0 4154 y(tables.)0 +4301 y(In)g(the)g(`)p Fv(contr)q(ib)p Fw(')f(directory)f(of)i(Mailman') +-5 b(s)20 b(source)f(distrib)n(ution,)g(you)g(will)i(\002nd)f(four)f +(\002les:)125 4531 y Fd(\017)41 b Fw(`)p Fv(mm-handler)l(.readme)p +Fw(')15 b(-)21 b(an)f(e)o(xplanation)e(of)i(ho)n(w)f(to)i(set)g(e)n(v)o +(erything)c(up)125 4697 y Fd(\017)41 b Fw(`)p Fv(mm-handler)p +Fw(')17 b(-)k(the)f(mail)g(deli)n(v)o(ery)f(agent)g(\(MD)m(A\))125 +4863 y Fd(\017)41 b Fw(`)p Fv(mailman.mc)p Fw(')18 b(-)j(a)f(to)o(y)g +(con\002guration)e(\002le)j(sample)125 5029 y Fd(\017)41 +b Fw(`)p Fv(vir)s(tuser)s(tab)o(le)p Fw(')16 b(-)k(a)h(sample)f(for)g +(RFC)h(2142)e(address)h(e)o(xceptions)p 0 5549 3901 4 +v 0 5649 a Fo(16)2827 b(6)83 b(Set)23 b(up)h(y)n(our)f(mail)h(ser)r(v)n +(er)p eop end +%%Page: 17 17 +TeXDict begin 17 16 bop 0 83 a Fo(P)l(erf)n(or)r(mance)23 +b(notes)0 286 y Fw(One)f(of)f(the)h(surest)h(performance)c(killers)j +(for)f(Sendmail)g(users)h(is)h(when)f(Sendmail)f(is)i(con\002gured)c +(to)j(synchronously)d(v)o(erify)i(the)0 386 y(recipient')-5 +b(s)24 b(host)g(via)h(DNS.)f(If)h(it)g(does)f(this)h(for)f(messages)g +(posted)g(to)h(it)g(from)e(Mailman,)i(you)e(will)i(get)g(horrible)e +(performance.)0 485 y(Since)f(Mailman)f(usually)g(connects)f(via)i +Fl(localhost)e Fw(\(i.e.)29 b(127.0.0.1\))18 b(to)k(the)g(SMTP)g(port)f +(of)g(Sendmail,)g(you)g(should)f(be)i(sure)0 585 y(to)e(con\002gure)f +(Sendmail)g(to)h Fr(not)g Fw(do)g(DNS)h(v)o(eri\002cation)e +(synchronously)e(for)i(localhost)h(connections.)0 864 +y Fn(6.4)100 b(Using)28 b(the)h(Qmail)e(mail)i(ser)s(v)n(er)0 +1067 y Fw(There)18 b(are)i(some)f(issues)h(that)f(users)h(of)f(the)g +(qmail)g(mail)g(transport)f(agent)h(ha)n(v)o(e)g(encountered.)j(None)c +(of)h(the)g(core)g(maintainers)f(use)0 1167 y(qmail,)23 +b(so)h(all)f(of)g(this)h(information)c(has)j(been)g(contrib)n(uted)e +(by)h(the)i(Mailman)e(user)h(community)-5 b(,)21 b(especially)h(Martin) +h(Preishuber)0 1266 y(and)d(Christian)g(T)m(ismer)m(,)f(with)i(notes)f +(by)f(Balazs)j(Nagy)d(\(BN\))i(and)e(Norbert)g(Bollo)n(w)h(\(NB\).)125 +1466 y Fd(\017)41 b Fw(Y)-9 b(ou)17 b(might)h(need)f(to)i(set)g(the)f +(mail-gid)f(user)h(to)g(either)g Fl(qmail)p Fw(,)g Fl(mailman)p +Fw(,)g(or)g Fl(nofiles)f Fw(by)h(using)g(the)g Fr(--with-mail-gid)208 +1566 y(con\002gur)o(e)h Fw(option.)208 1692 y Fq(BN:)i +Fw(it)h(highly)e(depends)g(on)h(your)e(mail)j(storing)e(polic)o(y)-5 +b(.)27 b(F)o(or)20 b(e)o(xample)g(if)i(you)e(use)h(the)h(simple)f(`)p +Fv(\230alias/.qmail-*)p Fw(')c(\002les,)22 b(you)208 +1792 y(can)e(use)g Fr(`id)h(-g)f(alias`)p Fw(.)k(But)d(if)f(you)g(use)g +(`)p Fv(/v)n(ar/qmail/users)p Fw(',)d(the)j(speci\002ed)g(mail)h(gid)f +(can)g(be)g(used.)208 1919 y(If)27 b(you)g(are)g(going)g(to)h(be)f +(directing)g(virtual)g(domains)f(directly)h(to)h(the)g +Fl(mailman)e Fw(user)i(\(using)f(\223virtualdomains\224)e(on)i(a)208 +2018 y(list-only)h(domain,)i(for)f(e)o(xample\),)h(you)e(will)i(ha)n(v) +o(e)f(to)h(use)f Fr(--with-mail-gid)p Fw(=)p Fq(gid)e(of)i(mailman)g +(user')m(s)g(gr)l(oup)p Fw(.)52 b(This)30 b(is)208 2118 +y(incompatible)18 b(with)i(ha)n(ving)f(list)j(aliases)f(in)f(`)p +Fv(\230alias)p Fw(',)e(unless)j(that)f(alias)h(simply)f(forw)o(ards)f +(to)h Fl(mailman-listname)3794 2133 y(*)3844 2118 y Fw(.)125 +2272 y Fd(\017)41 b Fw(If)26 b(there)g(is)h(a)g(user)f +Fl(mailman)f Fw(on)h(your)f(system,)j(the)f(alias)g Fl(mailman-owner)d +Fw(will)j(w)o(ork)f(only)f(in)i(`)p Fv(\230mailman)p +Fw('.)41 b(Y)-9 b(ou)208 2372 y(ha)n(v)o(e)19 b(to)h(do)g(a)h +Fr(touch)f(.qmail-o)o(wner)g Fw(in)g(`)p Fv(\230mailman)p +Fw(')e(directory)h(to)h(create)g(this)h(alias.)208 2498 +y Fq(NB:)26 b Fw(An)f(alternati)n(v)o(e,)h(IMHO)g(better)f(solution)g +(is)h(to)g Fr(cho)o(wn)g(r)o(oot)f(\230mailman)p Fw(,)i(that)e(will)i +(stop)f(qmail)f(from)g(considering)208 2598 y Fl(mailman)19 +b Fw(to)h(be)g(a)h(user)f(to)h(whom)e(mail)h(can)g(be)g(deli)n(v)o +(ered.)j(\(See)e(\223man)e(8)i(qmail-getpw\224.\))125 +2752 y Fd(\017)41 b Fw(In)18 b(a)h(related)f(issue,)h(if)g(you)e(ha)n +(v)o(e)h(an)o(y)g(users)h(with)f(the)h(same)g(name)f(as)h(one)f(of)g +(your)f(mailing)h(lists,)i(you)e(will)h(ha)n(v)o(e)f(problems)208 +2851 y(if)30 b(list)i(names)e(contain)f(`)p Fl(-)p Fw(')h(in)g(them.)55 +b(Putting)30 b(`)p Fv(.qmail)p Fw(')f(redirections)f(into)j(the)f +(user')-5 b(s)30 b(home)g(directory)e(doesn')o(t)h(w)o(ork)208 +2951 y(because)22 b(the)g(Mailman)g(wrappers)g(will)h(not)g(get)g(spa)o +(wned)e(with)i(the)g(proper)e(GID.)h(The)h(solution)f(is)h(to)g(put)f +(the)h(follo)n(wing)208 3051 y(lines)d(in)g(the)h(`)p +Fv(/v)n(ar/qmail/users/assign)p Fw(')16 b(\002le:)533 +3269 y Fk(+zope-:alias:112:11:/var/qmail/alias:-:zop)o(e-:)533 +3360 y(.)208 3627 y Fw(where)j(in)h(this)h(case)g(the)f(listname)g(is)h +(e.g.)k Fl(zope-users)p Fw(.)208 3753 y Fq(NB:)g Fw(Alternati)n(v)o +(ely)-5 b(,)24 b(you)g(could)g(host)h(the)g(lists)h(on)f(a)g(virtual)f +(domain,)h(and)f(use)h(the)g(`)p Fv(/v)n(ar/qmail/control/vir)s(tualdo) +o(mai)o(ns)p Fw(')208 3853 y(\002le)20 b(to)h(put)f(the)g +Fl(mailman)f Fw(user)h(in)h(char)o(ge)d(of)i(this)h(virtual)e(domain.) +125 4007 y Fd(\017)41 b Fq(BN:)p Fw(If)32 b(inbound)e(messages)j(are)f +(deli)n(v)o(ered)f(by)h(another)g(user)g(than)g Fl(mailman)p +Fw(,)j(it')-5 b(s)34 b(necessary)e(to)g(allo)n(w)h(it)g(to)g(access)208 +4106 y(`)p Fv(\230mailman)p Fw('.)26 b(Be)d(sure)e(that)g(`)p +Fv(\230mailman)p Fw(')f(has)i(group)d(writing)i(access)h(and)f(setgid)h +(bit)f(is)i(set.)29 b(Then)21 b(put)g(the)g(deli)n(v)o(ering)f(user)208 +4206 y(to)f Fl(mailman)f Fw(group,)f(and)i(you)f(can)h(den)o(y)f +(access)i(to)f(`)p Fv(\230mailman)p Fw(')e(to)i(others.)24 +b(Be)c(sure)f(that)g(you)f(can)h(do)g(the)g(same)g(with)h(the)208 +4306 y(WWW)h(service.)208 4432 y(By)50 b(the)g(w)o(ay)g(the)g(best)g +(thing)f(is)i(to)f(mak)o(e)f(a)i(virtual)e(mail)h(serv)o(er)f(to)h +(handle)f(all)h(of)g(the)g(mail.)114 b Fq(NB:)50 b Fw(E.g.)208 +4532 y(mak)o(e)c(an)h(additional)f(\224A\224)h(DNS)h(record)d(for)i +(the)g(virtual)f(mailserv)o(er)g(pointing)g(to)h(your)f(IP)h(address,) +53 b(add)47 b(the)208 4632 y(line)54 b Fl(lists.kva.hu:mailman)c +Fw(to)k(`)p Fv(/v)n(ar/qmail/control/vir)s(tualdo)o(mai)o(ns)p +Fw(')48 b(and)54 b(a)g Fl(lists.kva.hu)e Fw(line)i(to)208 +4731 y(`)p Fv(/v)n(ar/qmail/control/rcpthosts)p Fw(')16 +b(\002le.)32 b(Don')o(t)21 b(for)o(get)f(to)j(HUP)g(the)f(qmail-send)f +(after)g(modifying)f(\223virtualdomains\224.)28 b(Then)208 +4831 y(e)n(v)o(ery)18 b(mail)j(to)f(lists.kv)n(a.hu)f(will)i(arri)n(v)o +(e)e(to)h(mail.kv)n(a.hu')-5 b(s)18 b(mailman)i(user)-5 +b(.)208 4958 y(Then)19 b(mak)o(e)h(your)f(aliases:)892 +5176 y Fk(.qmail)627 b(=>)44 b(mailman@...'s)f(letters)892 +5267 y(.qmail-owner)357 b(=>)44 b(mailman-owner's)f(letters)p +0 5549 3901 4 v 0 5649 a Fo(6.4)83 b(Using)24 b(the)f(Qmail)h(mail)g +(ser)r(v)n(er)2589 b(17)p eop end +%%Page: 18 18 +TeXDict begin 18 17 bop 208 83 a Fw(F)o(or)19 b(list)j(aliases,)f(you)e +(can)h(either)g(create)g(them)f(manually:)892 307 y Fk(.qmail-list)402 +b(=>)44 b(posts)g(to)h(the)f('list')g(list)892 399 y(.qmail-list-admin) +132 b(=>)44 b(posts)g(to)h(the)f('list's)g(owner)892 +490 y(.qmail-list-request)e(=>)i(requests)g(to)g('list')892 +581 y(etc)208 854 y Fw(or)c(for)h(automatic)f(list)i(alias)g(handling)e +(\(when)g(using)g(the)i(lists.kv)n(a.hu)d(virtual)i(as)h(abo)o(v)o +(e\),)i(see)e(`)p Fv(contr)q(ib/qmail-to-)208 953 y(mailman.p)n(y)p +Fw(')18 b(in)i(the)g(Mailman)g(source)f(distrib)n(ution.)24 +b(Modify)19 b(the)h(`)p Fv(\230mailman/.qmail-def)n(au)o(lt)p +Fw(')14 b(to)21 b(include:)892 1177 y Fk(|preline)44 +b(/path/to/python)e(/path/to/qmail-to-mailman.py)208 +1450 y Fw(and)19 b(ne)n(w)h(lists)i(will)f(automatically)d(be)j(pick)o +(ed)e(up.)125 1616 y Fd(\017)41 b Fw(Y)-9 b(ou)21 b(ha)n(v)o(e)h(to)g +(mak)o(e)g(sure)g(that)g(the)g(localhost)g(can)g(relay)-5 +b(.)30 b(If)22 b(you)f(start)i(qmail)f(via)g(inetd)g(and)f(tcpen)m(v)-5 +b(,)21 b(you)g(need)g(some)h(line)208 1716 y(the)e(follo)n(wing)e(in)j +(your)e(`)p Fv(/etc/hosts)o(.allo)o(w)p Fw(')d(\002le:)713 +1940 y Fk(tcp-env:)43 b(127.)h(10.205.200.)f(:)i(setenv)f(RELAYCLIENT) +208 2212 y Fw(where)18 b(10.205.200.)j(is)f(your)e(IP)i(address)f +(block.)k(If)c(you)g(use)g(tcpserv)o(er)m(,)f(then)g(you)h(need)f +(something)g(lik)o(e)i(the)f(follo)n(wing)e(in)208 2312 +y(your)h(`)p Fv(/etc/tcp)m(.smtp)p Fw(')i(\002le:)713 +2536 y Fk(10.205.200.:allow,RELAYCLIENT="")713 2627 y +(127.:allow,RELAYCLIENT="")125 2933 y Fd(\017)41 b Fq(BN:)23 +b Fw(Bigger)f(`)p Fv(/v)n(ar/qmail/control/concurrencyremo)o(te)p +Fw(')17 b(v)n(alues)22 b(w)o(ork)g(better)h(sending)e(outbound)f +(messages,)j(within)g(rea-)208 3033 y(son.)43 b(Unless)27 +b(you)e(kno)n(w)g(your)h(system)g(can)g(handle)g(it)h(\(man)o(y)d(if)j +(not)f(most)g(cannot\))f(this)i(should)f(not)g(be)g(set)h(to)f(a)h(v)n +(alue)208 3132 y(greater)19 b(than)g(120.)125 3298 y +Fd(\017)41 b Fw(More)19 b(information)f(about)h(setting)h(up)g(qmail)g +(and)g(relaying)e(can)i(be)h(found)d(in)i(the)h(qmail)e(documentation.) +0 3528 y Fq(BN:)24 b Fw(Last)g(b)n(ut)f(not)h(least,)h(here')-5 +b(s)23 b(a)h(little)g(script)g(to)g(generate)e(aliases)i(to)g(your)e +(lists)j(\(if)f(for)f(some)g(reason)g(you)f(can/will)i(not)f(ha)n(v)o +(e)0 3628 y(them)d(automatically)f(pick)o(ed)g(up)h(using)f(`)p +Fv(contr)q(ib/qmail-to-mailman.p)m(y)p Fw('\):)0 3775 +y(This)h(script)h(is)g(for)e(the)h(Mailman)g(2.0)g(series:)236 +4013 y Fk(#!/bin/sh)236 4104 y(if)45 b([)f($#)h(=)g(1)f(];)h(then)416 +4196 y(i=$1)416 4287 y(echo)f(Making)g(links)g(to)g($i)h(in)f(the)g +(current)g(directory...)416 4378 y(echo)g("|preline)f +(/home/mailman/mail/mailman)d(post)45 b($i")f(>)h(.qmail-$i)416 +4469 y(echo)f("|preline)f(/home/mailman/mail/mailman)d(mailowner)k($i") +g(>)h(.qmail-$i-admin)416 4561 y(echo)f("|preline)f +(/home/mailman/mail/mailman)d(mailowner)k($i")g(>)h(.qmail-$i-owner)416 +4652 y(echo)f("|preline)f(/home/mailman/mail/mailman)d(mailowner)k($i") +g(>)h(.qmail-owner-$i)416 4743 y(echo)f("|preline)f +(/home/mailman/mail/mailman)d(mailcmd)k($i")g(>)h(.qmail-$i-request)236 +4835 y(fi)0 5121 y Fr(Note:)81 b Fw(This)28 b(is)h(for)e(a)h(ne)n(w)g +(Mailman)f(2.1)h(installation.)47 b(Users)29 b(upgrading)c(from)i +(Mailman)g(2.0)g(w)o(ould)g(most)h(lik)o(ely)g(change)0 +5221 y(`)p Fv(/usr/local/mailman)p Fw(')19 b(to)k(`)p +Fv(/home/mailman)p Fw('.)30 b(If)23 b(in)g(doubt,)f(refer)g(to)h(the)g +Fr(--pr)o(e\002x)f Fw(option)g(passed)h(to)g Fr(con\002gur)o(e)f +Fw(during)g(compile)0 5321 y(time.)p 0 5549 3901 4 v +0 5649 a Fo(18)2827 b(6)83 b(Set)23 b(up)h(y)n(our)f(mail)h(ser)r(v)n +(er)p eop end +%%Page: 19 19 +TeXDict begin 19 18 bop 236 174 a Fk(#!/bin/sh)236 266 +y(if)45 b([)f($#)h(=)g(1)f(];)h(then)416 357 y(i=$1)416 +448 y(echo)f(Making)g(links)g(to)g($i)h(in)f(the)g(current)g +(directory...)416 540 y(echo)g("|preline)f +(/usr/local/mailman/mail/mailman)d(post)k($i")g(>)h(.qmail-$i)416 +631 y(echo)f("|preline)f(/usr/local/mailman/mail/mailman)d(admin)k($i") +g(>)h(.qmail-$i-admin)416 722 y(echo)f("|preline)f +(/usr/local/mailman/mail/mailman)d(bounces)j($i")i(>)f +(.qmail-$i-bounces)416 814 y(#)g(The)h(following)e(line)h(is)h(for)f +(VERP)416 905 y(#)g(echo)g("|preline)g(/usr/local/mailman/mail/mailman) +39 b(bounces)44 b($i")g(>)h(.qmail-$i-bounces-default)416 +996 y(echo)f("|preline)f(/usr/local/mailman/mail/mailman)d(confirm)j +($i")i(>)f(.qmail-$i-confirm)416 1088 y(echo)g("|preline)f +(/usr/local/mailman/mail/mailman)d(join)k($i")g(>)h(.qmail-$i-join)416 +1179 y(echo)f("|preline)f(/usr/local/mailman/mail/mailman)d(leave)k +($i")g(>)h(.qmail-$i-leave)416 1270 y(echo)f("|preline)f +(/usr/local/mailman/mail/mailman)d(owner)k($i")g(>)h(.qmail-$i-owner) +416 1362 y(echo)f("|preline)f(/usr/local/mailman/mail/mailman)d +(request)j($i")i(>)f(.qmail-$i-request)416 1453 y(echo)g("|preline)f +(/usr/local/mailman/mail/mailman)d(subscribe)j($i")h(>)h +(.qmail-$i-subscribe)416 1544 y(echo)f("|preline)f +(/usr/local/mailman/mail/mailman)d(unsubscribe)j($i")h(>)h +(.qmail-$i-unsubscribe)236 1636 y(fi)0 2047 y Fo(Inf)n(or)r(mation)24 +b(on)f(VERP)0 2250 y Fw(Y)-9 b(ou)24 b(will)i(note)e(in)h(the)f(alias)i +(generating)c(script)j(for)f(2.1)g(abo)o(v)o(e,)g(there)g(is)i(a)f +(line)g(for)f(VERP)h(that)g(has)g(been)f(commented)f(out.)38 +b(If)0 2350 y(you)18 b(are)i(interested)e(in)i(VERP)g(there)e(are)i(tw) +o(o)f(options.)24 b(The)19 b(\002rst)h(option)e(is)i(to)f(allo)n(w)h +(Mailman)e(to)i(do)e(the)i(VERP)g(formatting.)i(T)-7 +b(o)0 2450 y(acti)n(v)n(ate)20 b(this,)g(uncomment)e(that)i(line)h(and) +e(add)h(the)g(follo)n(wing)f(lines)h(to)h(your)e(`)p +Fv(mm)p 2477 2450 23 4 v 27 w(cfg.p)n(y)p Fw(')g(\002le:)416 +2688 y Fk(VERP_FORMAT)43 b(=)h +('\045\(bounces\)s-+\045\(mailbox\)s=\045\(host\)s')416 +2779 y(VERP_REGEXP)f(=)h(r'\210\(?P<bounces>.)1763 2792 +y(*)1808 2779 y(?\)-\\+\(?P<mailbox>[\210=]+\))o(=\(?P<h)o(ost>[\210)o +(@]+\)@.)3649 2792 y(*)3694 2779 y($')0 3066 y Fw(The)20 +b(second)f(option)g(is)i(a)g(patch)e(on)h(SourceF)o(or)o(ge)d(located)j +(at:)0 3213 y Fv(http://sourcef)n(orge)o(.net/t)o(r)o(ac)o(k)o(e)o(r/?) +o(fun)o(c=de)o(tai)o(l&a)o(tid)o(=3)o(00)o(10)o(3&a)o(id=)o(64)o(55)o +(13)o(&g)o(rou)o(p)p 2530 3213 V 20 w(id=103)0 3359 y +Fw(This)i(patch)f(currently)f(needs)h(more)g(testing)h(and)f(might)g +(best)h(be)g(suitable)g(for)f(de)n(v)o(elopers)e(or)j(people)f(well)h +(f)o(amiliar)f(with)h(qmail.)0 3459 y(Ha)n(ving)e(said)g(that,)g(this)h +(patch)e(is)i(the)g(more)e(qmail-friendly)e(approach)h(resulting)i(in)g +(lar)o(ge)f(performance)f(gains.)0 3727 y Fo(Vir)s(tual)25 +b(mail)f(ser)r(v)n(er)0 3930 y Fw(As)d(mentioned)d(in)j(the)f(6.4)f +(section)h(for)g(a)g(virtual)g(mail)g(serv)o(er)m(,)f(a)i(patch)e +(under)g(testing)h(is)h(located)f(at:)0 4077 y Fv(http://sf)n(.net/tr)o +(ac)o(k)o(er/ind)o(e)n(x.p)o(hp)o(?fu)o(nc=d)o(eta)o(il)o(&ai)o(d=)o +(621)o(25)o(7&g)n(rou)o(p)p 2053 4077 V 21 w(id=103&atid=3001)o(03)0 +4224 y Fw(Again,)f(this)i(patch)e(is)i(for)f(people)f(f)o(amiliar)h +(with)g(their)g(qmail)g(installation.)0 4492 y Fo(More)j(inf)n(or)r +(mation)0 4695 y Fw(Y)-9 b(ou)25 b(might)h(be)g(interested)f(in)h(some) +g(information)d(on)j(modifying)d(footers)j(that)g(Norbert)e(Bollo)n(w)i +(has)g(written)g(about)f(Mailman)0 4795 y(and)20 b(qmail,)f(a)n(v)n +(ailable)h(here:)0 4942 y Fv(http://mailman.cis)o(.to/qmail-)o(v)n +(erh/)p 0 5549 3901 4 v 0 5649 a Fo(6.4)83 b(Using)24 +b(the)f(Qmail)h(mail)g(ser)r(v)n(er)2589 b(19)p eop end +%%Page: 20 20 +TeXDict begin 20 19 bop 0 87 a Fx(7)120 b(Re)l(vie)n(w)34 +b(y)n(our)g(site)f(def)l(aults)0 320 y Fw(Mailman)23 +b(has)g(a)h(lar)o(ge)e(number)f(of)i(site-wide)g(con\002guration)e +(options)h(which)h(you)f(should)g(no)n(w)h(re)n(vie)n(w)f(and)h(change) +f(according)0 420 y(to)j(your)f(needs.)39 b(Some)25 b(of)g(the)g +(options)f(control)f(ho)n(w)i(Mailman)f(interacts)h(with)g(your)f(en)m +(vironment,)f(and)i(other)f(options)g(select)0 519 y(def)o(aults)c(for) +f(ne)n(wly)h(created)f(lists)1015 489 y Fm(4)1049 519 +y Fw(.)26 b(There)19 b(are)h(system)h(tuning)e(parameters)g(and)g(inte) +o(gration)g(options.)0 666 y(The)24 b(full)f(set)i(of)e(site-wide)h +(def)o(aults)g(li)n(v)o(es)g(in)g(the)f(`)p Fj($)p Fq(pr)m(e\002x)p +Fo(/Mailman/Def)n(aults)o(.p)n(y)p Fw(')h(\002le,)h(ho)n(we)n(v)o(er)d +(you)h(should)g Fr(ne)o(v)o(er)g Fw(modify)0 766 y(this)29 +b(\002le!)50 b(Instead,)29 b(change)e(the)h(`)p Fv(mm)p +1174 766 23 4 v 27 w(cfg.p)n(y)p Fw(')g(\002le)h(in)f(that)h(same)f +(directory)-5 b(.)47 b(Y)-9 b(ou)28 b(only)f(need)h(to)g(add)g(v)n +(alues)g(to)g(`)p Fv(mm)p 3652 766 V 27 w(cfg.p)n(y)p +Fw(')0 866 y(that)c(are)f(dif)n(ferent)f(than)h(the)g(def)o(aults)g(in) +h(`)p Fv(Def)n(aults)o(.p)n(y)p Fw(',)d(and)i(future)f(Mailman)h +(upgrades)f(are)h(guaranteed)f(ne)n(v)o(er)g(to)h(touch)g(your)0 +965 y(`)p Fv(mm)p 156 965 V 27 w(cfg.p)n(y)p Fw(')d(\002le.)0 +1112 y(The)k(`)p Fv(Def)n(aults)o(.p)n(y)p Fw(')d(\002le)j(is)h +(documented)c(e)o(xtensi)n(v)o(ely)-5 b(,)23 b(so)h(the)g(options)f +(are)h(not)g(described)e(here.)36 b(The)24 b(`)p Fv(Def)n(aults)o(.p)n +(y)p Fw(')d(and)i(`)p Fv(mm)p 3852 1112 V 27 w(-)0 1212 +y(cfg.p)n(y)p Fw(')d(are)g(both)f(Python)g(\002les)i(so)g(v)n(alid)e +(Python)h(syntax)f(must)h(be)g(maintained)f(or)h(your)f(Mailman)g +(installation)h(will)h(break.)0 1358 y Fr(Note:)73 b +Fw(Do)26 b Fr(not)g Fw(change)e(the)i Fq(HOME)p 1172 +1358 25 4 v 30 w(DIR)g Fw(or)f Fq(MAILMAN)p 1831 1358 +V 30 w(DIR)h Fw(v)n(ariables.)41 b(These)26 b(are)g(set)h +(automatically)d(by)h(the)h Fr(con\002gur)o(e)0 1458 +y Fw(script,)20 b(and)g(you)f(will)i(break)e(your)g(Mailman)g +(installation)h(by)g(if)h(you)e(change)g(these.)0 1605 +y(Y)-9 b(ou)20 b(should)f(mak)o(e)h(an)o(y)f(changes)g(to)h(`)p +Fv(mm)p 1265 1605 23 4 v 27 w(cfg.p)n(y)p Fw(')g(using)g(the)g(account) +f(you)g(installed)h(Mailman)g(under)f(in)h(the)g(14)g(section.)0 +1932 y Fx(8)120 b(Create)35 b(a)f(site-wide)g(mailing)e(list)0 +2165 y Fw(After)22 b(you)g(ha)n(v)o(e)g(completed)g(the)g(inte)o +(gration)f(of)i(Mailman)f(and)g(your)g(mail)g(serv)o(er)m(,)g(you)g +(need)g(to)h(create)g(a)g(\223site-wide\224)f(mailing)0 +2265 y(list.)j(This)17 b(is)h(the)g(one)e(that)h(passw)o(ord)g +(reminders)e(will)j(appear)e(to)i(come)e(from,)h(and)f(it)i(is)g +(required)d(for)i(proper)e(Mailman)i(operation.)0 2364 +y(Usually)i(this)h(should)e(be)i(a)f(list)i(called)e +Fl(mailman)p Fw(,)g(b)n(ut)g(if)h(you)e(need)h(to)g(change)f(this,)i +(be)f(sure)h(to)f(change)f(the)i Fq(MAILMAN)p 3652 2364 +25 4 v 29 w(SITE)p 3848 2364 V 29 w(-)0 2464 y(LIST)27 +b Fw(v)n(ariable)19 b(in)h(`)p Fv(mm)p 716 2464 23 4 +v 27 w(cfg.p)n(y)p Fw('.)k(Y)-9 b(ou)20 b(can)g(create)g(the)g(site)h +(list)g(with)g(this)f(command,)e(follo)n(wing)h(the)h(prompts:)416 +2702 y Fk(\045)44 b(bin/newlist)f(mailman)0 2989 y Fw(No)n(w)23 +b(con\002gure)f(your)h(site)h(list.)36 b(There)23 b(is)i(a)f(con)m(v)o +(enient)d(template)i(for)g(a)h(generic)e(site)j(list)f(in)g(the)g +(installation)f(directory)-5 b(,)22 b(under)0 3088 y(`)p +Fv(data/sitelist.cfg)p Fw(')c(which)j(can)h(help)f(you)g(with)i(this.) +30 b(Y)-9 b(ou)21 b(should)g(re)n(vie)n(w)g(the)h(con\002guration)e +(options)h(in)h(the)g(template,)f(b)n(ut)h(note)0 3188 +y(that)e(an)o(y)g(options)f(not)h(named)f(in)h(the)g(`)p +Fv(sitelist.cfg)p Fw(')e(\002le)j(w)o(on')o(t)e(be)i(changed.)0 +3335 y(The)f(template)g(can)g(be)g(applied)f(to)h(your)f(site)i(list)g +(by)f(running:)416 3573 y Fk(\045)44 b(bin/config_list)f(-i)h +(data/sitelist.cfg)e(mailman)0 3860 y Fw(After)20 b(applying)e(the)i(`) +p Fv(sitelist.cfg)p Fw(')f(options,)g(be)h(sure)g(you)f(re)n(vie)n(w)h +(the)g(site)h(list')-5 b(s)21 b(con\002guration)d(via)i(the)g(admin)g +(pages.)0 4007 y(Y)-9 b(ou)20 b(should)f(also)h(subscribe)g(yourself)e +(to)j(the)f(site)h(list.)0 4334 y Fx(9)120 b(Set)34 b(up)g(cron)0 +4567 y Fw(Se)n(v)o(eral)22 b(Mailman)f(features)h(occur)f(on)h(a)h(re)o +(gular)e(schedule,)h(so)g(you)g(must)g(set)h(up)f Fr(cr)o(on)g +Fw(to)h(run)e(the)i(right)e(programs)g(at)i(the)f(right)0 +4666 y(time)148 4636 y Fm(5)181 4666 y Fw(.)0 4813 y(If)d(your)f(v)o +(ersion)h(of)g(crontab)f(supports)g(the)h Fr(-u)h Fw(option,)e(you)h +(must)g(be)g(root)g(to)h(do)f(this)h(ne)o(xt)e(step.)25 +b(Add)19 b(`)p Fj($)p Fq(pr)m(e\002x)p Fo(/cron/crontab)m(.in)p +Fw(')0 4913 y(as)i(a)g(crontab)d(entry)i(by)f(e)o(x)o(ecuting)f(these)j +(commands:)p 0 4984 1560 4 v 90 5040 a Fi(4)120 5063 +y Fp(In)f(general,)j(changing)f(the)f(list)h(def)o(aults)g(described)h +(in)e(this)g(section)h(will)f(not)g(af)n(fect)h(an)o(y)f(already)i +(created)g(lists.)31 b(T)-5 b(o)20 b(mak)o(e)h(changes)h(after)f(a)g +(list)g(has)g(been)0 5142 y(created,)e(use)e(the)h(web)f(interf)o(ace)j +(or)d(the)h(command)g(line)g(scripts,)f(such)h(as)f Fa(bin/withlist)h +Fp(and)g Fa(bin/con\002g)p 2518 5142 20 4 v 25 w(list)p +Fp(.)90 5199 y Fi(5)120 5223 y Fp(Note)23 b(that)i(if)e(you')m(re)h +(upgrading)h(from)e(a)g(pre)n(vious)i(v)o(ersion)f(of)f(Mailman,)j +(you')o(ll)e(w)o(ant)g(to)g(install)h(the)f(ne)n(w)g(crontab,)i(b)o(ut) +d(be)g(careful)i(if)f(you')m(re)f(running)0 5302 y(multiple)c(Mailman)f +(installations)j(on)c(your)h(site!)j(Changing)e(the)f(crontab)h(could)f +(mess)f(with)g(other)h(parallel)i(Mailman)f(installations.)p +0 5549 3901 4 v 0 5649 a Fo(20)3254 b(9)83 b(Set)24 b(up)g(cron)p +eop end +%%Page: 21 21 +TeXDict begin 21 20 bop 416 174 a Fk(\045)44 b(cd)h($prefix/cron)416 +266 y(\045)f(crontab)g(-u)g(mailman)g(crontab.in)0 553 +y Fw(If)23 b(you)e(used)i(the)g Fr(--with-user)o(name)e +Fw(option,)h(use)h(that)g(user)f(name)g(instead)h(of)f +Fl(mailman)g Fw(for)g(the)h Fr(-u)g Fw(ar)o(gument)d(v)n(alue.)32 +b(If)23 b(your)0 652 y(crontab)c(does)h(not)g(support)e(the)j +Fr(-u)f Fw(option,)f(try)h(these)g(commands:)416 891 +y Fk(\045)44 b(cd)h($prefix/cron)416 982 y(\045)f(su)h(-)f(mailman)416 +1073 y(\045)g(crontab)g(crontab.in)0 1522 y Fx(10)120 +b(Star)5 b(t)34 b(the)g(Mailman)f(qr)r(unner)0 1755 y +Fw(Mailman)20 b(depends)f(on)i(a)g(process)f(called)h(the)f +(\223qrunner\224)e(to)j(deli)n(v)o(ery)e(all)j(email)e(messages)h(it)h +(sees.)27 b(Y)-9 b(ou)20 b(must)h(start)g(the)g(qrunner)0 +1854 y(by)f(e)o(x)o(ecuting)e(the)i(follo)n(wing)f(command)f(from)h +(the)h Fj($)p Fq(pr)m(e\002x)g Fw(directory:)416 2093 +y Fk(\045)44 b(bin/mailmanctl)f(start)0 2379 y Fw(Y)-9 +b(ou)27 b(probably)f(w)o(ant)i(to)h(start)f(Mailman)g(e)n(v)o(ery)e +(time)j(you)e(reboot)g(your)f(system.)49 b(Exactly)27 +b(ho)n(w)h(to)g(do)g(this)g(depends)f(on)h(your)0 2479 +y(operating)20 b(system.)30 b(If)21 b(your)g(OS)h(supports)f(the)g +Fr(chkcon\002g)h Fw(command)e(\(e.g.)29 b(RedHat)22 b(and)f(Mandrak)o +(e)f(Linux)o(es\))g(you)h(can)g(do)h(the)0 2578 y(follo)n(wing)d(\(as)h +(root,)f(from)h(the)g(Mailman)f(install)i(directory\):)416 +2817 y Fk(\045)44 b(cp)h(scripts/mailman)d(/etc/init.d/mailman)416 +2908 y(\045)i(chkconfig)g(--add)g(mailman)0 3194 y Fw(Note)20 +b(that)g(`)p Fv(/etc/init.d)p Fw(')e(may)h(be)h(`)p Fv +(/etc/rc.d/init.d)p Fw(')d(on)j(some)g(systems.)0 3341 +y(On)g(Gentoo)f(Linux,)g(you)h(can)g(do)f(the)h(follo)n(wing:)416 +3579 y Fk(\045)44 b(cp)h(scripts/mailman)d(/etc/init.d/mailman)416 +3671 y(\045)i(rc-update)g(add)g(mailman)g(default)0 3957 +y Fw(On)20 b(Debian,)f(you)h(probably)e(w)o(ant)i(to)g(use:)416 +4196 y Fk(\045)44 b(update-rc.d)f(mailman)h(defaults)0 +4483 y Fw(F)o(or)22 b(U)t Fp(N)t(I)t(X)r Fw(es)f(that)f(don')o(t)f +(support)g Fr(chkcon\002g)p Fw(,)h(you)f(might)h(try)g(the)g(follo)n +(wing)e(set)j(of)f(commands:)p 0 5549 3901 4 v 3808 5649 +a Fo(21)p eop end +%%Page: 22 22 +TeXDict begin 22 21 bop 416 174 a Fk(\045)44 b(cp)h(scripts/mailman)d +(/etc/init.d/mailman)416 266 y(\045)i(cp)h(misc/mailman)e(/etc/init.d) +416 357 y(\045)h(cd)h(/etc/rc.d/rc0.d)416 448 y(\045)f(ln)h(-s)f +(../init.d/mailman)e(K12mailman)416 540 y(\045)i(cd)h(../rc1.d)416 +631 y(\045)f(ln)h(-s)f(../init.d/mailman)e(K12mailman)416 +722 y(\045)i(cd)h(../rc2.d)416 814 y(\045)f(ln)h(-s)f +(../init.d/mailman)e(S98mailman)416 905 y(\045)i(cd)h(../rc3.d)416 +996 y(\045)f(ln)h(-s)f(../init.d/mailman)e(S98mailman)416 +1088 y(\045)i(cd)h(../rc4.d)416 1179 y(\045)f(ln)h(-s)f +(../init.d/mailman)e(S98mailman)416 1270 y(\045)i(cd)h(../rc5.d)416 +1362 y(\045)f(ln)h(-s)f(../init.d/mailman)e(S98mailman)416 +1453 y(\045)i(cd)h(../rc6.d)416 1544 y(\045)f(ln)h(-s)f +(../init.d/mailman)e(K12mailman)0 1993 y Fx(11)120 b(Chec)n(k)34 +b(the)h(hostname)g(settings)0 2226 y Fw(Y)-9 b(ou)27 +b(should)g(check)g(the)h(v)n(alues)f(for)g Fq(DEF)-10 +b(A)l(UL)n(T)p 1481 2226 25 4 v 30 w(EMAIL)p 1756 2226 +V 30 w(HOST)34 b Fw(and)27 b Fq(DEF)-10 b(A)l(UL)n(T)p +2525 2226 V 30 w(URL)p 2712 2226 V 30 w(HOST)34 b Fw(in)28 +b(`)p Fv(Def)n(aults)o(.p)n(y)p Fw('.)45 b(Mak)o(e)27 +b(an)o(y)0 2325 y(necessary)19 b(changes)f(in)i(the)f(`)p +Fv(mm)p 992 2325 23 4 v 27 w(cfg.p)n(y)p Fw(')g(\002le,)h +Fr(not)f Fw(in)h(the)f(`)p Fv(Def)n(aults)o(.p)n(y)p +Fw(')e(\002le.)25 b(If)19 b(you)g(change)f(either)h(of)g(these)h(tw)o +(o)g(v)n(alues,)e(you')o(ll)0 2425 y(w)o(ant)i(to)h(add)e(the)i(follo)n +(wing)d(afterw)o(ards)h(in)i(the)f(`)p Fv(mm)p 1605 2425 +V 27 w(cfg.p)n(y)p Fw(')f(\002le:)416 2663 y Fk +(add_virtualhost\(DEFAULT_URL_HOST,)39 b(DEFAULT_EMAIL_HOST\))0 +2950 y Fw(Y)-9 b(ou)20 b(will)h(w)o(ant)f(to)g(run)g(the)g +Fr(bin/\002x)p 1056 2950 25 4 v 30 w(url.py)g Fw(to)g(change)f(the)i +(domain)d(of)i(an)o(y)g(e)o(xisting)f(lists.)0 3278 y +Fx(12)120 b(Create)35 b(the)g(site)e(pass)l(w)o(ord)0 +3511 y Fw(There)20 b(are)h(tw)o(o)g(site-wide)f(passw)o(ords)h(that)g +(you)f(can)g(create)h(from)e(the)i(command)e(line,)i(using)f(the)h +Fr(bin/mmsitepass)h Fw(script.)27 b(The)0 3610 y(\002rst)c(is)f(the)g +(\223site)h(passw)o(ord\224)e(which)g(can)h(be)g(used)f(an)o(ywhere)f +(a)i(passw)o(ord)g(is)g(required)e(in)i(the)g(system.)30 +b(The)22 b(site)h(passw)o(ord)e(will)0 3710 y(get)27 +b(you)f(into)h(the)g(administration)e(page)i(for)f(an)o(y)g(list,)k +(and)c(it)i(can)f(be)g(used)g(to)g(log)f(in)i(as)f(an)o(y)g(user)-5 +b(.)45 b(Think)26 b Fl(root)h Fw(for)g(a)g(Unix)0 3809 +y(system,)20 b(so)h(pick)e(this)i(passw)o(ord)f(wisely!)0 +3956 y(The)28 b(second)e(passw)o(ord)i(is)g(a)h(site-wide)e(\223list)i +(creator\224)e(passw)o(ord.)47 b(Y)-9 b(ou)27 b(can)h(use)g(this)g(to)g +(dele)o(gate)f(the)h(ability)f(to)h(create)g(ne)n(w)0 +4056 y(mailing)22 b(lists)j(without)e(pro)o(viding)d(all)k(the)f(pri)n +(vile)o(ges)f(of)h(the)g(site)h(passw)o(ord.)33 b(Of)24 +b(course,)f(the)g(o)n(wner)f(of)h(the)g(site)h(passw)o(ord)f(can)0 +4156 y(also)e(create)e(ne)n(w)h(mailing)g(lists,)h(b)n(ut)f(the)h(list) +g(creator)e(passw)o(ord)h(is)h(limited)f(to)g(just)h(that)f(special)g +(role.)0 4302 y(T)-7 b(o)20 b(set)h(the)g(site)g(passw)o(ord,)e(use)h +(this)h(command:)416 4541 y Fk(\045)44 b($prefix/bin/mmsitepass)d +(<your-site-password>)0 4827 y Fw(T)-7 b(o)20 b(set)h(the)g(list)g +(creator)e(passw)o(ord,)g(use)i(this)f(command:)416 5065 +y Fk(\045)44 b($prefix/bin/mmsitepass)d(-c)k(<list-creator-password>)0 +5352 y Fw(It)20 b(is)i(okay)d(not)h(to)g(set)h(a)g(list)g(creator)e +(passw)o(ord,)g(b)n(ut)i(you)e(probably)f(do)h(w)o(ant)i(a)f(site)h +(passw)o(ord.)p 0 5549 3901 4 v 0 5649 a Fo(22)2718 b(12)83 +b(Create)23 b(the)h(site)f(pass)n(w)o(ord)p eop end +%%Page: 23 23 +TeXDict begin 23 22 bop 0 88 a Fx(13)120 b(Create)35 +b(y)n(our)f(\002rst)f(mailing)g(list)0 321 y Fw(F)o(or)17 +b(more)g(detailed)h(information)d(about)i(using)g(Mailman,)g(including) +f(creating)h(and)g(con\002guring)f(mailing)h(lists,)i(see)f(the)g +(Mailman)0 421 y(List)26 b(Adminstration)e(Manual.)41 +b(These)26 b(instructions)e(pro)o(vide)g(a)i(quick)f(guide)g(to)h +(creating)e(your)h(\002rst)h(mailing)f(list)i(via)f(the)g(web)0 +520 y(interf)o(ace:)125 748 y Fd(\017)41 b Fw(Start)20 +b(by)g(visiting)g(the)g(url)g Fl(http://my.dom.ain/mailman/create)p +Fw(.)125 913 y Fd(\017)41 b Fw(Fill)23 b(out)g(the)g(form)f(as)h +(described)f(in)h(the)g(on-screen)e(instructions,)h(and)h(in)g(the)g +(\223List)g(creator')-5 b(s)23 b(passw)o(ord\224)f(\002eld,)h(type)g +(the)208 1013 y(passw)o(ord)d(you)h(entered)f(in)h(section)h(7.)28 +b(T)-7 b(ype)21 b(your)f(o)n(wn)h(email)g(address)g(for)g(the)g +(\223Initial)h(list)g(o)n(wner)e(address\224,)h(and)g(select)208 +1113 y(\223Y)-8 b(es\224)20 b(to)g(notify)f(the)h(list)i(administrator) +-5 b(.)125 1278 y Fd(\017)41 b Fw(Click)20 b(on)g(the)g(\223Create)h +(List\224)f(b)n(utton.)125 1443 y Fd(\017)41 b Fw(Check)19 +b(your)g(email)i(for)e(a)i(message)f(from)f(Mailman)g(informing)f(you)i +(that)g(your)f(ne)n(w)h(mailing)f(list)j(w)o(as)f(created.)125 +1609 y Fd(\017)41 b Fw(No)n(w)g(visit)h(the)g(list')-5 +b(s)42 b(administration)e(page,)46 b(either)41 b(by)g(follo)n(wing)f +(the)i(link)f(on)g(the)g(con\002rmation)f(web)h(page)g(or)208 +1708 y(clicking)g(on)h(the)h(link)f(from)g(the)g(email)h(Mailman)f +(just)h(sent)g(you.)91 b(T)-7 b(ypically)42 b(the)g(url)g(will)i(be)e +(something)f(lik)o(e)208 1808 y Fl(http://my.dom.ain/mailman/admin/m)o +(ylist)o Fw(.)125 1973 y Fd(\017)g Fw(T)-7 b(ype)19 b(in)i(the)f(list') +-5 b(s)21 b(passw)o(ord)f(and)g(click)g(on)g(\223Let)g(me)g(in...)-6 +b(\224)125 2138 y Fd(\017)41 b Fw(Click)20 b(on)g(\223Membership)e +(Management\224)g(and)i(then)g(on)f(\223Mass)i(Subscription\224.)125 +2304 y Fd(\017)41 b Fw(Enter)19 b(your)g(email)h(address)g(in)g(the)h +(big)e(te)o(xt)h(\002eld,)h(and)e(click)h(on)g(\223Submit)g(Y)-9 +b(our)19 b(Changes\224.)125 2469 y Fd(\017)41 b Fw(No)n(w)20 +b(go)g(to)h(your)e(email)i(and)f(send)g(a)h(message)g(to)g +Fl(mylist@my.dom.ain)p Fw(.)i(W)m(ithin)e(a)g(minute)e(or)i(tw)o(o)g +(you)e(should)h(see)208 2569 y(your)e(message)j(re\003ected)e(back)h +(to)g(you)f(via)h(Mailman.)0 2797 y(Congratulations!)i(Y)-9 +b(ou')l(v)o(e)17 b(just)i(set)g(up)f(and)g(tested)h(your)f(\002rst)h +(Mailman)f(mailing)g(list.)25 b(If)18 b(you)g(had)g(an)o(y)g(problems)f +(along)h(the)g(w)o(ay)-5 b(,)0 2896 y(please)20 b(see)h(the)f(14)g +(section.)0 3223 y Fx(14)120 b(T)-14 b(roub)n(leshooting)0 +3456 y Fw(If)20 b(you)g(encounter)e(problems)h(with)h(running)f +(Mailman,)g(\002rst)i(check)f(the)g(question)g(and)f(answer)h(section)h +(belo)n(w)-5 b(.)24 b(If)c(your)f(problem)0 3556 y(is)i(not)f(co)o(v)o +(ered)e(there,)h(check)h(the)g(online)f(help,)h(including)e(the)i(F)-6 +b(A)h(Q)22 b(and)d(the)h(interacti)n(v)o(e)f(F)-6 b(A)h(Q)21 +b(wizard.)0 3703 y(Also)26 b(check)f(for)f(errors)h(in)h(your)e(syslog) +h(\002les,)j(your)c(mail)i(and)f(web)g(serv)o(er)g(log)g(\002les)h(and) +f(in)h(Mailman')-5 b(s)25 b(`)p Fj($)p Fq(pr)m(e\002x)p +Fo(/logs/error)p Fw(')0 3802 y(\002le.)37 b(If)24 b(you')l(re)e(still)k +(ha)n(ving)d(problems,)g(you)g(should)g(send)h(a)h(message)f(to)g(the)g +Fv(mailman-users@p)n(ython.org)19 b Fw(mailing)24 b(list)3711 +3772 y Fm(6)3744 3802 y Fw(;)j(see)0 3902 y Fv(http://mail.p)n +(ython.org)o(/mail)o(man/)o(li)o(stinf)m(o/ma)o(ilma)o(n-u)o(sers)15 +b Fw(for)20 b(more)f(information.)0 4049 y(Be)j(sure)f(to)g(including)f +(information)e(on)j(your)f(operating)f(system,)j(which)e(v)o(ersion)g +(of)h(Python)f(you')l(re)f(using,)i(and)f(which)h(v)o(ersion)0 +4149 y(of)f(Mailman)f(you')l(re)g(installing.)0 4295 +y(Here)h(is)h(a)g(list)g(of)f(some)g(common)e(questions)i(and)f +(answers:)125 4523 y Fd(\017)41 b Fr(Pr)o(oblem:)24 b +Fw(All)d(Mailman)e(web)h(pages)g(gi)n(v)o(e)f(a)i(404)e(File)i(not)f +(found)f(error)-5 b(.)208 4656 y Fr(Solution:)25 b Fw(Y)-9 +b(our)19 b(web)h(serv)o(er)g(has)h(not)f(been)f(set)j(up)e(properly)e +(for)i(handling)e(Mailman')-5 b(s)20 b(CGI)h(programs.)j(Mak)o(e)c +(sure)g(you)208 4755 y(ha)n(v)o(e:)286 4937 y(1.)41 b(con\002gured)18 +b(the)i(web)g(serv)o(er)g(to)g(gi)n(v)o(e)f(permissions)h(to)g(`)p +Fj($)p Fq(pr)m(e\002x)p Fo(/cgi-bin)p Fw(')286 5069 y(2.)41 +b(restarted)20 b(the)g(web)g(serv)o(er)f(properly)-5 +b(.)208 5251 y(Consult)20 b(your)f(web)h(serv)o(er')-5 +b(s)19 b(documentation)f(for)h(instructions)g(on)h(ho)n(w)g(to)g(do)g +(check)f(these)i(issues.)p 0 5321 1560 4 v 90 5377 a +Fi(6)120 5400 y Fp(Y)-7 b(ou)16 b(must)h(subscribe)h(to)g(this)f +(mailing)i(list)f(in)f(order)h(to)f(post)g(to)h(it,)f(b)o(ut)g(the)h +(mailing)g(list')l(s)g(archi)n(v)o(es)i(are)d(publicly)j(visible.)p +0 5549 3901 4 v 3808 5649 a Fo(23)p eop end +%%Page: 24 24 +TeXDict begin 24 23 bop 125 83 a Fd(\017)41 b Fr(Pr)o(oblem:)24 +b Fw(All)d(Mailman)e(web)h(pages)g(gi)n(v)o(e)f(an)i(\224Internal)d +(Serv)o(er)i(Error\224.)208 216 y Fr(Solution:)j Fw(The)c(lik)o(ely)f +(problem)f(is)i(that)g(you)e(are)i(using)f(the)g(wrong)g(user)g(or)g +(group)f(for)h(the)g(CGI)i(scripts.)k(Check)18 b(your)g(web)208 +315 y(serv)o(er')-5 b(s)19 b(log)h(\002les.)26 b(If)20 +b(you)f(see)i(a)g(line)f(lik)o(e)982 540 y Fk(Attempt)43 +b(to)i(exec)f(script)g(with)g(invalid)g(gid)g(51,)g(expected)g(99)208 +903 y Fw(you)19 b(will)i(need)e(to)i(reinstall)f(Mailman,)f(specifying) +g(the)h(proper)e(CGI)j(group)e(id,)h(as)h(described)e(in)h(the)g +(section.)125 1069 y Fd(\017)41 b Fr(Pr)o(oblem:)24 b +Fw(I)c(send)g(mail)h(to)f(the)g(list,)h(and)f(get)g(back)f(mail)i +(saying)e(the)i(list)g(is)g(not)f(found!)208 1202 y Fr(Solution:)37 +b Fw(Y)-9 b(ou)27 b(probably)d(didn')o(t)h(add)i(the)f(necessary)g +(aliases)i(to)f(the)g(system)g(alias)g(database,)h(or)f(you)f(didn')o +(t)f(properly)208 1302 y(inte)o(grate)19 b(Mailman)i(with)g(your)f +(mail)h(serv)o(er)-5 b(.)27 b(Perhaps)21 b(you)f(didn')o(t)f(update)h +(the)h(alias)h(database,)f(or)g(your)e(system)j(requires)208 +1402 y(you)d(to)h(run)g Fr(newaliases)g Fw(e)o(xplicitly)-5 +b(.)23 b(Refer)e(to)f(your)f(serv)o(er)g(speci\002c)i(instructions)e +(in)h(the)g(6)h(section.)125 1568 y Fd(\017)41 b Fr(Pr)o(oblem:)24 +b Fw(I)c(send)g(mail)h(to)f(the)g(list,)h(and)f(get)g(back)f(mail)i +(saying,)e(\223unkno)n(wn)f(mailer)i(error\224.)208 1700 +y Fr(Solution:)35 b Fw(The)26 b(lik)o(ely)g(problem)e(is)i(that)g(you)f +(are)h(using)f(the)h(wrong)e(user)i(or)f(group)f(id)i(for)g(the)f(mail) +h(wrappers.)41 b(Check)208 1800 y(your)18 b(mail)j(serv)o(er')-5 +b(s)20 b(log)f(\002les;)j(if)e(you)f(see)i(a)g(line)f(lik)o(e)982 +2024 y Fk(Attempt)43 b(to)i(exec)f(script)g(with)g(invalid)g(gid)g(51,) +g(expected)g(99)208 2388 y Fw(you)19 b(will)i(need)e(to)i(reinstall)f +(Mailman,)f(specifying)g(the)h(proper)e(mail)j(group)d(id)j(as)g +(described)d(in)j(the)f(section.)125 2554 y Fd(\017)41 +b Fr(Pr)o(oblem:)g Fw(I)28 b(use)h(Post\002x)g(as)g(my)f(mail)h(serv)o +(er)f(and)g(the)h(mail)f(wrapper)f(programs)g(are)i(logging)d +(complaints)i(about)g(the)208 2654 y(wrong)18 b(GID.)208 +2787 y Fr(Solution:)40 b Fw(Mak)o(e)27 b(sure)h(the)g(`)p +Fj($)p Fq(pr)m(e\002x)p Fo(/data/aliases)o(.db)p Fw(')g(\002le)h(is)f +(user)g(o)n(wned)f(by)g Fl(mailman)h Fw(\(or)f(whate)n(v)o(er)f(user)i +(name)208 2886 y(you)21 b(used)h(in)g(the)g Fr(con\002gur)o(e)g +Fw(command\).)28 b(If)22 b(this)h(\002le)g(is)g(not)f(user)g(o)n(wned)f +(by)h Fl(mailman)p Fw(,)f(Post\002x)i(will)g(not)f(run)f(the)h(mail)208 +2986 y(programs)c(as)j(the)f(correct)f(user)-5 b(.)125 +3152 y Fd(\017)41 b Fr(Pr)o(oblem:)h Fw(I)29 b(use)h(Sendmail)f(as)h +(my)f(mail)g(serv)o(er)m(,)h(and)f(when)g(I)g(send)g(mail)h(to)f(the)g +(list,)k(I)c(get)h(back)e(mail)i(saying,)g(\223sh:)208 +3251 y(mailman)19 b(not)h(a)n(v)n(ailable)f(for)h(sendmail)g +(programs\224.)208 3384 y Fr(Solution:)33 b Fw(Y)-9 b(our)24 +b(system)g(uses)h(the)g(Sendmail)f(restricted)g(shell)h(\(smrsh\).)37 +b(Y)-9 b(ou)24 b(need)g(to)g(con\002gure)f(smrsh)h(by)h(creating)e(a) +208 3484 y(symbolic)c(link)h(from)f(the)h(mail)h(wrapper)e(\(`)p +Fj($)p Fq(pr)m(e\002x)p Fo(/mail/mailman)p Fw('\))i(to)f(the)h +(directory)d(identifying)h(e)o(x)o(ecutables)f(allo)n(wed)208 +3584 y(to)i(run)f(under)g(smrsh.)208 3716 y(Some)g(common)g(names)h +(for)f(this)i(directory)d(are)j(`)p Fv(/v)n(ar/admin/sm.bin)p +Fw(',)16 b(`)p Fv(/usr/admin/sm.bin)p Fw(')h(or)j(`)p +Fv(/etc/smrsh)p Fw('.)208 3849 y(Note)29 b(that)h(on)f(Debian)g(Linux,) +h(the)g(system)f(mak)o(es)h(`)p Fv(/usr/lib/sm.bin)p +Fw(',)e(which)h(is)i(wrong,)f(you)f(will)h(need)f(to)g(create)h(the)208 +3949 y(directory)20 b(`)p Fv(/usr/admin/sm.bin)p Fw(')g(and)i(add)g +(the)g(link)h(there.)32 b(Note)22 b(further)f(an)o(y)h(aliases)i +Fr(newaliases)e Fw(spits)i(out)e(will)h(need)f(to)208 +4048 y(be)e(adjusted)f(to)h(point)g(to)g(the)g(secure)g(link)g(to)h +(the)f(wrapper)-5 b(.)125 4215 y Fd(\017)41 b Fr(Pr)o(oblem:)24 +b Fw(I)c(messed)g(up)g(when)g(I)g(called)g Fr(con\002gur)o(e)p +Fw(.)k(Ho)n(w)c(do)g(I)g(clean)g(things)g(up)g(and)g(re-install?)208 +4347 y Fr(Solution:)802 4480 y Fk(\045)45 b(make)f(clean)802 +4572 y(\045)h(./configure)e(--with-the-right-options)802 +4663 y(\045)i(make)f(install)p 0 5549 3901 4 v 0 5649 +a Fo(24)3049 b(14)83 b(T)-10 b(roub)n(leshooting)p eop +end +%%Page: 25 25 +TeXDict begin 25 24 bop 0 87 a Fx(15)120 b(Platf)l(or)s(m)34 +b(and)h(oper)o(ating)g(system)e(notes)0 320 y Fw(Generally)-5 +b(,)30 b(Mailman)f(runs)h(on)f(an)o(y)g(POSIX-based)g(system,)j(such)d +(as)h(Solaris,)j(the)c(v)n(arious)g(BSD)i(v)n(ariants,)g(Linux)d +(systems,)0 420 y(MacOSX,)d(and)g(other)f(generic)j(U)t +Fp(N)t(I)t(X)h Fw(systems.)41 b(It)25 b(doesn')o(t)f(run)h(on)g(W)m +(indo)n(ws.)39 b(F)o(or)25 b(the)h(most)f(part,)h(the)f(generic)g +(instructions)0 519 y(gi)n(v)o(en)k(in)i(this)f(document)f(should)g(be) +h(suf)n(\002cient)g(to)h(get)f(Mailman)g(w)o(orking)f(on)h(an)o(y)f +(supported)f(platform.)54 b(Some)30 b(operating)0 619 +y(systems)21 b(ha)n(v)o(e)e(additional)g(recommended)e(installation)j +(or)g(con\002guration)d(instructions.)0 904 y Fn(15.1)100 +b(GNU/Lin)o(ux)28 b(issues)0 1107 y Fw(Linux)18 b(seems)i(to)g(be)f +(the)h(most)f(popular)f(platform)g(for)h(running)e(Mailman.)24 +b(Here)c(are)f(some)g(hints)h(on)f(getting)g(Mailman)g(to)g(run)g(on)0 +1206 y(Linux:)125 1436 y Fd(\017)41 b Fw(If)f(you)f(are)h(getting)f +(errors)g(with)i(hard)e(link)h(creations)f(and/or)g(you)g(are)h(using)g +(a)g(special)h(secure)e(k)o(ernel)h(\(secure-)208 1536 +y(linux/openw)o(all/grsecurity\),)23 b(see)28 b(the)f(\002le)g(`)p +Fv(contr)q(ib/README.chec)o(k)p 2348 1536 23 4 v 24 w(per)r(ms)p +2582 1536 V 26 w(g)o(rsecur)q(ity)p Fw(')f(in)h(the)g(Mailman)f(source) +g(dis-)208 1636 y(trib)n(ution.)208 1768 y(Note)20 b(that)g(if)g(you)g +(are)g(using)g(Linux)f(Mandrak)o(e)f(in)i(secure)g(mode,)f(you)h(are)g +(probably)e(concerned)f(by)j(this.)125 1934 y Fd(\017)41 +b Fw(Apparently)16 b(Mandrak)o(e)i(9.0)g(changed)f(the)h(permissions)g +(on)h(gcc,)f(so)i(if)f(you)f(b)n(uild)g(as)h(the)g Fl(mailman)f +Fw(user)m(,)h(you)f(need)g(to)h(be)208 2034 y(sure)h +Fl(mailman)f Fw(is)i(in)g(the)f Fl(cctools)f Fw(group.)125 +2200 y Fd(\017)41 b Fw(If)19 b(you)g(installed)g(Python)f(from)h(your)f +(Linux)h(distrib)n(ution')-5 b(s)18 b(package)h(manager)f(\(e.g.)24 +b(.rpms)19 b(for)f(Redhat-deri)n(v)o(ed)f(systems)208 +2300 y(or)j(.deb)h(for)f(Debian\),)g(you)g(must)h(install)h(the)f +(\223de)n(v)o(elopment\224)d(package)i(of)h(Python,)f(or)g(you)h(may)f +(not)h(get)g(e)n(v)o(erything)d(you)208 2399 y(need.)208 +2532 y(F)o(or)h(e)o(xample,)g(using)h(Python)f(2.2)g(on)h(Debian,)g +(you)f(will)i(need)e(to)i(install)g(the)f Fl(python2.2-dev)e +Fw(package.)24 b(On)c(Redhat,)208 2632 y(you)f(probably)f(need)h(the)h +Fl(python2-devel)f Fw(package.)208 2765 y(If)h(you)f(install)i(Python)e +(from)g(source,)g(you)g(should)g(be)i(\002ne.)208 2898 +y(One)f(symptom)f(of)h(this)h(problem,)d(although)g(for)i(unkno)n(wn)e +(reasons,)i(is)h(that)f(you)g(might)f(get)i(an)f(error)f(such)h(as)h +(this)g(during)208 2997 y(your)d(install:)892 3221 y +Fk(Traceback)43 b(\(most)h(recent)g(call)g(last\):)982 +3313 y(File)g("bin/update",)f(line)h(44,)g(in)h(?)1071 +3404 y(import)f(paths)892 3495 y(ImportError:)f(No)h(module)g(named)g +(paths)892 3587 y(make:)1161 3600 y(***)1340 3587 y([update])g(Error)g +(1)208 3951 y Fw(If)24 b(this)i(happens,)e(install)i(the)f(Python)f(de) +n(v)o(elopment)e(package)h(and)i(try)f Fr(con\002gur)o(e)h +Fw(and)f Fr(mak)o(e)h(install)h Fw(again.)38 b(Or)25 +b(install)208 4051 y(the)20 b(latest)h(v)o(ersion)e(of)h(Python)f(from) +g(source,)g(a)n(v)n(ailable)h(from)f Fv(http://www)l(.p)n(ython.org)-6 +b Fw(.)208 4183 y(This)25 b(problem)f(can)h(manifest)g(itself)h(in)f +(other)g(Linux)f(distrib)n(utions)g(in)i(dif)n(ferent)d(w)o(ays,)k +(although)d(usually)g(it)i(appears)f(as)208 4283 y Fl(ImportErrors)p +Fw(.)0 4568 y Fn(15.2)100 b(BSD)29 b(issues)0 4771 y +Fw(V)-5 b(i)n(v)o(ek)26 b(Khera)h(writes)h(that)f(some)h(BSDs)g(do)f +(nightly)f(security)h(scans)h(for)e(setuid)i(\002le)g(changes.)45 +b(setgid)27 b(directories)g(also)g(come)0 4871 y(up)c(on)g(the)h(scan)g +(when)f(the)o(y)f(change.)34 b(Also,)25 b(the)e(setgid)h(bit)g(is)g +(not)f(necessary)g(on)g(BSD)i(systems)f(because)f(group)f(o)n(wnership) +g(is)0 4970 y(automatically)d(inherited)h(on)g(\002les)h(created)f(in)h +(directories.)k(On)c(other)h(U)t Fp(N)t(I)t(X)r Fw(es,)g(this)f(only)f +(happens)f(when)h(the)h(directory)e(has)i(the)0 5070 +y(setgid)f(bit)h(turned)d(on.)0 5217 y(T)-7 b(o)29 b(install)h(without) +e(turning)g(on)g(the)i(setgid)f(bit)g(on)g(directories,)h(simply)e +(pass)i(in)f(the)g Fq(DIRSETGID)f Fw(v)n(ariable)g(to)h +Fr(mak)o(e)p Fw(,)j(after)0 5316 y(you')l(v)o(e)18 b(run)h +Fr(con\002gur)o(e)p Fw(:)p 0 5549 3901 4 v 3808 5649 +a Fo(25)p eop end +%%Page: 26 26 +TeXDict begin 26 25 bop 416 174 a Fk(\045)44 b(make)g(DIRSETGID=:)f +(install)0 461 y Fw(This)20 b(disables)h(the)f Fr(chmod)g(g+s)h +Fw(command)e(on)g(installed)h(directories.)0 745 y Fn(15.3)100 +b(MacOSX)29 b(issues)0 948 y Fw(Man)o(y)22 b(people)g(run)h(Mailman)g +(on)g(MacOSX.)g(Here)g(are)g(some)g(pointers)g(that)g(ha)n(v)o(e)g +(been)f(collected)h(on)g(getting)f(Mailman)h(to)g(run)0 +1047 y(on)d(MacOSX.)125 1271 y Fd(\017)41 b Fw(Jaguar)17 +b(\(MacOSX)i(10.2\))e(comes)i(with)f(Python)g(2.2.)24 +b(While)19 b(this)g(isn')o(t)f(the)h(v)o(ery)f(latest)h(stable)g(v)o +(ersion)e(of)i(Python,)e(it)j(ought)208 1370 y(to)g(be)g(suf)n +(\002cient)g(to)g(run)f(Mailman)h(2.1.)125 1534 y Fd(\017)41 +b Fw(Da)n(vid)24 b(B.)i(O'Donnell)e(has)h(a)g(web)g(page)f(describing)g +(his)h(con\002guration)d(of)j(Mailman)f(2.0.13)f(and)i(Post\002x)g(on)f +(MacOSX)208 1633 y(Serv)o(er)-5 b(.)208 1765 y Fv(http://www)l +(.afp548.com/Ar)s(t)o(icle)o(s/mail)o(/p)n(yth)o(on)o(-mail)o(man)o +(.html)125 1928 y Fd(\017)41 b Fw(Kathleen)19 b(W)-7 +b(ebb)20 b(posted)g(her)g(e)o(xperiences)e(in)i(getting)g(Mailman)f +(running)f(on)i(Jaguar)g(using)f(Sendmail.)208 2060 y +Fv(http://mail.p)n(ython.or)o(g/p)o(ip)o(er)r(mai)o(l/ma)o(il)o(man-u)o +(sers/20)o(02)o(-Octobe)o(r/0)o(22)o(94)o(4.h)o(tml)125 +2224 y Fd(\017)41 b Fw(P)o(anther)17 b(serv)o(er)h(\(MacOSX)h(10.3\))e +(comes)i(with)g(Mailman;)f(Y)-9 b(our)18 b(operating)f(system)i(should) +f(contain)g(documentation)d(that)208 2323 y(will)22 b(help)g(you,)f +(and)h(Apple)f(has)h(a)h(tech)f(document)e(about)h(a)h(problem)e(you)h +(might)h(encounter)e(running)g(Mailman)h(on)g(Mac)208 +2423 y(OS)f(X)h(Serv)o(er)e(10.3:)208 2554 y Fv(http://docs)o(.inf)n(o) +m(.appl)o(e)o(.)o(com/ar)s(t)o(icle)n(.html)o(?a)o(r)s(tn)o(u)o(m=10)o +(78)o(89)0 2778 y Fw(T)-6 b(erry)27 b(Allen)h(pro)o(vides)e(the)h +(follo)n(wing)g(detailed)g(instructions)g(on)g(running)f(Mailman)h(on)g +(the)h('client')f(v)o(ersion)f(of)i(OSX,)g(or)f(in)0 +2878 y(earlier)20 b(v)o(ersions)f(of)h(OSX:)0 3024 y(Mac)26 +b(OSX)h(10.3)e(and)h(onw)o(ards)f(has)i(the)f(basics)g(for)g(a)h +(successful)f(Mailman)f(installation.)43 b(Users)27 b(of)e(earlier)h(v) +o(ersions)g(of)f(Mac)0 3124 y(OSX)f(contains)f(Sendmail)g(and)g(those)g +(users)h(should)f(look)f(at)i(the)g(Sendmail)f(installation)g(section)g +(for)g(tips.)36 b(Y)-9 b(ou)23 b(should)f(follo)n(w)0 +3224 y(the)27 b(basic)f(installation)g(steps)i(as)f(described)e +(earlier)h(in)h(this)g(manual,)g(substituting)f(as)h(appropriate,)e +(the)i(steps)g(outlined)e(in)i(this)0 3323 y(section.)0 +3470 y(By)d(def)o(ault,)g(Mac)g(OSX)g(10.3)e('client')h(v)o(ersion)g +(does)g(not)h(ha)n(v)o(e)f(a)h(fully)f(functional)f(v)o(ersion)g(of)i +(Post\002x.)35 b(Setting)24 b(up)f(a)h(w)o(orking)0 3570 +y(MT)-8 b(A)19 b(such)f(as)h(Post\002x)g(is)h(be)o(yond)c(the)i(scope)g +(of)h(this)g(guide)e(and)h(you)g(should)f(refer)h(to)h +Fv(http://www)l(.post\002x.org)14 b Fw(for)k(tips)h(on)f(getting)0 +3669 y(Post\002x)k(running.)k(An)21 b(easy)g(w)o(ay)h(to)f(set)h +(Post\002x)g(up)f(is)h(to)g(install)f(and)g(run)g(Post\002x)g(Enabler)m +(,)f(a)i(stand-alone)d(tool)j(for)e(con\002guring)0 3769 +y(Post\002x)g(on)g(Mac)h(OSX,)f(a)n(v)n(ailable)g(from)f +Fv(http://www)l(.roadstead.com/w)o(eb)n(l)o(og)o(/T)-9 +b(u)o(tor)q(i)o(als/P)k(ost\002xEnab)n(le)o(r)l(.ht)o(ml)f +Fw(.)0 3916 y(Lik)o(e)n(wise,)25 b(Mac)g(OSX)g('client')e(v)o(ersion)h +(from)f(10.1)g(onw)o(ards)h(includes)f(a)i(w)o(orking)e(Apache)g +(webserv)o(er)-5 b(.)37 b(This)25 b(is)g(switched)f(on)0 +4016 y(using)c(the)h(System)g(Preferences)e(control)h(panel)g(under)f +(the)i('Sharing)e(tab'.)26 b(A)21 b(useful)f(tool)h(for)f +(con\002guring)e(the)i(Apache)g(on)g(Mac)0 4115 y(OSX)h(is)g(W)-7 +b(ebmin,)20 b(which)f(can)h(be)g(obtained)f(from)g Fv(http://www)l(.w)o +(ebmin.com)l Fw(.)0 4262 y(W)-7 b(ebmin)20 b(can)g(also)h(perform)d +(con\002guration)g(for)i(other)f(system)i(tasks,)g(including)d +(Post\002x,)j(adding)d(jobs)j(to)f(your)f(crontab,)g(adding)0 +4362 y(user)h(and)g(groups,)e(plus)i(adding)f(startup)h(and)f(shutdo)n +(wn)g(jobs.)0 4509 y(In)26 b(a)g(stock)g(installation)g(of)f(OSX,)i +(the)f(requirement)e(for)h(Mailman)h(is)h(to)f(ha)n(v)o(e)f(Python)g +(installed.)42 b(Python)25 b(is)i(not)f(installed)g(by)0 +4608 y(def)o(ault,)17 b(so)g(it)g(is)h(advised)e(that)h(you)f(install)h +(the)g(de)n(v)o(eloper')-5 b(s)15 b(tools)i(package,)f(which)g(may)g +(ha)n(v)o(e)h(been)f(pro)o(vided)e(with)j(your)f(system.)0 +4708 y(It)23 b(can)f(also)h(be)g(do)n(wnloaded)d(from)i(the)g(Apple)g +(de)n(v)o(eloper)f(site)i(at)g Fv(http://connect.apple)o(.com)-6 +b Fw(.)33 b(Not)23 b(only)f(is)i(the)e(de)n(v)o(eloper)f(tools)0 +4807 y(package)k(an)i(essential)h(requirement)c(for)j(installing)f +(Mailman,)i(b)n(ut)f(it)g(will)h(come)e(in)h(handy)f(at)h(a)h(later)f +(date)f(should)g(you)g(need)0 4907 y(other)19 b(tools.)25 +b(The)20 b(de)n(v)o(eloper')-5 b(s)18 b(tools)j(are)f(also)g(kno)n(w)f +(by)h(the)g(name)g(XCode)g(tools.)0 5054 y(As)h(a)g(minimum,)d(the)i +(Python)f(v)o(ersion)g(should)g(be)i(2.2,)e(b)n(ut)h(2.3)g(is)h +(recommended.)0 5201 y(If)f(you)g(wish)h(to)g(add)f(a)h(user)f(and)g +(group)f(using)h(the)h(command)d(line)j(in)g(OSX)g(instead)f(of)h(via)f +(W)-7 b(ebmin)21 b(or)f(another)f(GUI)i(interf)o(ace,)0 +5300 y(open)d(your)f(terminal)h(application)f(and)h(follo)n(w)g(the)h +(commands)e(as)i(indicated)f(belo)n(w)g(-)h(do)f(not)g(type)g(the)h +(comments)f(follo)n(wing)f(the)0 5400 y(`)p Fl(#)p Fw(')j(since)g(the)o +(y)g(are)g(just)h(notes:)p 0 5549 3901 4 v 0 5649 a Fo(26)2282 +b(15)83 b(Platf)n(or)r(m)24 b(and)g(oper)o(ating)g(system)e(notes)p +eop end +%%Page: 27 27 +TeXDict begin 27 26 bop 236 174 a Fk(sudo)44 b(tcsh)236 +266 y(niutil)g(-create)g(/)g(/users/mailman)236 357 y(niutil)g +(-createprop)f(/)i(/users/mailman)d(name)i(mailman)236 +448 y(#)h(Note)f(that)g(xxx)h(is)f(a)h(free)f(user)g(ID)h(number)e(on)i +(your)f(system)236 540 y(niutil)g(-createprop)f(/)i(/users/mailman)d +(uid)i(xxx)236 631 y(niutil)g(-createprop)f(/)i(/users/mailman)d(home)i +(/usr/local/mailman)236 722 y(mkdir)g(-p)h(/usr/local/mailman)236 +814 y(niutil)f(-createprop)f(/)i(/users/mailman)d(shell)i(/bin/tcsh)236 +905 y(passwd)g(mailman)236 996 y(#)h(To)f(prevent)g(malicious)f +(hacking,)h(supply)g(a)g(secure)g(password)g(here)236 +1088 y(niutil)g(-create)g(/)g(/groups/mailman)236 1179 +y(niutil)g(-createprop)f(/)i(/groups/mailman)d(name)i(mailman)236 +1270 y(#)h(Note)f(that)g(xxx)h(is)f(a)h(free)f(group)g(ID)g(number)g +(on)h(your)f(system)236 1362 y(niutil)g(-createprop)f(/)i +(/groups/mailman)d(gid)i(xxx)236 1453 y(niutil)g(-createprop)f(/)i +(/groups/mailman)d(passwd)i(')2254 1466 y(*)2299 1453 +y(')236 1544 y(niutil)g(-createprop)f(/)i(/groups/mailman)d(users)i +('mailman')236 1636 y(chown)g(mailman:mailman)f(/usr/local/mailman)236 +1727 y(cd)i(/usr/local/mailman)236 1818 y(chmod)f(a+rx,g+ws)g(.)236 +1910 y(exit)236 2001 y(su)h(mailman)0 2287 y Fw(F)o(or)21 +b(setting)g(up)f(Apache)g(on)h(OSX)g(to)g(handle)f(Mailman,)h(the)g +(steps)g(are)g(almost)g(identical)f(and)h(the)g(con\002guration)d +(\002le)k(on)e(a)i(stock)0 2387 y(Mac)e(OSX)h(Client)g(v)o(ersion)e(is) +i(stored)f(in)g(the)g(nearly)f(standard)g(location)h(of)g(`)p +Fv(/etc/httpd/httpd.conf)o Fw('.)0 2534 y(The)40 b(AFP548.com)e(site)k +(has)e(a)h(time-sa)n(ving)e(automated)g(startup)h(item)h(creator)e(for) +h(Mailman,)k(which)c(can)g(be)g(found)f(at)0 2633 y Fv(http://www)l +(.afp548.com/Sof)o(tw)o(ar)o(e/Mai)o(lma)o(nSta)o(r)s(tu)o(p)m(.ta)o(r) +l(.gz)0 2780 y Fw(T)-7 b(o)23 b(install)g(it,)h(cop)o(y)d(it)j(into)e +(your)f(`)p Fv(/Libr)o(ar)r(y/Star)s(tupItems)p Fw(')e(directory)-5 +b(.)30 b(As)23 b(the)g(root)e(or)i(superuser)m(,)e(from)h(the)g +(terminal,)g(enter)h(the)0 2880 y(follo)n(wing:)236 3118 +y Fk(gunzip)44 b(MailmanStartup.tar.gz)236 3209 y(tar)h(xvf)f +(MailmanStartup.tar)0 3496 y Fw(It)20 b(will)h(create)f(the)h(startup)e +(item)i(for)e(you)g(so)i(that)f(when)g(you)f(reboot,)g(Mailman)g(will)i +(start)g(up.)p 0 5549 3901 4 v 0 5649 a Fo(15.3)84 b(MacOSX)23 +b(issues)2972 b(27)p eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/doc/mailman-install.tex b/doc/mailman-install.tex deleted file mode 100644 index efc9a5e3..00000000 --- a/doc/mailman-install.tex +++ /dev/null @@ -1,1808 +0,0 @@ -\documentclass{howto} - -\title{GNU Mailman - Installation Manual} -\author{Barry Warsaw} -\authoraddress{\email{barry (at) list dot org}} - -\date{\today} -\release{2.1} % software release, not documentation -\setreleaseinfo{} % empty for final release -\setshortversion{2.1} % major.minor only for software - -\begin{document} - -\maketitle - -% This makes the Abstract go on a separate page in the HTML version; -% if a copyright notice is used, it should go immediately after this. -% -\ifhtml -\chapter*{Front Matter\label{front}} -\fi - -\begin{abstract} -\noindent -This document describes how to install GNU Mailman on a POSIX-based system -such as \UNIX{}, MacOSX, or GNU/Linux. It will cover basic installation -instructions, as well as guidelines for integrating Mailman with your web and -mail servers. - -\noindent -The GNU Mailman website is at \url{http://www.list.org} -\end{abstract} - -% The ugly "%begin{latexonly}" pseudo-environment supresses the table -% of contents for HTML generation. -% -%begin{latexonly} -\tableofcontents -%end{latexonly} - - -\section{Installation Requirements} - -\emph{Please note that the information on this page may be out of date.} -Check for the -\ulink{latest installation information}{http://wiki.list.org/x/bAM} on the -\ulink{Mailman wiki}{http://wiki.list.org}. - -GNU Mailman works on most POSIX-based systems such as \UNIX{}, MacOSX, or -GNU/Linux. It does not currently work on Windows. You must have a mail -server that you can send messages to, and a web server that supports the -CGI/1.1 API. \ulink{Apache}{http://httpd.apache.org} makes a fine choice for -web server, and mail servers such as -\ulink{Postfix}{http://www.postfix.org}, -\ulink{Exim}{http://www.exim.org}, -\ulink{Sendmail}{http://www.sendmail.org}, and -\ulink{qmail}{http://cr.yp.to/qmail.html} should -work just fine. - -To install Mailman from source, you will need an ANSI C compiler to build -Mailman's security wrappers. The -\ulink{GNU C compiler gcc}{http://gcc.gnu.org} works well. - -You must have the \ulink{Python}{http://www.python.org} interpreter installed -somewhere on your system. As of this writing, Python 2.4.4 is recommended, -but see the wiki page above for the latest information. - -\section{Set up your system} - -Before installing Mailman, you need to prepare your system by adding certain -users and groups. You will need to have root privileges to perform the steps -in this section. - -\subsection{Add the group and user} - -Mailman requires a unique user and group name which will own its files, and -under which its processes will run. Mailman's basic security is based on -group ownership permissions, so it's important to get this step -right\footnote{You will be able to check and repair your permissions after -installation is complete.}. Typically, you will add a new user and a new -group, both called \code{mailman}. The \code{mailman} user must be a member -of the \code{mailman} group. Mailman will be installed under the -\code{mailman} user and group, with the set-group-id (setgid) bit enabled. - -If these names are already in use, you can choose different user and group -names, as long as you remember these when you run \program{configure}. If you -choose a different unique user name, you will have to specify this with -\program{configure}'s \longprogramopt{with-username} option, and if you choose -a different group name, you will have to specify this with -\program{configure}'s \longprogramopt{with-groupname} option. - -On Linux systems, you can use the following commands to create these -accounts. Check your system's manual pages for details: - -\begin{verbatim} - % groupadd mailman - % useradd -c''GNU Mailman'' -s /no/shell -d /no/home -g mailman mailman -\end{verbatim} - -\subsection{Create the installation directory\label{create-install-dir}} -Typically, Mailman is installed into a single directory, which includes both -the Mailman source code and the run-time list and archive data. It is -possible to split the static program files from the variable data files and -install them in separate directories. This section will describe the -available options. - -The default is to install all of Mailman to -\file{/usr/local/mailman}\footnote{This is the default for Mailman 2.1. -Earlier versions of Mailman installed everything under \file{/home/mailman} by -default.}. You can change this base installation directory (referred to here -as \var{\$prefix}) by specifying the directory with the -\longprogramopt{prefix} \program{configure} option. If you're upgrading from -a previous version of Mailman, you may want to use the \longprogramopt{prefix} -option unless you move your mailing lists. - -\begin{notice}[warning] -You cannot install Mailman on a filesystem that is mounted with the -\code{nosuid} option. This will break Mailman, which relies on setgid -programs for its security. If this describes your environment, simply install -Mailman in a location that allows setgid programs. -\end{notice} - -Make sure the installation directory is set to group \code{mailman} (or -whatever you're going to specify with \longprogramopt{with-groupname}) and has -the setgid bit set\footnote{BSD users should see the \ref{bsd-issues} section -for additional information.}. You probably also want to guarantee that this -directory is readable and executable by everyone. For example, these shell -commands will accomplish this: - -\begin{verbatim} - % cd $prefix - % chgrp mailman . - % chmod a+rx,g+ws . -\end{verbatim} - -You are now ready to configure and install the Mailman software. - -\section{Build and install Mailman\label{building}} - -\subsection{Run \program{configure}} - -Before you can install Mailman, you must run \program{configure} to set -various installation options your system might need. - -\begin{notice}[note] -Take special note of the \longprogramopt{with-mail-gid} and -\longprogramopt{with-cgi-gid} options below. You will probably need to use -these. -\end{notice} - -You should \strong{not} be root while performing the steps in this section. -Do them under your own login, or whatever account you typically use to install -software. You do not need to do these steps as user \code{mailman}, but you -could. However, make sure that the login used is a member of the -\code{mailman} group as that that group has write permissions to the -\var{\$prefix} directory made in the previous step. You must also have -permission to create a setgid file in the file system where it resides (NFS -and other mounts can be configured to inhibit setgid settings). - -If you've installed other GNU software, you should be familiar with the -\program{configure} script. Usually you can just \program{cd} to the -directory you unpacked the Mailman source tarball into, and run -\program{configure} with no arguments: - -\begin{verbatim} - % cd mailman-<version> - % ./configure - % make install -\end{verbatim} - -The following options allow you to customize your Mailman -installation. - -\begin{description} -\item[\longprogramopt{prefix}=\var{dir}] - Standard GNU configure option which changes the base directory that - Mailman is installed into. By default \var{\$prefix} is - \file{/usr/local/mailman}. This directory must already exist, and be set - up as described in \ref{create-install-dir}. - -\item[\longprogramopt{exec-prefix}=\var{dir}] - Standard GNU configure option which lets you specify a different - installation directory for architecture dependent binaries. - -\item[\longprogramopt{with-var-prefix}=\var{dir}] - Store mutable data under \var{dir} instead of under the \var{\$prefix} or - \var{\$exec_prefix}. Examples of such data include the list archives and - list settings database. - -\item[\longprogramopt{with-python}=\file{/path/to/python}] - Specify an alternative Python interpreter to use for the wrapper programs. - The default is to use the interpreter found first on your shell's - \var{\$PATH}. - -\item[\longprogramopt{with-username}=\var{username-or-uid}] - Specify a different username than \code{mailman}. The value of this - option can be an integer user id or a user name. Be sure your - \var{\$prefix} directory is owned by this user. - -\item[\longprogramopt{with-groupname}=\var{groupname-or-gid}] - Specify a different groupname than \code{mailman}. The value of this - option can be an integer group id or a group name. Be sure your - \var{\$prefix} directory is group-owned by this group. - -\item[\longprogramopt{with-mail-gid}=\var{group-or-groups}] - Specify an alternative group for running scripts via the mail wrapper. - \var{group-or-groups} can be a list of one or more integer group ids or - symbolic group names. The first value in the list that resolves to an - existing group is used. By default, the value is the list \code{mailman}, - \code{other}, \code{mail}, and \code{daemon}. - - \begin{notice}[note] - This is highly system dependent and you must get this right, because the - group id is compiled into the mail wrapper program for added security. On - systems using \program{sendmail}, the \file{sendmail.cf} configuration - file designates the group id of \program{sendmail} processes using the - \var{DefaultUser} option. (If commented out, it still may be indicating - the default...) - \end{notice} - - Check your mail server's documentation and configuration files to find the - right value for this switch. - -\item[\longprogramopt{with-cgi-gid}=\var{group-or-groups}] - Specify an alternative group for running scripts via the CGI wrapper. - \var{group-or-groups} can be a list of one or more integer group ids or - symbolic group names. The first value in the list that resolves to an - existing group is used. By default, the value is the the list - \code{www}, \code{www-data}, and \code{nobody}. - - \begin{notice}[note] - The proper value for this is dependent on your web server configuration. - You must get this right, because the group id is compiled into the CGI - wrapper program for added security, and no Mailman CGI scripts will run if - this is incorrect. - \end{notice} - - If you're using Apache, check the values for the \var{Group} option in - your \file{httpd.conf} file. - -\item[\longprogramopt{with-cgi-ext}=\var{extension}] - Specify an extension for cgi-bin programs. The CGI wrappers placed in - \file{\var{\$prefix}/cgi-bin} will have this extension (some web servers - require an extension). \var{extension} must include the leading dot. - -\item[\longprogramopt{with-mailhost}=\var{hostname}] - Specify the fully qualified host name part for outgoing email. After the - installation is complete, this value can be overriden in - \file{\var{\$prefix}/Mailman/mm_cfg.py}. - -\item[\longprogramopt{with-urlhost}=\var{hostname}] - Specify the fully qualified host name part of urls. After the - installation is complete, this value can be overriden in - \file{\var{\$prefix}/Mailman/mm_cfg.py}. - -\item[\longprogramopt{with-gcc}=no] - Don't use gcc, even if it is found. In this case, \program{cc} must be - found on your \var{\$PATH}. - -\end{description} - -\subsection{Make and install} - -Once you've run \program{configure}, you can simply run \program{make}, then -\program{make install} to build and install Mailman. - -\section{Check your installation} - -After you've run \program{make install}, you should check that your -installation has all the correct permissions and group ownerships by running -the \program{check_perms} script. First change to the installation -(i.e. \var{\$prefix}) directory, then run the \program{bin/check_perms} -program. Don't try to run bin/check_perms from the source directory; it will -only run from the installation directory. - -If this reports no problems, then it's very likely <wink> that your -installation is set up correctly. If it reports problems, then you can either -fix them manually, re-run the installation, or use \program{bin/check_perms} -to fix the problems (probably the easiest solution): - -\begin{itemize} -\item You need to become the user that did the installation, and that owns all - the files in \var{\$prefix}, or root. - -\item Run \program{bin/check_perms -f} - -\item Repeat previous step until no more errors are reported! -\end{itemize} - -\begin{notice}[warning] -If you're running Mailman on a shared multiuser system, and you have mailing -lists with private archives, you may want to hide the private archive -directory from other users on your system. In that case, you should drop the -other execute permission (o-x) from the \file{archives/private} directory. -However, the web server process must be able to follow the symbolic link in -public directory, otherwise your public Pipermail archives will not work. To -set this up, become root and run the following commands: - -\begin{verbatim} -# cd <prefix>/archives -# chown <web-server-user> private -# chmod o-x private -\end{verbatim} - -You need to know what user your web server runs as. It may be \code{www}, -\code{apache}, \code{httpd} or \code{nobody}, depending on your server's -configuration. -\end{notice} - -\section{Set up your web server} - -Congratulations! You've installed the Mailman software. To get everything -running you need to hook Mailman up to both your web server and your mail -system. - -If you plan on running your mail and web servers on different machines, -sharing Mailman installations via NFS, be sure that the clocks on those two -machines are synchronized closely. You might take a look at the file -\file{Mailman/LockFile.py}; the constant \var{CLOCK_SLOP} helps the locking -mechanism compensate for clock skew in this type of environment. - -This section describes some of the things you need to do to connect Mailman's -web interface to your web server. The instructions here are somewhat geared -toward the Apache web server, so you should consult your web server -documentation for details. - -You must configure your web server to enable CGI script permission in the -\file{\var{\$prefix}/cgi-bin} to run CGI scripts. The line you should add -might look something like the following, with the real absolute directory -substituted for \var{\$prefix}, of course: - -\begin{verbatim} - Exec /mailman/* $prefix/cgi-bin/* -\end{verbatim} -% $ - emacs turd - - or: - -\begin{verbatim} - ScriptAlias /mailman/ $prefix/cgi-bin/ -\end{verbatim} -% $ - emacs turd - -\begin{notice}[warning] -You want to be very sure that the user id under which your CGI scripts run is -\strong{not} in the \code{mailman} group you created above, otherwise private -archives will be accessible to anyone. -\end{notice} - -Copy the Mailman, Python, and GNU logos to a location accessible to your web -server. E.g. with Apache, you've usually got an \file{icons} directory that -you can drop the images into. For example: - -\begin{verbatim} - % cp $prefix/icons/*.{jpg,png} /path/to/apache/icons -\end{verbatim} - -You then want to add a line to your \file{\var{\$prefix}/Mailman/mm_cfg.py} -file which sets the base URL for the logos. For example: - -\begin{verbatim} - IMAGE_LOGOS = '/images/' -\end{verbatim} - -The default value for \var{IMAGE_LOGOS} is \file{/icons/}. Read the comment -in \file{Defaults.py.in} for details. - -Configure your web server to point to the Pipermail public mailing list -archives. For example, in Apache: - -\begin{verbatim} - Alias /pipermail/ $varprefix/archives/public/ -\end{verbatim} -% $ - emacs turd - -where \var{\$varprefix} is usually \var{\$prefix} unless you've used the -\longprogramopt{with-var-prefix} option to \program{configure}. Also be -sure to configure your web server to follow symbolic links in this directory, -otherwise public Pipermail archives won't be accessible. For Apache users, -consult the \var{FollowSymLinks} option. - -If you're going to be supporting internationalized public archives, you will -probably want to turn off any default charset directive for the Pipermail -directory, otherwise your multilingual archive pages won't show up correctly. -Here's an example for Apache, based on the standard installation directories: - -\begin{verbatim} - <Directory "/usr/local/mailman/archives/public/"> - AddDefaultCharset Off - </Directory> -\end{verbatim} - -Now restart your web server. - -\section{Set up your mail server\label{mail-server}} - -This section describes some of the things you need to do to connect Mailman's -email interface to your mail server. The instructions here are different for -each mail server; if your mail server is not described in the following -subsections, try to generalize from the existing documentation, and consider -contributing documentation updates to the Mailman developers. - -\subsection{Using the Postfix mail server} - -Mailman should work pretty much out of the box with a standard Postfix -installation. It has been tested with various Postfix versions up to and -including Postfix 2.1.5. - -In order to support Mailman's optional VERP delivery, you will want to disable -\code{luser_relay} (the default) and you will want to set -\code{recipient_delimiter} for extended address semantics. You should comment -out any \code{luser_relay} value in your \file{main.cf} and just go with the -defaults. Also, add this to your \file{main.cf} file: - -\begin{verbatim} - recipient_delimiter = + -\end{verbatim} - -Using \samp{+} as the delimiter works well with the default values for -\var{VERP_FORMAT} and \var{VERP_REGEXP} in \file{Defaults.py}. - -When attempting to deliver a message to a non-existent local address, Postfix -may return a 450 error code. Since this is a transient error code, Mailman -will continue to attempt to deliver the message for -\var{DELIVERY_RETRY_PERIOD} -- 5 days by default. You might want to set -Postfix up so that it returns permanent error codes for non-existent local -users by adding the following to your \file{main.cf} file: - -\begin{verbatim} - unknown_local_recipient_reject_code = 550 -\end{verbatim} - -Finally, if you are using Postfix-style virtual domains, read the section on -virtual domain support below. - -\subsubsection{Integrating Postfix and Mailman} - -You can integrate Postfix and Mailman such that when new lists are created, or -lists are removed, Postfix's alias database will be automatically updated. -The following are the steps you need to take to make this work. - -In the description below, we assume that you've installed Mailman in the -default location, i.e. \file{/usr/local/mailman}. If that's not the case, -adjust the instructions according to your use of \program{configure}'s -\longprogramopt{prefix} and \longprogramopt{with-var-prefix} options. - -\begin{notice}[note] -If you are using virtual domains and you want Mailman to honor your virtual -domains, read the \ref{postfix-virtual} section below first! -\end{notice} - -\begin{itemize} -\item Add this to the bottom of the \file{\var{\$prefix}/Mailman/mm_cfg.py} - file: - - \begin{verbatim} - MTA = 'Postfix' - \end{verbatim} - - The MTA variable names a module in the \file{Mailman/MTA} directory - which contains the mail server-specific functions to be executed when a - list is created or removed. - -\item Look at the \file{Defaults.py} file for the variables - \var{POSTFIX_ALIAS_CMD} and \var{POSTFIX_MAP_CMD} command. Make sure - these point to your \program{postalias} and \program{postmap} programs - respectively. Remember that if you need to make changes, do it in - \file{mm_cfg.py}. - -\item Run the \program{bin/genaliases} script to initialize your - \file{aliases} file. - - \begin{verbatim} - % cd /usr/local/mailman - % bin/genaliases - \end{verbatim} - - Make sure that the owner of the \file{data/aliases} and - \file{data/aliases.db} file is \code{mailman}, that the group owner - for those files is \code{mailman}, or whatever user and group you used - in the configure command, and that both files are group writable: - - \begin{verbatim} - % su - % chown mailman:mailman data/aliases* - % chmod g+w data/aliases* - \end{verbatim} - -\item Hack your Postfix's \file{main.cf} file to include the following path in - your \var{alias_maps} variable: - - \begin{verbatim} - /usr/local/mailman/data/aliases - \end{verbatim} - - Note that there should be no trailing \code{.db}. Do not include this - in your \var{alias_database} variable. This is because you do not want - Postfix's \program{newaliases} command to modify Mailman's - \file{aliases.db} file, but you do want Postfix to consult - \file{aliases.db} when looking for local addresses. - - You probably want to use a \code{hash:} style database for this entry. - Here's an example: - - \begin{verbatim} - alias_maps = hash:/etc/postfix/aliases, - hash:/usr/local/mailman/data/aliases - \end{verbatim} - -\item When you configure Mailman, use the - \longprogramopt{with-mail-gid=mailman} switch; this will be the default - if you configured Mailman after adding the \code{mailman} owner. - Because the owner of the \file{aliases.db} file is \code{mailman}, - Postfix will execute Mailman's wrapper program as uid and gid - \code{mailman}. - -\end{itemize} - -That's it! One caveat: when you add or remove a list, the \file{aliases.db} -file will updated, but it will not automatically run \program{postfix reload}. -This is because you need to be root to run this and suid-root scripts are not -secure. The only effect of this is that it will take about a minute for -Postfix to notice the change to the \file{aliases.db} file and update its -tables. - -\subsubsection{Virtual domains\label{postfix-virtual}} - -Postfix 2.0 supports ``virtual alias domains'', essentially what used to be -called ``Postfix-style virtual domains'' in earlier Postfix versions. To make -virtual alias domains work with Mailman, you need to do some setup in both -Postfix and Mailman. Mailman will write all virtual alias mappings to a file -called, by default, \file{/usr/local/mailman/data/virtual-mailman}. It will -also use \program{postmap} to create the \program{virtual-mailman.db} file -that Postfix will actually use. - -First, you need to set up the Postfix virtual alias domains as described in -the Postfix documentation (see Postfix's \code{virtual(5)} manpage). Note -that it's your responsibility to include the \code{virtual-alias.domain -anything} line as described manpage; Mailman will not include this line in -\file{virtual-mailman}. You are highly encouraged to make sure your virtual -alias domains are working properly before integrating with Mailman. - -Next, add a path to Postfix's \var{virtual_alias_maps} variable, pointing to -the virtual-mailman file, e.g.: - -\begin{verbatim} - virtual_alias_maps = <your normal virtual alias files>, - hash:/usr/local/mailman/data/virtual-mailman -\end{verbatim} - -assuming you've installed Mailman in the default location. If you're using an -older version of Postfix which doesn't have the \var{virtual_alias_maps} -variable, use the \var{virtual_maps} variable instead. - -Next, in your \file{mm_cfg.py} file, you will want to set the variable -\var{POSTFIX_STYLE_VIRTUAL_DOMAINS} to the list of virtual domains that Mailman -should update. This may not be all of the virtual alias domains that your -Postfix installation supports! The values in this list will be matched -against the \var{host_name} attribute of mailing lists objects, and must be an -exact match. - -Here's an example. Say that Postfix is configured to handle the virtual -domains \code{dom1.ain}, \code{dom2.ain}, and \code{dom3.ain}, and further -that in your \file{main.cf} file you've got the following settings: - -\begin{verbatim} - myhostname = mail.dom1.ain - mydomain = dom1.ain - mydestination = $myhostname, localhost.$mydomain - virtual_alias_maps = - hash:/some/path/to/virtual-dom1, - hash:/some/path/to/virtual-dom2, - hash:/some/path/to/virtual-dom2 -\end{verbatim} - -If in your \file{virtual-dom1} file, you've got the following lines: - -\begin{verbatim} - dom1.ain IGNORE - @dom1.ain @mail.dom1.ain -\end{verbatim} - -this tells Postfix to deliver anything addressed to \code{dom1.ain} to the -same mailbox at \code{mail.dom1.com}, its default destination. - -In this case you would not include \code{dom1.ain} in -\var{POSTFIX_STYLE_VIRTUAL_DOMAINS} because otherwise Mailman will write -entries for mailing lists in the dom1.ain domain as - -\begin{verbatim} - mylist@dom1.ain mylist - mylist-request@dom1.ain mylist-request - # and so on... -\end{verbatim} - -The more specific entries trump your more general entries, thus breaking the -delivery of any \code{dom1.ain} mailing list. - -However, you would include \code{dom2.ain} and \code{dom3.ain} in -\file{mm_cfg.py}: - -\begin{verbatim} - POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain'] -\end{verbatim} - -Now, any list that Mailman creates in either of those two domains, will have -the correct entries written to \file{/usr/local/mailman/data/virtual-mailman}. - -As above with the \file{data/aliases*} files, you want to make sure that both -\file{data/virtual-mailman} and \file{data/virtual-mailman.db} are user and -group owned by \code{mailman}. - -\subsubsection{An alternative approach} - -Fil \email{fil@rezo.net} has an alternative approach based on virtual maps and -regular expressions, as described at: - -\begin{itemize} -\item (French) \url{http://listes.rezo.net/comment.php} -\item (English) \url{http://listes.rezo.net/how.php} -\end{itemize} - -This is a good (and simpler) alternative if you don't mind exposing an -additional hostname in the domain part of the addresses people will use to -contact your list. I.e. if people should use \code{mylist@lists.dom.ain} -instead of \code{mylist@dom.ain}. - -\subsection{Using the Exim mail server} - -\begin{notice}[note] -This section is derived from Nigel Metheringham's ``HOWTO - Using Exim and -Mailman together'', which covers Mailman 2.0.x and Exim 3. It has been -updated to cover Mailman 2.1 and Exim 4. The original document is here: -\url{http://www.exim.org/howto/mailman.html}. -\end{notice} - -There is no Mailman configuration needed other than the standard options -detailed in the Mailman install documentation. The Exim configuration is -transparent to Mailman. The user and group settings for Mailman must match -those in the config fragments given below. - -\subsubsection{Exim configuration} - -The Exim configuration is built so that a list created within Mailman -automatically appears to Exim without the need for defining any additional -aliases. - -The drawback of this configuration is that it will work poorly on systems -supporting lists in several different mail domains. While Mailman handles -virtual domains, it does not yet support having two distinct lists with the -same name in different virtual domains, using the same Mailman installation. -This will eventually change. (But see below for a variation on this scheme -that should accommodate virtual domains better.) - -The configuration file excerpts below are for use in an already functional -Exim configuration, which accepts mail for the domain in which the list -resides. If this domain is separate from the others handled by your Exim -configuration, then you'll need to: - -\begin{itemize} -\item add the list domain, ``my.list.domain'' to \var{local_domains} - -\item add a ``domains=my.list.domain'' option to the director (router) for the - list - -\item (optional) exclude that domain from your other directors (routers) -\end{itemize} - -\begin{notice}[note] -The instructions in this document should work with either Exim 3 or Exim 4. -In Exim 3, you must have a \var{local_domains} configuration setting; in Exim -4, you most likely have a \var{local_domains} domainlist. If you don't, you -probably know what you're doing and can adjust accordingly. Similarly, in -Exim 4 the concept of ``directors'' has disappeared -- there are only routers -now. So if you're using Exim 4, whenever this document says ``director'', -read ``router''. -\end{notice} - -Whether you are using Exim 3 or Exim 4, you will need to add some macros to -the main section of your Exim config file. You will also need to define one -new transport. With Exim 3, you'll need to add a new director; with Exim 4, a -new router plays the same role. - -Finally, the configuration supplied here should allow co-habiting Mailman 2.0 -and 2.1 installations, with the proviso that you'll probably want to use -\code{mm21} in place of \code{mailman} -- e.g., \var{MM21_HOME}, -\var{mm21_transport}, etc. - -\subsubsection{Main configuration settings} - -First, you need to add some macros to the top of your Exim config file. These -just make the director (router) and transport below a bit cleaner. Obviously, -you'll need to edit these based on how you configured and installed Mailman. - -\begin{verbatim} - # Home dir for your Mailman installation -- aka Mailman's prefix - # directory. - MAILMAN_HOME=/usr/local/mailman - MAILMAN_WRAP=MAILMAN_HOME/mail/mailman - - # User and group for Mailman, should match your --with-mail-gid - # switch to Mailman's configure script. - MAILMAN_USER=mailman - MAILMAN_GROUP=mailman -\end{verbatim} - -\subsubsection{Transport for Exim 3\label{exim3-transport}} - -Add this to the transports section of your Exim config file, -i.e. somewhere between the first and second ``end'' line: - -\begin{verbatim} - mailman_transport: - driver = pipe - command = MAILMAN_WRAP \ - '${if def:local_part_suffix \ - {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ - {post}}' \ - $local_part - current_directory = MAILMAN_HOME - home_directory = MAILMAN_HOME - user = MAILMAN_USER - group = MAILMAN_GROUP -\end{verbatim} - -\subsubsection{Director for Exim 3} - -If you're using Exim 3, you'll need to add the following director to your -config file (directors go between the second and third ``end'' lines). Also, -don't forget that order matters -- e.g. you can make Mailman lists take -precedence over system aliases by putting this director in front of your -aliasfile director, or vice-versa. - -\begin{verbatim} - # Handle all addresses related to a list 'foo': the posting address. - # Automatically detects list existence by looking - # for lists/$local_part/config.pck under MAILMAN_HOME. - mailman_director: - driver = smartuser - require_files = MAILMAN_HOME/lists/$local_part/config.pck - suffix_optional - suffix = -bounces : -bounces+* : \ - -confirm+* : -join : -leave : \ - -owner : -request : -admin - transport = mailman_transport -\end{verbatim} - -\subsubsection{Router for Exim 4} - -In Exim 4, there's no such thing as directors -- you need to add a new router -instead. Also, the canonical order of the configuration file was changed so -routers come before transports, so the router for Exim 4 comes first here. -Put this router somewhere after the ``begin routers'' line of your config -file, and remember that order matters. - -\begin{verbatim} - mailman_router: - driver = accept - require_files = MAILMAN_HOME/lists/$local_part/config.pck - local_part_suffix_optional - local_part_suffix = -bounces : -bounces+* : \ - -confirm+* : -join : -leave : \ - -owner : -request : -admin - transport = mailman_transport -\end{verbatim} -% $ - emacs turds - -\subsubsection{Transports for Exim 4} - -The transport for Exim 4 is the same as for Exim 3 (see \ref{exim3-transport}; -just copy the transport given above to somewhere under the ``begin -transports'' line of your Exim config file. - -\subsubsection{Additional notes} - -Exim should be configured to allow reasonable volume -- e.g. don't set -\var{max_recipients} down to a silly value -- and with normal degrees of -security -- specifically, be sure to allow relaying from 127.0.0.1, but pretty -much nothing else. Parallel deliveries and other tweaks can also be used if -you like; experiment with your setup to see what works. Delay warning -messages should be switched off or configured to only happen for non-list -mail, unless you like receiving tons of mail when some random host is down. - -\subsubsection{Problems} - -\begin{itemize} - -\item Mailman will send as many \code{MAIL FROM}/\code{RCPT TO} as it needs. - It may result in more than 10 or 100 messages sent in one connection, - which will exceed the default value of Exim's - \var{smtp_accept_queue_per_connection} value. This is bad because it - will cause Exim to switch into queue mode and severely delay delivery of - your list messages. The way to fix this is to set Mailman's - \var{SMTP_MAX_SESSIONS_PER_CONNECTION} (in - \file{\var{\$prefix}/Mailman/mm_cfg.py}) to a smaller value than Exim's - \var{smtp_accept_queue_per_connection}. - -\item Mailman should ignore Exim delay warning messages, even though Exim - should never send this to list messages. Mailman 2.1's general bounce - detection and VERP support should greatly improve the bounce detector's - hit rates. - -\item List existence is determined by the existence of a \file{config.pck} - file for a list. If you delete lists by foul means, be aware of this. - -\item If you are getting Exim or Mailman complaining about user ids when you - send mail to a list, check that the \var{MAILMAN_USER} and - \var{MAILMAN_GROUP} match those of Mailman itself (i.e. what were used - in the \program{configure} script). Also make sure you do not have - aliases in the main alias file for the list. -\end{itemize} - -\subsubsection{Receiver Verification} - -Exim's receiver verification feature is very useful -- it lets Exim reject -unrouteable addresses at SMTP time. However, this is most useful for -externally-originating mail that is addressed to mail in one of your local -domains. For Mailman list traffic, mail originates on your server, and is -addressed to random external domains that are not under your control. -Furthermore, each message is addressed to many recipients --- up to 500 if you use Mailman's default configuration and don't tweak -\var{SMTP_MAX_RCPTS}. - -Doing receiver verification on Mailman list traffic is a recipe for trouble. -In particular, Exim will attempt to route every recipient addresses in -outgoing Mailman list posts. Even though this requires nothing more than a -few DNS lookups for each address, it can still introduce significant delays. -Therefore, you should disable recipient verification for Mailman traffic. - -Under Exim 3, put this in your main configuration section: - -\begin{verbatim} - receiver_verify_hosts = !127.0.0.1 -\end{verbatim} - -Under Exim 4, this is probably already taken care of for you by the default -recipient verification ACL statement (in the \code{RCPT TO} ACL): - -\begin{verbatim} - accept domains = +local_domains - endpass - message = unknown user - verify = recipient -\end{verbatim} - -which only does recipient verification on addresses in your domain. (That's -not exactly the same as doing recipient verification only on messages coming -from non-127.0.0.1 hosts, but it should do the trick for Mailman.) - -\subsubsection{SMTP Callback} - -Exim's SMTP callback feature is an even more powerful way to detect bogus -sender addresses than normal sender verification. Unfortunately, lots of -servers send bounce messages with a bogus address in the header, and there are -plenty that send bounces with bogus envelope senders (even though they're -supposed to just use an empty envelope sender for bounces). - -In order to ensure that Mailman can disable/remove bouncing addresses, you -generally want to receive bounces for Mailman lists, even if those bounces are -themselves not bounceable. Thus, you might want to disable SMTP callback on -bounce messages. - -With Exim 4, you can accomplish this using something like the following in -your \code{RCPT TO} ACL: - -\begin{verbatim} - # Accept bounces to lists even if callbacks or other checks would fail - warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes - condition = \ - ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ - {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ - {yes}{no}} - {yes}{no}} - - accept condition = \ - ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ - {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ - {yes}{no}} - {yes}{no}} - - # Now, check sender address with SMTP callback. - deny !verify = sender/callout=90s -\end{verbatim} - -If you also do SMTP callbacks on header addresses, you'll want something like -this in your \code{DATA} ACL: - -\begin{verbatim} - deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback: - !verify = header_sender/callout=90s -\end{verbatim} -% $ - emacs turd - -\subsubsection{Doing VERP with Exim and Mailman} - -VERP will send one email, with a separate envelope sender (return path), for -each of your subscribers -- read the information in -\file{\var{\$prefix}/Mailman/Defaults.py} for the options that start with VERP. -In a nutshell, all you need to do to enable VERP with Exim is to add these lines to \file{\var{\$prefix}/Mailman/mm_cfg.py}: - -\begin{verbatim} - VERP_PASSWORD_REMINDERS = Yes - VERP_PERSONALIZED_DELIVERIES = Yes - VERP_DELIVERY_INTERVAL = Yes - VERP_CONFIRMATIONS = Yes -\end{verbatim} - -(The director (router) above is smart enough to deal with VERP bounces.) - -\subsubsection{Virtual Domains} - -One approach to handling virtual domains is to use a separate Mailman -installation for each virtual domain. Currently, this is the only way to have -lists with the same name in different virtual domains handled by the same -machine. - -In this case, the \var{MAILMAN_HOME} and \var{MAILMAN_WRAP} macros are useless --- you can remove them. Change your director (router) to something like this: - -\begin{verbatim} - require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck -\end{verbatim} -% $ - emacs turd - -and change your transport like this: - -\begin{verbatim} - command = /virtual/${domain}/mailman/mail/mailman \ - ${if def:local_part_suffix \ - {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} - {post}} \ - $local_part - current_directory = /virtual/${domain}/mailman - home_directory = /virtual/${domain}/mailman -\end{verbatim} -% $ - emacs turd - -\subsubsection{List Verification} - -This is how a set of address tests for the Exim lists look on a working -system. The list in question is \email{quixote-users@mems-exchange.org}, and -these commands were run on the \code{mems-exchange.org} mail server ("\% " -indicates the Unix shell prompt): - -\begin{verbatim} - % exim -bt quixote-users - quixote-users@mems-exchange.org - router = mailman_main_router, transport = mailman_transport - - % exim -bt quixote-users-request - quixote-users-request@mems-exchange.org - router = mailman_router, transport = mailman_transport - - % exim -bt quixote-users-bounces - quixote-users-bounces@mems-exchange.org - router = mailman_router, transport = mailman_transport - - % exim -bt quixote-users-bounces+luser=example.com - quixote-users-bounces+luser=example.com@mems-exchange.org - router = mailman_router, transport = mailman_transport -\end{verbatim} - -If your \program{exim -bt} output looks something like this, that's a start: -at least it means Exim will pass the right messages to the right Mailman -commands. It by no means guarantees that your Exim/Mailman installation is -functioning perfectly, though! - -\subsubsection{Document History} - -Originally written by Nigel Metheringham \email{postmaster@exim.org}. Updated -by Marc Merlin \email{marc_soft@merlins.org} for Mailman 2.1, Exim 4. -Overhauled/reformatted/clarified/simplified by Greg Ward -\email{gward@python.net}. - -\subsection{Using the Sendmail mail server} - -\begin{notice}[warning] -You may be tempted to set the \var{DELIVERY_MODULE} configuration variable in -\file{mm_cfg.py} to \code{'Sendmail'} when using the Sendmail mail server. -\strong{Don't}. The \file{Sendmail.py} module is misnamed -- it's really a -command line based message handoff scheme as opposed to the SMTP scheme used -in \file{SMTPDirect.py} (the default). \file{Sendmail.py} has known security -holes and is provided as a proof-of-concept only\footnote{In fact, in later -versions of Mailman, this module is explicitly sabotaged. You have to know -what you're doing in order to re-enable it.}. If you are having problems -using \file{SMTPDirect.py} fix those instead of using \file{Sendmail.py}, or -you may open your system up to security exploits. -\end{notice} - -\subsubsection{Sendmail ``smrsh'' compatibility} - -Many newer versions of Sendmail come with a restricted execution utility -called ``smrsh'', which limits the executables that Sendmail will allow to be -used as mail programs. You need to explicitly allow Mailman's wrapper program -to be used with smrsh or Mailman will not work. If mail is not getting -delivered to Mailman's wrapper program and you're getting an ``operating -system error'' in your mail syslog, this could be your problem. - -One good way of enabling this is: - -\begin{itemize} - \item Find out where your Sendmail executes its smrsh wrapper - - \begin{verbatim} - % grep smrsh /etc/mail/sendmail.cf - \end{verbatim} - - \item Figure out where smrsh expects symlinks for allowable mail - programs. At the very beginning of the following output you will - see a full path to some directory, e.g. \file{/var/adm/sm.bin} or - similar: - - \begin{verbatim} - % strings $path_to_smrsh | less - \end{verbatim} - - \item cd into \file{/var/adm/sm.bin}, or where ever it happens to reside - on your system -- alternatives include \file{/etc/smrsh}, - \file{/var/smrsh} and \file{/usr/local/smrsh}. - - \begin{verbatim} - % cd /var/adm/sm.bin - \end{verbatim} - - \item Create a symbolic link to Mailman's wrapper program: - - \begin{verbatim} - % ln -s /usr/local/mailman/mail/mailman mailman - \end{verbatim} -\end{itemize} - -\subsubsection{Integrating Sendmail and Mailman} - -David Champion has contributed a recipe for more closely integrating Sendmail -and Mailman, such that Sendmail will automatically recognize and deliver to -new mailing lists as they are created, without having to manually edit alias -tables. - -In the \file{contrib} directory of Mailman's source distribution, you will -find four files: - -\begin{itemize} -\item \file{mm-handler.readme} - an explanation of how to set everything up -\item \file{mm-handler} - the mail delivery agent (MDA) -\item \file{mailman.mc} - a toy configuration file sample -\item \file{virtusertable} - a sample for RFC 2142 address exceptions -\end{itemize} - -\subsubsection{Performance notes} - -One of the surest performance killers for Sendmail users is when Sendmail is -configured to synchronously verify the recipient's host via DNS. If it does -this for messages posted to it from Mailman, you will get horrible -performance. Since Mailman usually connects via \code{localhost} -(i.e. 127.0.0.1) to the SMTP port of Sendmail, you should be sure to configure -Sendmail to \strong{not} do DNS verification synchronously for localhost -connections. - -\subsection{Using the Qmail mail server\label{qmail-issues}} - -There are some issues that users of the qmail mail transport agent have -encountered. None of the core maintainers use qmail, so all of this -information has been contributed by the Mailman user community, especially -Martin Preishuber and Christian Tismer, with notes by Balazs Nagy (BN) and -Norbert Bollow (NB). - -\begin{itemize} -\item You might need to set the mail-gid user to either \code{qmail}, - \code{mailman}, or \code{nofiles} by using the - \longprogramopt{with-mail-gid} \program{configure} option. - - \emph{BN:} it highly depends on your mail storing policy. For example - if you use the simple \file{\~{}alias/.qmail-*} files, you can use - \program{`id -g alias`}. But if you use \file{/var/qmail/users}, the - specified mail gid can be used. - - If you are going to be directing virtual domains directly to the - \code{mailman} user (using ``virtualdomains'' on a list-only domain, for - example), you will have to use \longprogramopt{with-mail-gid}=\var{gid - of mailman user's group}. This is incompatible with having list aliases - in \file{\~{}alias}, unless that alias simply forwards to - \code{mailman-listname*}. - -\item If there is a user \code{mailman} on your system, the alias - \code{mailman-owner} will work only in \file{\~{}mailman}. You have to do - a \program{touch .qmail-owner} in \file{\~{}mailman} directory to create - this alias. - - \emph{NB:} An alternative, IMHO better solution is to \program{chown - root \~{}mailman}, that will stop qmail from considering \code{mailman} to - be a user to whom mail can be delivered. (See ``man 8 qmail-getpw''.) - -\item In a related issue, if you have any users with the same name as one of - your mailing lists, you will have problems if list names contain - \samp{-} in them. Putting \file{.qmail} redirections into the user's - home directory doesn't work because the Mailman wrappers will not get - spawned with the proper GID. The solution is to put the following lines - in the \file{/var/qmail/users/assign} file: - -\begin{verbatim} - +zope-:alias:112:11:/var/qmail/alias:-:zope-: - . -\end{verbatim} - - where in this case the listname is e.g. \code{zope-users}. - - \emph{NB:} Alternatively, you could host the lists on a virtual domain, - and use the \file{/var/qmail/control/virtualdomains} file to put the - \code{mailman} user in charge of this virtual domain. - -\item \emph{BN:}If inbound messages are delivered by another user than - \code{mailman}, it's necessary to allow it to access \file{\~{}mailman}. - Be sure that \file{\~{}mailman} has group writing access and setgid bit is - set. Then put the delivering user to \code{mailman} group, and you can - deny access to \file{\~{}mailman} to others. Be sure that you can do the - same with the WWW service. - - By the way the best thing is to make a virtual mail server to handle all - of the mail. \emph{NB:} E.g. make an additional "A" DNS record for the - virtual mailserver pointing to your IP address, add the line - \code{lists.kva.hu:mailman} to \file{/var/qmail/control/virtualdomains} - and a \code{lists.kva.hu} line to \file{/var/qmail/control/rcpthosts} - file. Don't forget to HUP the qmail-send after modifying - ``virtualdomains''. Then every mail to lists.kva.hu will arrive to - mail.kva.hu's mailman user. - - Then make your aliases: - -\begin{verbatim} - .qmail => mailman@...'s letters - .qmail-owner => mailman-owner's letters -\end{verbatim} - - For list aliases, you can either create them manually: - -\begin{verbatim} - .qmail-list => posts to the 'list' list - .qmail-list-admin => posts to the 'list's owner - .qmail-list-request => requests to 'list' - etc -\end{verbatim} - - or for automatic list alias handling (when using the lists.kva.hu - virtual as above), see \file{contrib/qmail-to-mailman.py} in the Mailman - source distribution. Modify the \file{\~{}mailman/.qmail-default} to - include: - -\begin{verbatim} - |preline /path/to/python /path/to/qmail-to-mailman.py -\end{verbatim} - - and new lists will automatically be picked up. - -\item You have to make sure that the localhost can relay. If you start qmail - via inetd and tcpenv, you need some line the following in your - \file{/etc/hosts.allow} file: - -\begin{verbatim} - tcp-env: 127. 10.205.200. : setenv RELAYCLIENT -\end{verbatim} - - where 10.205.200. is your IP address block. If you use tcpserver, then - you need something like the following in your \file{/etc/tcp.smtp} file: - -\begin{verbatim} - 10.205.200.:allow,RELAYCLIENT="" - 127.:allow,RELAYCLIENT="" -\end{verbatim} - -\item \emph{BN:} Bigger \file{/var/qmail/control/concurrencyremote} values - work better sending outbound messages, within reason. Unless you know - your system can handle it (many if not most cannot) this should not be - set to a value greater than 120. - -\item More information about setting up qmail and relaying can be found in the - qmail documentation. -\end{itemize} - -\emph{BN:} Last but not least, here's a little script to generate aliases to -your lists (if for some reason you can/will not have them automatically picked -up using \file{contrib/qmail-to-mailman.py}): - -This script is for the Mailman 2.0 series: - -\begin{verbatim} -#!/bin/sh -if [ $# = 1 ]; then - i=$1 - echo Making links to $i in the current directory... - echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i - echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin - echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner - echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i - echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request -fi -\end{verbatim} -% $ - emacs turd - -\begin{notice}[note] -This is for a new Mailman 2.1 installation. Users upgrading from -Mailman 2.0 would most likely change \file{/usr/local/mailman} to -\file{/home/mailman}. If in doubt, refer to the \longprogramopt{prefix} -option passed to \program{configure} during compile time. -\end{notice} - -\begin{verbatim} -#!/bin/sh -if [ $# = 1 ]; then - i=$1 - echo Making links to $i in the current directory... - echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i - echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin - echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces - # The following line is for VERP - # echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces-default - echo "|preline /usr/local/mailman/mail/mailman confirm $i" > .qmail-$i-confirm - echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join - echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave - echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner - echo "|preline /usr/local/mailman/mail/mailman request $i" > .qmail-$i-request - echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > .qmail-$i-subscribe - echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > .qmail-$i-unsubscribe -fi -\end{verbatim} -% $ - emacs turd - -\subsubsection{Information on VERP} - -You will note in the alias generating script for 2.1 above, there is a line -for VERP that has been commented out. If you are interested in VERP there are -two options. The first option is to allow Mailman to do the VERP formatting. -To activate this, uncomment that line and add the following lines to your -\file{mm_cfg.py} file: - -\begin{verbatim} - VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s' - VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$' -\end{verbatim} -% $ - emacs turd - -The second option is a patch on SourceForge located at: - -\url{http://sourceforge.net/tracker/?func=detail\&atid=300103\&aid=645513\&group_id=103} - -This patch currently needs more testing and might best be suitable for -developers or people well familiar with qmail. Having said that, this patch -is the more qmail-friendly approach resulting in large performance gains. - -\subsubsection{Virtual mail server} - -As mentioned in the \ref{qmail-issues} section for a virtual mail server, a -patch under testing is located at: - -\url{http://sf.net/tracker/index.php?func=detail\&aid=621257\&group_id=103\&atid=300103} - -Again, this patch is for people familiar with their qmail installation. - -\subsubsection{More information} - -You might be interested in some information on modifying footers that Norbert -Bollow has written about Mailman and qmail, available here: - - \url{http://mailman.cis.to/qmail-verh/} - -\section{Review your site defaults\label{customizing}} - -Mailman has a large number of site-wide configuration options which you should -now review and change according to your needs. Some of the options control -how Mailman interacts with your environment, and other options select defaults -for newly created lists\footnote{In general, changing the list defaults -described in this section will not affect any already created lists. To make -changes after a list has been created, use the web interface or the command -line scripts, such as \program{bin/withlist} and \program{bin/config_list}.}. -There are system tuning parameters and integration options. - -The full set of site-wide defaults lives in the -\file{\var{\$prefix}/Mailman/Defaults.py} file, however you should -\strong{never} modify this file! Instead, change the \file{mm_cfg.py} file in -that same directory. You only need to add values to \file{mm_cfg.py} that are -different than the defaults in \file{Defaults.py}, and future Mailman upgrades -are guaranteed never to touch your \file{mm_cfg.py} file. - -The \file{Defaults.py} file is documented extensively, so the options are not -described here. The \file{Defaults.py} and \file{mm_cfg.py} are both -\ulink{Python}{http://www.python.org} files so valid Python syntax must be -maintained or your Mailman installation will break. - -\begin{notice}[note] -Do \strong{not} change the \var{HOME_DIR} or \var{MAILMAN_DIR} variables. -These are set automatically by the \program{configure} script, and you will -break your Mailman installation by if you change these. -\end{notice} - -You should make any changes to \file{mm_cfg.py} using the account you -installed Mailman under in the \ref{building} section. - -\section{Create a site-wide mailing list} - -After you have completed the integration of Mailman and your mail server, you -need to create a ``site-wide'' mailing list. This is the one that password -reminders will appear to come from, and it is required for proper Mailman -operation. Usually this should be a list called \code{mailman}, but if you -need to change this, be sure to change the \var{MAILMAN_SITE_LIST} variable in -\file{mm_cfg.py}. You can create the site list with this command, following -the prompts: - -\begin{verbatim} - % bin/newlist mailman -\end{verbatim} - -Now configure your site list. There is a convenient template for a generic -site list in the installation directory, under \file{data/sitelist.cfg} which -can help you with this. You should review the configuration options in the -template, but note that any options not named in the \file{sitelist.cfg} file -won't be changed. - -The template can be applied to your site list by -running: - -\begin{verbatim} - % bin/config_list -i data/sitelist.cfg mailman -\end{verbatim} - -After applying the \file{sitelist.cfg} options, be sure you review the -site list's configuration via the admin pages. - -You should also subscribe yourself to the site list. - -\section{Set up cron} - -Several Mailman features occur on a regular schedule, so you must set up -\program{cron} to run the right programs at the right time\footnote{Note that -if you're upgrading from a previous version of Mailman, you'll want to install -the new crontab, but be careful if you're running multiple Mailman -installations on your site! Changing the crontab could mess with other -parallel Mailman installations.}. - -If your version of crontab supports the \programopt{-u} option, you must be -root to do this next step. Add \file{\var{\$prefix}/cron/crontab.in} as a -crontab entry by executing these commands: - -\begin{verbatim} - % cd $prefix/cron - % crontab -u mailman crontab.in -\end{verbatim} - -If you used the \longprogramopt{with-username} option, use that user name -instead of \code{mailman} for the \programopt{-u} argument value. If your -crontab does not support the \programopt{-u} option, try these commands: - -\begin{verbatim} - % cd $prefix/cron - % su - mailman - % crontab crontab.in -\end{verbatim} - -\section{Start the Mailman qrunner} - -Mailman depends on a process called the ``qrunner'' to delivery all -email messages it sees. You must start the qrunner by executing the following -command from the \var{\$prefix} directory: - -\begin{verbatim} - % bin/mailmanctl start -\end{verbatim} - -You probably want to start Mailman every time you reboot your system. Exactly -how to do this depends on your operating system. If your OS supports the -\program{chkconfig} command (e.g. RedHat and Mandrake Linuxes) you can -do the following (as root, from the Mailman install directory): - -\begin{verbatim} - % cp scripts/mailman /etc/init.d/mailman - % chkconfig --add mailman -\end{verbatim} - -Note that \file{/etc/init.d} may be \file{/etc/rc.d/init.d} on some systems. - -On Gentoo Linux, you can do the following: - -\begin{verbatim} - % cp scripts/mailman /etc/init.d/mailman - % rc-update add mailman default -\end{verbatim} - -On Debian, you probably want to use: - -\begin{verbatim} - % update-rc.d mailman defaults -\end{verbatim} - -For \UNIX{}es that don't support \program{chkconfig}, you might try the -following set of commands: - -\begin{verbatim} - % cp scripts/mailman /etc/init.d/mailman - % cp misc/mailman /etc/init.d - % cd /etc/rc.d/rc0.d - % ln -s ../init.d/mailman K12mailman - % cd ../rc1.d - % ln -s ../init.d/mailman K12mailman - % cd ../rc2.d - % ln -s ../init.d/mailman S98mailman - % cd ../rc3.d - % ln -s ../init.d/mailman S98mailman - % cd ../rc4.d - % ln -s ../init.d/mailman S98mailman - % cd ../rc5.d - % ln -s ../init.d/mailman S98mailman - % cd ../rc6.d - % ln -s ../init.d/mailman K12mailman -\end{verbatim} - -\section{Check the hostname settings} - -You should check the values for \var{DEFAULT_EMAIL_HOST} and -\var{DEFAULT_URL_HOST} in \file{Defaults.py}. Make any necessary changes in -the \file{mm_cfg.py} file, \strong{not} in the \file{Defaults.py} file. If you -change either of these two values, you'll want to add the following afterwards -in the \file{mm_cfg.py} file: - -\begin{verbatim} - add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) -\end{verbatim} - -You will want to run the \program{bin/fix_url.py} to change the domain of any -existing lists. - -\section{Create the site password} - -There are two site-wide passwords that you can create from the command line, -using the \program{bin/mmsitepass} script. The first is the ``site password'' -which can be used anywhere a password is required in the system. The site -password will get you into the administration page for any list, and it can be -used to log in as any user. Think \code{root} for a Unix system, so pick this -password wisely! - -The second password is a site-wide ``list creator'' password. You can use -this to delegate the ability to create new mailing lists without providing all -the privileges of the site password. Of course, the owner of the site -password can also create new mailing lists, but the list creator password is -limited to just that special role. - -To set the site password, use this command: - -\begin{verbatim} - % $prefix/bin/mmsitepass <your-site-password> -\end{verbatim} - -To set the list creator password, use this command: - -\begin{verbatim} - % $prefix/bin/mmsitepass -c <list-creator-password> -\end{verbatim} - -It is okay not to set a list creator password, but you probably do want a site -password. - -\section{Create your first mailing list} - -For more detailed information about using Mailman, including creating and -configuring mailing lists, see the Mailman List Adminstration Manual. These -instructions provide a quick guide to creating your first mailing list via the -web interface: - -\begin{itemize} -\item Start by visiting the url \code{http://my.dom.ain/mailman/create}. - -\item Fill out the form as described in the on-screen instructions, and in the - ``List creator's password'' field, type the password you entered in - section \ref{customizing}. Type your own email address for the - ``Initial list owner address'', and select ``Yes'' to notify the list - administrator. - -\item Click on the ``Create List'' button. - -\item Check your email for a message from Mailman informing you that your new - mailing list was created. - -\item Now visit the list's administration page, either by following the link - on the confirmation web page or clicking on the link from the email - Mailman just sent you. Typically the url will be something like - \code{http://my.dom.ain/mailman/admin/mylist}. - -\item Type in the list's password and click on ``Let me in...'' - -\item Click on ``Membership Management'' and then on ``Mass Subscription''. - -\item Enter your email address in the big text field, and click on ``Submit - Your Changes''. - -\item Now go to your email and send a message to \code{mylist@my.dom.ain}. - Within a minute or two you should see your message reflected back to you - via Mailman. -\end{itemize} - -Congratulations! You've just set up and tested your first Mailman mailing -list. If you had any problems along the way, please see the -\ref{troubleshooting} section. - -\section{Troubleshooting\label{troubleshooting}} - -If you encounter problems with running Mailman, first check the question and -answer section below. If your problem is not covered there, check the -\ulink{online help}{http://www.list.org/help.html}, including the -\ulink{FAQ}{http://www.list.org/faq.html} and the -\ulink{interactive FAQ wizard}{http://www.python.org/cgi-bin/faqw-mm.py}. - -Also check for errors in your syslog files, your mail and web server log files -and in Mailman's \file{\var{\$prefix}/logs/error} file. If you're still -having problems, you should send a message to the -\email{mailman-users@python.org} mailing list\footnote{You must subscribe to -this mailing list in order to post to it, but the mailing list's archives are -publicly visible.}; see -\url{http://mail.python.org/mailman/listinfo/mailman-users} for more -information. - -Be sure to including information on your operating system, which version of -Python you're using, and which version of Mailman you're installing. - -Here is a list of some common questions and answers: - -\begin{itemize} - -\item \strong{Problem:} All Mailman web pages give a 404 File not found - error. - - \strong{Solution:} Your web server has not been set up properly for - handling Mailman's CGI programs. Make sure you have: - - \begin{enumerate} - \item configured the web server to give permissions to - \file{\var{\$prefix}/cgi-bin} - - \item restarted the web server properly. - \end{enumerate} - - Consult your web server's documentation for instructions on how to do - check these issues. - -\item \strong{Problem:} All Mailman web pages give an "Internal Server - Error". - - \strong{Solution:} The likely problem is that you are using the wrong - user or group for the CGI scripts. Check your web server's log files. - If you see a line like - - \begin{verbatim} - Attempt to exec script with invalid gid 51, expected 99 - \end{verbatim} - - you will need to reinstall Mailman, specifying the proper CGI group id, - as described in the \label{building} section. - -\item \strong{Problem:} I send mail to the list, and get back mail saying the - list is not found! - - \strong{Solution:} You probably didn't add the necessary aliases to the - system alias database, or you didn't properly integrate Mailman with - your mail server. Perhaps you didn't update the alias database, or your - system requires you to run \program{newaliases} explicitly. Refer to - your server specific instructions in the \ref{mail-server} section. - -\item \strong{Problem:} I send mail to the list, and get back mail saying, - ``unknown mailer error''. - - \strong{Solution:} The likely problem is that you are using the wrong - user or group id for the mail wrappers. Check your mail server's log - files; if you see a line like - - \begin{verbatim} - Attempt to exec script with invalid gid 51, expected 99 - \end{verbatim} - - you will need to reinstall Mailman, specifying the proper mail group id - as described in the \label{building} section. - -\item \strong{Problem:} I use Postfix as my mail server and the mail wrapper - programs are logging complaints about the wrong GID. - - \strong{Solution:} Make sure the \file{\var{\$prefix}/data/aliases.db} - file is user owned by \code{mailman} (or whatever user name you used - in the \program{configure} command). If this file is not user owned by - \code{mailman}, Postfix will not run the mail programs as the correct - user. - -\item \strong{Problem:} I use Sendmail as my mail server, and when I send mail - to the list, I get back mail saying, ``sh: mailman not available for - sendmail programs''. - - \strong{Solution:} Your system uses the Sendmail restricted shell - (smrsh). You need to configure smrsh by creating a symbolic link from - the mail wrapper (\file{\var{\$prefix}/mail/mailman}) to the directory - identifying executables allowed to run under smrsh. - - Some common names for this directory are \file{/var/admin/sm.bin}, - \file{/usr/admin/sm.bin} or \file{/etc/smrsh}. - - Note that on Debian Linux, the system makes \file{/usr/lib/sm.bin}, - which is wrong, you will need to create the directory - \file{/usr/admin/sm.bin} and add the link there. Note further any - aliases \program{newaliases} spits out will need to be adjusted to point - to the secure link to the wrapper. - -\item \strong{Problem:} I messed up when I called \program{configure}. How - do I clean things up and re-install? - - \strong{Solution:} - - \begin{verbatim} - % make clean - % ./configure --with-the-right-options - % make install - \end{verbatim} - -\end{itemize} - -\section{Platform and operating system notes} - -Generally, Mailman runs on any POSIX-based system, such as Solaris, the -various BSD variants, Linux systems, MacOSX, and other generic \UNIX{} -systems. It doesn't run on Windows. For the most part, the generic -instructions given in this document should be sufficient to get Mailman -working on any supported platform. Some operating systems have additional -recommended installation or configuration instructions. - -\subsection{GNU/Linux issues} - -Linux seems to be the most popular platform for running Mailman. Here are -some hints on getting Mailman to run on Linux: - -\begin{itemize} -\item If you are getting errors with hard link creations and/or you are using - a special secure kernel (securelinux/openwall/grsecurity), see the file - \file{contrib/README.check_perms_grsecurity} in the Mailman source - distribution. - - Note that if you are using Linux Mandrake in secure mode, you are - probably concerned by this. - -\item Apparently Mandrake 9.0 changed the permissions on gcc, so if you build - as the \code{mailman} user, you need to be sure \code{mailman} is in the - \code{cctools} group. - -\item If you installed Python from your Linux distribution's package manager - (e.g. .rpms for Redhat-derived systems or .deb for Debian), you must - install the ``development'' package of Python, or you may not get - everything you need. - - For example, using Python 2.2 on Debian, you will need to install the - \code{python2.2-dev} package. On Redhat, you probably need the - \code{python2-devel} package. - - If you install Python from source, you should be fine. - - One symptom of this problem, although for unknown reasons, is that you - might get an error such as this during your install: - - \begin{verbatim} - Traceback (most recent call last): - File "bin/update", line 44, in ? - import paths - ImportError: No module named paths - make: *** [update] Error 1 - \end{verbatim} - - If this happens, install the Python development package and try - \program{configure} and \program{make install} again. Or install the - latest version of Python from source, available from - \url{http://www.python.org}. - - This problem can manifest itself in other Linux distributions in - different ways, although usually it appears as \code{ImportErrors}. -\end{itemize} - -\subsection{BSD issues\label{bsd-issues}} - -Vivek Khera writes that some BSDs do nightly security scans for setuid file -changes. setgid directories also come up on the scan when they change. Also, -the setgid bit is not necessary on BSD systems because group ownership is -automatically inherited on files created in directories. On other \UNIX{}es, -this only happens when the directory has the setgid bit turned on. - -To install without turning on the setgid bit on directories, simply pass in -the \var{DIRSETGID} variable to \program{make}, after you've run -\program{configure}: - -\begin{verbatim} - % make DIRSETGID=: install -\end{verbatim} - -This disables the \program{chmod g+s} command on installed directories. - -\subsection{MacOSX issues} - -Many people run Mailman on MacOSX. Here are some pointers that have been -collected on getting Mailman to run on MacOSX. - -\begin{itemize} -\item Jaguar (MacOSX 10.2) comes with Python 2.2. While this isn't the very - latest stable version of Python, it ought to be sufficient to run - Mailman 2.1. - -\item David B. O'Donnell has a web page describing his configuration of - Mailman 2.0.13 and Postfix on MacOSX Server. - - \url{http://www.afp548.com/Articles/mail/python-mailman.html} - -\item Kathleen Webb posted her experiences in getting Mailman running on - Jaguar using Sendmail. - - \url{http://mail.python.org/pipermail/mailman-users/2002-October/022944.html} - -\item Panther server (MacOSX 10.3) comes with Mailman; Your operating system - should contain documentation that will help you, and Apple has a tech - document about a problem you might encounter running Mailman on Mac OS X - Server 10.3: - - \url{http://docs.info.apple.com/article.html?artnum=107889} -\end{itemize} - -Terry Allen provides the following detailed instructions on running Mailman on -the 'client' version of OSX, or in earlier versions of OSX: - -Mac OSX 10.3 and onwards has the basics for a successful Mailman installation. -Users of earlier versions of Mac OSX contains Sendmail and those users should -look at the Sendmail installation section for tips. You should follow the -basic installation steps as described earlier in this manual, substituting as -appropriate, the steps outlined in this section. - -By default, Mac OSX 10.3 'client' version does not have a fully functional -version of Postfix. Setting up a working MTA such as Postfix is beyond the -scope of this guide and you should refer to \url{http://www.postfix.org} for -tips on getting Postfix running. An easy way to set Postfix up is to install -and run Postfix Enabler, a stand-alone tool for configuring Postfix on Mac -OSX, available from -\url{http://www.roadstead.com/weblog/Tutorials/PostfixEnabler.html}. - -Likewise, Mac OSX 'client' version from 10.1 onwards includes a working Apache -webserver. This is switched on using the System Preferences control panel -under the 'Sharing tab'. A useful tool for configuring the Apache on Mac OSX -is Webmin, which can be obtained from -\url{http://www.webmin.com}. - -Webmin can also perform configuration for other system tasks, including -Postfix, adding jobs to your crontab, adding user and groups, plus adding -startup and shutdown jobs. - -In a stock installation of OSX, the requirement for Mailman is to have Python -installed. Python is not installed by default, so it is advised that you -install the developer's tools package, which may have been provided with your -system. It can also be downloaded from the Apple developer site at -\url{http://connect.apple.com}. Not only is the developer tools package an -essential requirement for installing Mailman, but it will come in handy at a -later date should you need other tools. The developer's tools are also know -by the name XCode tools. - -As a minimum, the Python version should be 2.2, but 2.3 is recommended. - -If you wish to add a user and group using the command line in OSX instead of -via Webmin or another GUI interface, open your terminal application and follow -the commands as indicated below - do not type the comments following the -\samp{\#} since they are just notes: - -\begin{verbatim} -sudo tcsh -niutil -create / /users/mailman -niutil -createprop / /users/mailman name mailman -# Note that xxx is a free user ID number on your system -niutil -createprop / /users/mailman uid xxx -niutil -createprop / /users/mailman home /usr/local/mailman -mkdir -p /usr/local/mailman -niutil -createprop / /users/mailman shell /bin/tcsh -passwd mailman -# To prevent malicious hacking, supply a secure password here -niutil -create / /groups/mailman -niutil -createprop / /groups/mailman name mailman -# Note that xxx is a free group ID number on your system -niutil -createprop / /groups/mailman gid xxx -niutil -createprop / /groups/mailman passwd '*' -niutil -createprop / /groups/mailman users 'mailman' -chown mailman:mailman /usr/local/mailman -cd /usr/local/mailman -chmod a+rx,g+ws . -exit -su mailman -\end{verbatim} - -For setting up Apache on OSX to handle Mailman, the steps are almost identical -and the configuration file on a stock Mac OSX Client version is stored in the -nearly standard location of \file{/etc/httpd/httpd.conf}. - -The \ulink{AFP548.com}{http://www.afp548.com} site has a time-saving automated startup item creator for -Mailman, which can be found at -\url{http://www.afp548.com/Software/MailmanStartup.tar.gz} - -To install it, copy it into your \file{/Library/StartupItems} directory. As -the root or superuser, from the terminal, enter the following: - -\begin{verbatim} -gunzip MailmanStartup.tar.gz -tar xvf MailmanStartup.tar -\end{verbatim} - -It will create the startup item for you so that when you reboot, Mailman will -start up. - -\end{document} diff --git a/doc/mailman-install.txt b/doc/mailman-install.txt new file mode 100644 index 00000000..ab2f4af5 --- /dev/null +++ b/doc/mailman-install.txt @@ -0,0 +1,1558 @@ + #GNU mailman - installation Manual About this document... About this + document... + + Previous Page Up one Level Next Page GNU Mailman - Installation Manual + __________________________________________________________________ + +GNU Mailman - Installation Manual + + Barry Warsaw + + barry (at) list dot org + + Release 2.1 + December 5, 2007 + + Front Matter + + Abstract: + + This document describes how to install GNU Mailman on a POSIX-based + system such as Unix, MacOSX, or GNU/Linux. It will cover basic + installation instructions, as well as guidelines for integrating + Mailman with your web and mail servers. + + The GNU Mailman website is at http://www.list.org + + 1 Installation Requirements + + Please note that the information on this page may be out of date. Check + for the latest installation information on the Mailman wiki. + + GNU Mailman works on most POSIX-based systems such as Unix, MacOSX, or + GNU/Linux. It does not currently work on Windows. You must have a mail + server that you can send messages to, and a web server that supports + the CGI/1.1 API. Apache makes a fine choice for web server, and mail + servers such as Postfix, Exim, Sendmail, and qmail should work just + fine. + + To install Mailman from source, you will need an ANSI C compiler to + build Mailman's security wrappers. The GNU C compiler gcc works well. + + You must have the Python interpreter installed somewhere on your + system. As of this writing, Python 2.4.4 is recommended, but see the + wiki page above for the latest information. + + 2 Set up your system + + Before installing Mailman, you need to prepare your system by adding + certain users and groups. You will need to have root privileges to + perform the steps in this section. + +2.1 Add the group and user + + Mailman requires a unique user and group name which will own its files, + and under which its processes will run. Mailman's basic security is + based on group ownership permissions, so it's important to get this + step right^1. Typically, you will add a new user and a new group, both + called mailman. The mailman user must be a member of the mailman group. + Mailman will be installed under the mailman user and group, with the + set-group-id (setgid) bit enabled. + + If these names are already in use, you can choose different user and + group names, as long as you remember these when you run configure. If + you choose a different unique user name, you will have to specify this + with configure's --with-username option, and if you choose a different + group name, you will have to specify this with configure's + --with-groupname option. + + On Linux systems, you can use the following commands to create these + accounts. Check your system's manual pages for details: + + % groupadd mailman + % useradd -c''GNU Mailman'' -s /no/shell -d /no/home -g mailman mailman + +2.2 Create the installation directory + + Typically, Mailman is installed into a single directory, which includes + both the Mailman source code and the run-time list and archive data. It + is possible to split the static program files from the variable data + files and install them in separate directories. This section will + describe the available options. + + The default is to install all of Mailman to /usr/local/mailman^2. You + can change this base installation directory (referred to here as + $prefix) by specifying the directory with the --prefix configure + option. If you're upgrading from a previous version of Mailman, you may + want to use the --prefix option unless you move your mailing lists. + + Warning: You cannot install Mailman on a filesystem that is mounted + with the nosuid option. This will break Mailman, which relies on setgid + programs for its security. If this describes your environment, simply + install Mailman in a location that allows setgid programs. + + Make sure the installation directory is set to group mailman (or + whatever you're going to specify with --with-groupname) and has the + setgid bit set^3. You probably also want to guarantee that this + directory is readable and executable by everyone. For example, these + shell commands will accomplish this: + + % cd $prefix + % chgrp mailman . + % chmod a+rx,g+ws . + + You are now ready to configure and install the Mailman software. + + 3 Build and install Mailman + +3.1 Run configure + + Before you can install Mailman, you must run configure to set various + installation options your system might need. + + Note: Take special note of the --with-mail-gid and --with-cgi-gid + options below. You will probably need to use these. + + You should not be root while performing the steps in this section. Do + them under your own login, or whatever account you typically use to + install software. You do not need to do these steps as user mailman, + but you could. However, make sure that the login used is a member of + the mailman group as that that group has write permissions to the + $prefix directory made in the previous step. You must also have + permission to create a setgid file in the file system where it resides + (NFS and other mounts can be configured to inhibit setgid settings). + + If you've installed other GNU software, you should be familiar with the + configure script. Usually you can just cd to the directory you unpacked + the Mailman source tarball into, and run configure with no arguments: + + % cd mailman-<version> + % ./configure + % make install + + The following options allow you to customize your Mailman installation. + + --prefix=dir + Standard GNU configure option which changes the base directory + that Mailman is installed into. By default $prefix is + /usr/local/mailman. This directory must already exist, and be + set up as described in 2.2. + + --exec-prefix=dir + Standard GNU configure option which lets you specify a different + installation directory for architecture dependent binaries. + + --with-var-prefix=dir + Store mutable data under dir instead of under the $prefix or + $exec_prefix. Examples of such data include the list archives + and list settings database. + + --with-python=/path/to/python + Specify an alternative Python interpreter to use for the wrapper + programs. The default is to use the interpreter found first on + your shell's $PATH. + + --with-username=username-or-uid + Specify a different username than mailman. The value of this + option can be an integer user id or a user name. Be sure your + $prefix directory is owned by this user. + + --with-groupname=groupname-or-gid + Specify a different groupname than mailman. The value of this + option can be an integer group id or a group name. Be sure your + $prefix directory is group-owned by this group. + + --with-mail-gid=group-or-groups + Specify an alternative group for running scripts via the mail + wrapper. group-or-groups can be a list of one or more integer + group ids or symbolic group names. The first value in the list + that resolves to an existing group is used. By default, the + value is the list mailman, other, mail, and daemon. + + Note: This is highly system dependent and you must get this + right, because the group id is compiled into the mail wrapper + program for added security. On systems using sendmail, the + sendmail.cf configuration file designates the group id of + sendmail processes using the DefaultUser option. (If commented + out, it still may be indicating the default...) + + Check your mail server's documentation and configuration files + to find the right value for this switch. + + --with-cgi-gid=group-or-groups + Specify an alternative group for running scripts via the CGI + wrapper. group-or-groups can be a list of one or more integer + group ids or symbolic group names. The first value in the list + that resolves to an existing group is used. By default, the + value is the the list www, www-data, and nobody. + + Note: The proper value for this is dependent on your web server + configuration. You must get this right, because the group id is + compiled into the CGI wrapper program for added security, and no + Mailman CGI scripts will run if this is incorrect. + + If you're using Apache, check the values for the Group option in + your httpd.conf file. + + --with-cgi-ext=extension + Specify an extension for cgi-bin programs. The CGI wrappers + placed in $prefix/cgi-bin will have this extension (some web + servers require an extension). extension must include the + leading dot. + + --with-mailhost=hostname + Specify the fully qualified host name part for outgoing email. + After the installation is complete, this value can be overriden + in $prefix/Mailman/mm_cfg.py. + + --with-urlhost=hostname + Specify the fully qualified host name part of urls. After the + installation is complete, this value can be overriden in + $prefix/Mailman/mm_cfg.py. + + --with-gcc=no + Don't use gcc, even if it is found. In this case, cc must be + found on your $PATH. + +3.2 Make and install + + Once you've run configure, you can simply run make, then make install + to build and install Mailman. + + 4 Check your installation + + After you've run make install, you should check that your installation + has all the correct permissions and group ownerships by running the + check_perms script. First change to the installation (i.e. $prefix) + directory, then run the bin/check_perms program. Don't try to run + bin/check_perms from the source directory; it will only run from the + installation directory. + + If this reports no problems, then it's very likely <wink> that your + installation is set up correctly. If it reports problems, then you can + either fix them manually, re-run the installation, or use + bin/check_perms to fix the problems (probably the easiest solution): + + * You need to become the user that did the installation, and that + owns all the files in $prefix, or root. + * Run bin/check_perms -f + * Repeat previous step until no more errors are reported! + + Warning: If you're running Mailman on a shared multiuser system, and + you have mailing lists with private archives, you may want to hide the + private archive directory from other users on your system. In that + case, you should drop the other execute permission (o-x) from the + archives/private directory. However, the web server process must be + able to follow the symbolic link in public directory, otherwise your + public Pipermail archives will not work. To set this up, become root + and run the following commands: + +# cd <prefix>/archives +# chown <web-server-user> private +# chmod o-x private + + You need to know what user your web server runs as. It may be www, + apache, httpd or nobody, depending on your server's configuration. + + 5 Set up your web server + + Congratulations! You've installed the Mailman software. To get + everything running you need to hook Mailman up to both your web server + and your mail system. + + If you plan on running your mail and web servers on different machines, + sharing Mailman installations via NFS, be sure that the clocks on those + two machines are synchronized closely. You might take a look at the + file Mailman/LockFile.py; the constant CLOCK_SLOP helps the locking + mechanism compensate for clock skew in this type of environment. + + This section describes some of the things you need to do to connect + Mailman's web interface to your web server. The instructions here are + somewhat geared toward the Apache web server, so you should consult + your web server documentation for details. + + You must configure your web server to enable CGI script permission in + the $prefix/cgi-bin to run CGI scripts. The line you should add might + look something like the following, with the real absolute directory + substituted for $prefix, of course: + + Exec /mailman/* $prefix/cgi-bin/* + + or: + + ScriptAlias /mailman/ $prefix/cgi-bin/ + + Warning: You want to be very sure that the user id under which your CGI + scripts run is not in the mailman group you created above, otherwise + private archives will be accessible to anyone. + + Copy the Mailman, Python, and GNU logos to a location accessible to + your web server. E.g. with Apache, you've usually got an icons + directory that you can drop the images into. For example: + + % cp $prefix/icons/*.{jpg,png} /path/to/apache/icons + + You then want to add a line to your $prefix/Mailman/mm_cfg.py file + which sets the base URL for the logos. For example: + + IMAGE_LOGOS = '/images/' + + The default value for IMAGE_LOGOS is /icons/. Read the comment in + Defaults.py.in for details. + + Configure your web server to point to the Pipermail public mailing list + archives. For example, in Apache: + + Alias /pipermail/ $varprefix/archives/public/ + + where $varprefix is usually $prefix unless you've used the + --with-var-prefix option to configure. Also be sure to configure your + web server to follow symbolic links in this directory, otherwise public + Pipermail archives won't be accessible. For Apache users, consult the + FollowSymLinks option. + + If you're going to be supporting internationalized public archives, you + will probably want to turn off any default charset directive for the + Pipermail directory, otherwise your multilingual archive pages won't + show up correctly. Here's an example for Apache, based on the standard + installation directories: + + <Directory "/usr/local/mailman/archives/public/"> + AddDefaultCharset Off + </Directory> + + Now restart your web server. + + 6 Set up your mail server + + This section describes some of the things you need to do to connect + Mailman's email interface to your mail server. The instructions here + are different for each mail server; if your mail server is not + described in the following subsections, try to generalize from the + existing documentation, and consider contributing documentation updates + to the Mailman developers. + +6.1 Using the Postfix mail server + + Mailman should work pretty much out of the box with a standard Postfix + installation. It has been tested with various Postfix versions up to + and including Postfix 2.1.5. + + In order to support Mailman's optional VERP delivery, you will want to + disable luser_relay (the default) and you will want to set + recipient_delimiter for extended address semantics. You should comment + out any luser_relay value in your main.cf and just go with the + defaults. Also, add this to your main.cf file: + + recipient_delimiter = + + + Using "+" as the delimiter works well with the default values for + VERP_FORMAT and VERP_REGEXP in Defaults.py. + + When attempting to deliver a message to a non-existent local address, + Postfix may return a 450 error code. Since this is a transient error + code, Mailman will continue to attempt to deliver the message for + DELIVERY_RETRY_PERIOD - 5 days by default. You might want to set + Postfix up so that it returns permanent error codes for non-existent + local users by adding the following to your main.cf file: + + unknown_local_recipient_reject_code = 550 + + Finally, if you are using Postfix-style virtual domains, read the + section on virtual domain support below. + + 6.1.1 Integrating Postfix and Mailman + + You can integrate Postfix and Mailman such that when new lists are + created, or lists are removed, Postfix's alias database will be + automatically updated. The following are the steps you need to take to + make this work. + + In the description below, we assume that you've installed Mailman in + the default location, i.e. /usr/local/mailman. If that's not the case, + adjust the instructions according to your use of configure's --prefix + and --with-var-prefix options. + + Note: If you are using virtual domains and you want Mailman to honor + your virtual domains, read the 6.1 section below first! + + * Add this to the bottom of the $prefix/Mailman/mm_cfg.py file: + MTA = 'Postfix' + + The MTA variable names a module in the Mailman/MTA directory which + contains the mail server-specific functions to be executed when a + list is created or removed. + * Look at the Defaults.py file for the variables POSTFIX_ALIAS_CMD + and POSTFIX_MAP_CMD command. Make sure these point to your + postalias and postmap programs respectively. Remember that if you + need to make changes, do it in mm_cfg.py. + * Run the bin/genaliases script to initialize your aliases file. + % cd /usr/local/mailman + % bin/genaliases + + Make sure that the owner of the data/aliases and data/aliases.db + file is mailman, that the group owner for those files is mailman, + or whatever user and group you used in the configure command, and + that both files are group writable: + % su + % chown mailman:mailman data/aliases* + % chmod g+w data/aliases* + + * Hack your Postfix's main.cf file to include the following path in + your alias_maps variable: + /usr/local/mailman/data/aliases + + Note that there should be no trailing .db. Do not include this in + your alias_database variable. This is because you do not want + Postfix's newaliases command to modify Mailman's aliases.db file, + but you do want Postfix to consult aliases.db when looking for + local addresses. + You probably want to use a hash: style database for this entry. + Here's an example: + alias_maps = hash:/etc/postfix/aliases, + hash:/usr/local/mailman/data/aliases + + * When you configure Mailman, use the --with-mail-gid=mailman switch; + this will be the default if you configured Mailman after adding the + mailman owner. Because the owner of the aliases.db file is mailman, + Postfix will execute Mailman's wrapper program as uid and gid + mailman. + + That's it! One caveat: when you add or remove a list, the aliases.db + file will updated, but it will not automatically run postfix reload. + This is because you need to be root to run this and suid-root scripts + are not secure. The only effect of this is that it will take about a + minute for Postfix to notice the change to the aliases.db file and + update its tables. + + 6.1.2 Virtual domains + + Postfix 2.0 supports ``virtual alias domains'', essentially what used + to be called ``Postfix-style virtual domains'' in earlier Postfix + versions. To make virtual alias domains work with Mailman, you need to + do some setup in both Postfix and Mailman. Mailman will write all + virtual alias mappings to a file called, by default, + /usr/local/mailman/data/virtual-mailman. It will also use postmap to + create the virtual-mailman.db file that Postfix will actually use. + + First, you need to set up the Postfix virtual alias domains as + described in the Postfix documentation (see Postfix's virtual(5) + manpage). Note that it's your responsibility to include the + virtual-alias.domain anything line as described manpage; Mailman will + not include this line in virtual-mailman. You are highly encouraged to + make sure your virtual alias domains are working properly before + integrating with Mailman. + + Next, add a path to Postfix's virtual_alias_maps variable, pointing to + the virtual-mailman file, e.g.: + + virtual_alias_maps = <your normal virtual alias files>, + hash:/usr/local/mailman/data/virtual-mailman + + assuming you've installed Mailman in the default location. If you're + using an older version of Postfix which doesn't have the + virtual_alias_maps variable, use the virtual_maps variable instead. + + Next, in your mm_cfg.py file, you will want to set the variable + POSTFIX_STYLE_VIRTUAL_DOMAINS to the list of virtual domains that + Mailman should update. This may not be all of the virtual alias domains + that your Postfix installation supports! The values in this list will + be matched against the host_name attribute of mailing lists objects, + and must be an exact match. + + Here's an example. Say that Postfix is configured to handle the virtual + domains dom1.ain, dom2.ain, and dom3.ain, and further that in your + main.cf file you've got the following settings: + + myhostname = mail.dom1.ain + mydomain = dom1.ain + mydestination = $myhostname, localhost.$mydomain + virtual_alias_maps = + hash:/some/path/to/virtual-dom1, + hash:/some/path/to/virtual-dom2, + hash:/some/path/to/virtual-dom2 + + If in your virtual-dom1 file, you've got the following lines: + + dom1.ain IGNORE + @dom1.ain @mail.dom1.ain + + this tells Postfix to deliver anything addressed to dom1.ain to the + same mailbox at mail.dom1.com, its default destination. + + In this case you would not include dom1.ain in + POSTFIX_STYLE_VIRTUAL_DOMAINS because otherwise Mailman will write + entries for mailing lists in the dom1.ain domain as + + mylist@dom1.ain mylist + mylist-request@dom1.ain mylist-request + # and so on... + + The more specific entries trump your more general entries, thus + breaking the delivery of any dom1.ain mailing list. + + However, you would include dom2.ain and dom3.ain in mm_cfg.py: + + POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain'] + + Now, any list that Mailman creates in either of those two domains, will + have the correct entries written to + /usr/local/mailman/data/virtual-mailman. + + As above with the data/aliases* files, you want to make sure that both + data/virtual-mailman and data/virtual-mailman.db are user and group + owned by mailman. + + 6.1.3 An alternative approach + + Fil fil@rezo.net has an alternative approach based on virtual maps and + regular expressions, as described at: + + * (French) http://listes.rezo.net/comment.php + * (English) http://listes.rezo.net/how.php + + This is a good (and simpler) alternative if you don't mind exposing an + additional hostname in the domain part of the addresses people will use + to contact your list. I.e. if people should use mylist@lists.dom.ain + instead of mylist@dom.ain. + +6.2 Using the Exim mail server + + Note: This section is derived from Nigel Metheringham's ``HOWTO - Using + Exim and Mailman together'', which covers Mailman 2.0.x and Exim 3. It + has been updated to cover Mailman 2.1 and Exim 4. The original document + is here: http://www.exim.org/howto/mailman.html. + + There is no Mailman configuration needed other than the standard + options detailed in the Mailman install documentation. The Exim + configuration is transparent to Mailman. The user and group settings + for Mailman must match those in the config fragments given below. + + 6.2.1 Exim configuration + + The Exim configuration is built so that a list created within Mailman + automatically appears to Exim without the need for defining any + additional aliases. + + The drawback of this configuration is that it will work poorly on + systems supporting lists in several different mail domains. While + Mailman handles virtual domains, it does not yet support having two + distinct lists with the same name in different virtual domains, using + the same Mailman installation. This will eventually change. (But see + below for a variation on this scheme that should accommodate virtual + domains better.) + + The configuration file excerpts below are for use in an already + functional Exim configuration, which accepts mail for the domain in + which the list resides. If this domain is separate from the others + handled by your Exim configuration, then you'll need to: + + * add the list domain, ``my.list.domain'' to local_domains + * add a ``domains=my.list.domain'' option to the director (router) + for the list + * (optional) exclude that domain from your other directors (routers) + + Note: The instructions in this document should work with either Exim 3 + or Exim 4. In Exim 3, you must have a local_domains configuration + setting; in Exim 4, you most likely have a local_domains domainlist. If + you don't, you probably know what you're doing and can adjust + accordingly. Similarly, in Exim 4 the concept of ``directors'' has + disappeared - there are only routers now. So if you're using Exim 4, + whenever this document says ``director'', read ``router''. + + Whether you are using Exim 3 or Exim 4, you will need to add some + macros to the main section of your Exim config file. You will also need + to define one new transport. With Exim 3, you'll need to add a new + director; with Exim 4, a new router plays the same role. + + Finally, the configuration supplied here should allow co-habiting + Mailman 2.0 and 2.1 installations, with the proviso that you'll + probably want to use mm21 in place of mailman - e.g., MM21_HOME, + mm21_transport, etc. + + 6.2.2 Main configuration settings + + First, you need to add some macros to the top of your Exim config file. + These just make the director (router) and transport below a bit + cleaner. Obviously, you'll need to edit these based on how you + configured and installed Mailman. + + # Home dir for your Mailman installation -- aka Mailman's prefix + # directory. + MAILMAN_HOME=/usr/local/mailman + MAILMAN_WRAP=MAILMAN_HOME/mail/mailman + + # User and group for Mailman, should match your --with-mail-gid + # switch to Mailman's configure script. + MAILMAN_USER=mailman + MAILMAN_GROUP=mailman + + 6.2.3 Transport for Exim 3 + + Add this to the transports section of your Exim config file, i.e. + somewhere between the first and second ``end'' line: + + mailman_transport: + driver = pipe + command = MAILMAN_WRAP \ + '${if def:local_part_suffix \ + {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ + {post}}' \ + $local_part + current_directory = MAILMAN_HOME + home_directory = MAILMAN_HOME + user = MAILMAN_USER + group = MAILMAN_GROUP + + 6.2.4 Director for Exim 3 + + If you're using Exim 3, you'll need to add the following director to + your config file (directors go between the second and third ``end'' + lines). Also, don't forget that order matters - e.g. you can make + Mailman lists take precedence over system aliases by putting this + director in front of your aliasfile director, or vice-versa. + + # Handle all addresses related to a list 'foo': the posting address. + # Automatically detects list existence by looking + # for lists/$local_part/config.pck under MAILMAN_HOME. + mailman_director: + driver = smartuser + require_files = MAILMAN_HOME/lists/$local_part/config.pck + suffix_optional + suffix = -bounces : -bounces+* : \ + -confirm+* : -join : -leave : \ + -owner : -request : -admin + transport = mailman_transport + + 6.2.5 Router for Exim 4 + + In Exim 4, there's no such thing as directors - you need to add a new + router instead. Also, the canonical order of the configuration file was + changed so routers come before transports, so the router for Exim 4 + comes first here. Put this router somewhere after the ``begin routers'' + line of your config file, and remember that order matters. + + mailman_router: + driver = accept + require_files = MAILMAN_HOME/lists/$local_part/config.pck + local_part_suffix_optional + local_part_suffix = -bounces : -bounces+* : \ + -confirm+* : -join : -leave : \ + -owner : -request : -admin + transport = mailman_transport + + 6.2.6 Transports for Exim 4 + + The transport for Exim 4 is the same as for Exim 3 (see 6.2; just copy + the transport given above to somewhere under the ``begin transports'' + line of your Exim config file. + + 6.2.7 Additional notes + + Exim should be configured to allow reasonable volume - e.g. don't set + max_recipients down to a silly value - and with normal degrees of + security - specifically, be sure to allow relaying from 127.0.0.1, but + pretty much nothing else. Parallel deliveries and other tweaks can also + be used if you like; experiment with your setup to see what works. + Delay warning messages should be switched off or configured to only + happen for non-list mail, unless you like receiving tons of mail when + some random host is down. + + 6.2.8 Problems + + * Mailman will send as many MAIL FROM/RCPT TO as it needs. It may + result in more than 10 or 100 messages sent in one connection, + which will exceed the default value of Exim's + smtp_accept_queue_per_connection value. This is bad because it will + cause Exim to switch into queue mode and severely delay delivery of + your list messages. The way to fix this is to set Mailman's + SMTP_MAX_SESSIONS_PER_CONNECTION (in $prefix/Mailman/mm_cfg.py) to + a smaller value than Exim's smtp_accept_queue_per_connection. + * Mailman should ignore Exim delay warning messages, even though Exim + should never send this to list messages. Mailman 2.1's general + bounce detection and VERP support should greatly improve the bounce + detector's hit rates. + * List existence is determined by the existence of a config.pck file + for a list. If you delete lists by foul means, be aware of this. + * If you are getting Exim or Mailman complaining about user ids when + you send mail to a list, check that the MAILMAN_USER and + MAILMAN_GROUP match those of Mailman itself (i.e. what were used in + the configure script). Also make sure you do not have aliases in + the main alias file for the list. + + 6.2.9 Receiver Verification + + Exim's receiver verification feature is very useful - it lets Exim + reject unrouteable addresses at SMTP time. However, this is most useful + for externally-originating mail that is addressed to mail in one of + your local domains. For Mailman list traffic, mail originates on your + server, and is addressed to random external domains that are not under + your control. Furthermore, each message is addressed to many recipients + - up to 500 if you use Mailman's default configuration and don't tweak + SMTP_MAX_RCPTS. + + Doing receiver verification on Mailman list traffic is a recipe for + trouble. In particular, Exim will attempt to route every recipient + addresses in outgoing Mailman list posts. Even though this requires + nothing more than a few DNS lookups for each address, it can still + introduce significant delays. Therefore, you should disable recipient + verification for Mailman traffic. + + Under Exim 3, put this in your main configuration section: + + receiver_verify_hosts = !127.0.0.1 + + Under Exim 4, this is probably already taken care of for you by the + default recipient verification ACL statement (in the RCPT TO ACL): + + accept domains = +local_domains + endpass + message = unknown user + verify = recipient + + which only does recipient verification on addresses in your domain. + (That's not exactly the same as doing recipient verification only on + messages coming from non-127.0.0.1 hosts, but it should do the trick + for Mailman.) + + 6.2.10 SMTP Callback + + Exim's SMTP callback feature is an even more powerful way to detect + bogus sender addresses than normal sender verification. Unfortunately, + lots of servers send bounce messages with a bogus address in the + header, and there are plenty that send bounces with bogus envelope + senders (even though they're supposed to just use an empty envelope + sender for bounces). + + In order to ensure that Mailman can disable/remove bouncing addresses, + you generally want to receive bounces for Mailman lists, even if those + bounces are themselves not bounceable. Thus, you might want to disable + SMTP callback on bounce messages. + + With Exim 4, you can accomplish this using something like the following + in your RCPT TO ACL: + + # Accept bounces to lists even if callbacks or other checks would fail + warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes + condition = \ + ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ + {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ + {yes}{no}} + {yes}{no}} + + accept condition = \ + ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ + {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ + {yes}{no}} + {yes}{no}} + + # Now, check sender address with SMTP callback. + deny !verify = sender/callout=90s + + If you also do SMTP callbacks on header addresses, you'll want + something like this in your DATA ACL: + + deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback: + !verify = header_sender/callout=90s + + 6.2.11 Doing VERP with Exim and Mailman + + VERP will send one email, with a separate envelope sender (return + path), for each of your subscribers - read the information in + $prefix/Mailman/Defaults.py for the options that start with VERP. In a + nutshell, all you need to do to enable VERP with Exim is to add these + lines to $prefix/Mailman/mm_cfg.py: + + VERP_PASSWORD_REMINDERS = Yes + VERP_PERSONALIZED_DELIVERIES = Yes + VERP_DELIVERY_INTERVAL = Yes + VERP_CONFIRMATIONS = Yes + + (The director (router) above is smart enough to deal with VERP + bounces.) + + 6.2.12 Virtual Domains + + One approach to handling virtual domains is to use a separate Mailman + installation for each virtual domain. Currently, this is the only way + to have lists with the same name in different virtual domains handled + by the same machine. + + In this case, the MAILMAN_HOME and MAILMAN_WRAP macros are useless - + you can remove them. Change your director (router) to something like + this: + + require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck + + and change your transport like this: + + command = /virtual/${domain}/mailman/mail/mailman \ + ${if def:local_part_suffix \ + {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} + {post}} \ + $local_part + current_directory = /virtual/${domain}/mailman + home_directory = /virtual/${domain}/mailman + + 6.2.13 List Verification + + This is how a set of address tests for the Exim lists look on a working + system. The list in question is quixote-users@mems-exchange.org, and + these commands were run on the mems-exchange.org mail server ("% " + indicates the Unix shell prompt): + + % exim -bt quixote-users + quixote-users@mems-exchange.org + router = mailman_main_router, transport = mailman_transport + + % exim -bt quixote-users-request + quixote-users-request@mems-exchange.org + router = mailman_router, transport = mailman_transport + + % exim -bt quixote-users-bounces + quixote-users-bounces@mems-exchange.org + router = mailman_router, transport = mailman_transport + + % exim -bt quixote-users-bounces+luser=example.com + quixote-users-bounces+luser=example.com@mems-exchange.org + router = mailman_router, transport = mailman_transport + + If your exim -bt output looks something like this, that's a start: at + least it means Exim will pass the right messages to the right Mailman + commands. It by no means guarantees that your Exim/Mailman installation + is functioning perfectly, though! + + 6.2.14 Document History + + Originally written by Nigel Metheringham postmaster@exim.org. Updated + by Marc Merlin marc_soft@merlins.org for Mailman 2.1, Exim 4. + Overhauled/reformatted/clarified/simplified by Greg Ward + gward@python.net. + +6.3 Using the Sendmail mail server + + Warning: You may be tempted to set the DELIVERY_MODULE configuration + variable in mm_cfg.py to 'Sendmail' when using the Sendmail mail + server. Don't. The Sendmail.py module is misnamed - it's really a + command line based message handoff scheme as opposed to the SMTP scheme + used in SMTPDirect.py (the default). Sendmail.py has known security + holes and is provided as a proof-of-concept only^4. If you are having + problems using SMTPDirect.py fix those instead of using Sendmail.py, or + you may open your system up to security exploits. + + 6.3.1 Sendmail ``smrsh'' compatibility + + Many newer versions of Sendmail come with a restricted execution + utility called ``smrsh'', which limits the executables that Sendmail + will allow to be used as mail programs. You need to explicitly allow + Mailman's wrapper program to be used with smrsh or Mailman will not + work. If mail is not getting delivered to Mailman's wrapper program and + you're getting an ``operating system error'' in your mail syslog, this + could be your problem. + + One good way of enabling this is: + + * Find out where your Sendmail executes its smrsh wrapper + % grep smrsh /etc/mail/sendmail.cf + + * Figure out where smrsh expects symlinks for allowable mail + programs. At the very beginning of the following output you will + see a full path to some directory, e.g. /var/adm/sm.bin or similar: + % strings $path_to_smrsh | less + + * cd into /var/adm/sm.bin, or where ever it happens to reside on your + system - alternatives include /etc/smrsh, /var/smrsh and + /usr/local/smrsh. + % cd /var/adm/sm.bin + + * Create a symbolic link to Mailman's wrapper program: + % ln -s /usr/local/mailman/mail/mailman mailman + + 6.3.2 Integrating Sendmail and Mailman + + David Champion has contributed a recipe for more closely integrating + Sendmail and Mailman, such that Sendmail will automatically recognize + and deliver to new mailing lists as they are created, without having to + manually edit alias tables. + + In the contrib directory of Mailman's source distribution, you will + find four files: + + * mm-handler.readme - an explanation of how to set everything up + * mm-handler - the mail delivery agent (MDA) + * mailman.mc - a toy configuration file sample + * virtusertable - a sample for RFC 2142 address exceptions + + 6.3.3 Performance notes + + One of the surest performance killers for Sendmail users is when + Sendmail is configured to synchronously verify the recipient's host via + DNS. If it does this for messages posted to it from Mailman, you will + get horrible performance. Since Mailman usually connects via localhost + (i.e. 127.0.0.1) to the SMTP port of Sendmail, you should be sure to + configure Sendmail to not do DNS verification synchronously for + localhost connections. + +6.4 Using the Qmail mail server + + There are some issues that users of the qmail mail transport agent have + encountered. None of the core maintainers use qmail, so all of this + information has been contributed by the Mailman user community, + especially Martin Preishuber and Christian Tismer, with notes by Balazs + Nagy (BN) and Norbert Bollow (NB). + + * You might need to set the mail-gid user to either qmail, mailman, + or nofiles by using the --with-mail-gid configure option. + BN: it highly depends on your mail storing policy. For example if + you use the simple ~alias/.qmail-* files, you can use `id -g + alias`. But if you use /var/qmail/users, the specified mail gid can + be used. + If you are going to be directing virtual domains directly to the + mailman user (using ``virtualdomains'' on a list-only domain, for + example), you will have to use --with-mail-gid=gid of mailman + user's group. This is incompatible with having list aliases in + ~alias, unless that alias simply forwards to mailman-listname*. + * If there is a user mailman on your system, the alias mailman-owner + will work only in ~mailman. You have to do a touch .qmail-owner in + ~mailman directory to create this alias. + NB: An alternative, IMHO better solution is to chown root ~mailman, + that will stop qmail from considering mailman to be a user to whom + mail can be delivered. (See ``man 8 qmail-getpw''.) + * In a related issue, if you have any users with the same name as one + of your mailing lists, you will have problems if list names contain + "-" in them. Putting .qmail redirections into the user's home + directory doesn't work because the Mailman wrappers will not get + spawned with the proper GID. The solution is to put the following + lines in the /var/qmail/users/assign file: + +zope-:alias:112:11:/var/qmail/alias:-:zope-: + . + + where in this case the listname is e.g. zope-users. + NB: Alternatively, you could host the lists on a virtual domain, + and use the /var/qmail/control/virtualdomains file to put the + mailman user in charge of this virtual domain. + * BN:If inbound messages are delivered by another user than mailman, + it's necessary to allow it to access ~mailman. Be sure that + ~mailman has group writing access and setgid bit is set. Then put + the delivering user to mailman group, and you can deny access to + ~mailman to others. Be sure that you can do the same with the WWW + service. + By the way the best thing is to make a virtual mail server to + handle all of the mail. NB: E.g. make an additional "A" DNS record + for the virtual mailserver pointing to your IP address, add the + line lists.kva.hu:mailman to /var/qmail/control/virtualdomains and + a lists.kva.hu line to /var/qmail/control/rcpthosts file. Don't + forget to HUP the qmail-send after modifying ``virtualdomains''. + Then every mail to lists.kva.hu will arrive to mail.kva.hu's + mailman user. + Then make your aliases: + .qmail => mailman@...'s letters + .qmail-owner => mailman-owner's letters + + For list aliases, you can either create them manually: + .qmail-list => posts to the 'list' list + .qmail-list-admin => posts to the 'list's owner + .qmail-list-request => requests to 'list' + etc + + or for automatic list alias handling (when using the lists.kva.hu + virtual as above), see contrib/qmail-to-mailman.py in the Mailman + source distribution. Modify the ~mailman/.qmail-default to include: + |preline /path/to/python /path/to/qmail-to-mailman.py + + and new lists will automatically be picked up. + * You have to make sure that the localhost can relay. If you start + qmail via inetd and tcpenv, you need some line the following in + your /etc/hosts.allow file: + tcp-env: 127. 10.205.200. : setenv RELAYCLIENT + + where 10.205.200. is your IP address block. If you use tcpserver, + then you need something like the following in your /etc/tcp.smtp + file: + 10.205.200.:allow,RELAYCLIENT="" + 127.:allow,RELAYCLIENT="" + + * BN: Bigger /var/qmail/control/concurrencyremote values work better + sending outbound messages, within reason. Unless you know your + system can handle it (many if not most cannot) this should not be + set to a value greater than 120. + * More information about setting up qmail and relaying can be found + in the qmail documentation. + + BN: Last but not least, here's a little script to generate aliases to + your lists (if for some reason you can/will not have them automatically + picked up using contrib/qmail-to-mailman.py): + + This script is for the Mailman 2.0 series: + +#!/bin/sh +if [ $# = 1 ]; then + i=$1 + echo Making links to $i in the current directory... + echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i + echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request +fi + + Note: This is for a new Mailman 2.1 installation. Users upgrading from + Mailman 2.0 would most likely change /usr/local/mailman to + /home/mailman. If in doubt, refer to the --prefix option passed to + configure during compile time. + +#!/bin/sh +if [ $# = 1 ]; then + i=$1 + echo Making links to $i in the current directory... + echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i + echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin + echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounc +es + # The following line is for VERP + # echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bou +nces-default + echo "|preline /usr/local/mailman/mail/mailman confirm $i" > .qmail-$i-confi +rm + echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join + echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave + echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner + echo "|preline /usr/local/mailman/mail/mailman request $i" > .qmail-$i-reque +st + echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > .qmail-$i-sub +scribe + echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > .qmail-$i-u +nsubscribe +fi + + 6.4.1 Information on VERP + + You will note in the alias generating script for 2.1 above, there is a + line for VERP that has been commented out. If you are interested in + VERP there are two options. The first option is to allow Mailman to do + the VERP formatting. To activate this, uncomment that line and add the + following lines to your mm_cfg.py file: + + VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s' + VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$' + + The second option is a patch on SourceForge located at: + + http://sourceforge.net/tracker/?func=detail&atid=300103&aid=645513&grou + p_id=103 + + This patch currently needs more testing and might best be suitable for + developers or people well familiar with qmail. Having said that, this + patch is the more qmail-friendly approach resulting in large + performance gains. + + 6.4.2 Virtual mail server + + As mentioned in the 6.4 section for a virtual mail server, a patch + under testing is located at: + + http://sf.net/tracker/index.php?func=detail&aid=621257&group_id=103&ati + d=300103 + + Again, this patch is for people familiar with their qmail installation. + + 6.4.3 More information + + You might be interested in some information on modifying footers that + Norbert Bollow has written about Mailman and qmail, available here: + + http://mailman.cis.to/qmail-verh/ + + 7 Review your site defaults + + Mailman has a large number of site-wide configuration options which you + should now review and change according to your needs. Some of the + options control how Mailman interacts with your environment, and other + options select defaults for newly created lists^5. There are system + tuning parameters and integration options. + + The full set of site-wide defaults lives in the + $prefix/Mailman/Defaults.py file, however you should never modify this + file! Instead, change the mm_cfg.py file in that same directory. You + only need to add values to mm_cfg.py that are different than the + defaults in Defaults.py, and future Mailman upgrades are guaranteed + never to touch your mm_cfg.py file. + + The Defaults.py file is documented extensively, so the options are not + described here. The Defaults.py and mm_cfg.py are both Python files so + valid Python syntax must be maintained or your Mailman installation + will break. + + Note: Do not change the HOME_DIR or MAILMAN_DIR variables. These are + set automatically by the configure script, and you will break your + Mailman installation by if you change these. + + You should make any changes to mm_cfg.py using the account you + installed Mailman under in the 14 section. + + 8 Create a site-wide mailing list + + After you have completed the integration of Mailman and your mail + server, you need to create a ``site-wide'' mailing list. This is the + one that password reminders will appear to come from, and it is + required for proper Mailman operation. Usually this should be a list + called mailman, but if you need to change this, be sure to change the + MAILMAN_SITE_LIST variable in mm_cfg.py. You can create the site list + with this command, following the prompts: + + % bin/newlist mailman + + Now configure your site list. There is a convenient template for a + generic site list in the installation directory, under + data/sitelist.cfg which can help you with this. You should review the + configuration options in the template, but note that any options not + named in the sitelist.cfg file won't be changed. + + The template can be applied to your site list by running: + + % bin/config_list -i data/sitelist.cfg mailman + + After applying the sitelist.cfg options, be sure you review the site + list's configuration via the admin pages. + + You should also subscribe yourself to the site list. + + 9 Set up cron + + Several Mailman features occur on a regular schedule, so you must set + up cron to run the right programs at the right time^6. + + If your version of crontab supports the -u option, you must be root to + do this next step. Add $prefix/cron/crontab.in as a crontab entry by + executing these commands: + + % cd $prefix/cron + % crontab -u mailman crontab.in + + If you used the --with-username option, use that user name instead of + mailman for the -u argument value. If your crontab does not support the + -u option, try these commands: + + % cd $prefix/cron + % su - mailman + % crontab crontab.in + + 10 Start the Mailman qrunner + + Mailman depends on a process called the ``qrunner'' to delivery all + email messages it sees. You must start the qrunner by executing the + following command from the $prefix directory: + + % bin/mailmanctl start + + You probably want to start Mailman every time you reboot your system. + Exactly how to do this depends on your operating system. If your OS + supports the chkconfig command (e.g. RedHat and Mandrake Linuxes) you + can do the following (as root, from the Mailman install directory): + + % cp scripts/mailman /etc/init.d/mailman + % chkconfig --add mailman + + Note that /etc/init.d may be /etc/rc.d/init.d on some systems. + + On Gentoo Linux, you can do the following: + + % cp scripts/mailman /etc/init.d/mailman + % rc-update add mailman default + + On Debian, you probably want to use: + + % update-rc.d mailman defaults + + For Unixes that don't support chkconfig, you might try the following + set of commands: + + % cp scripts/mailman /etc/init.d/mailman + % cp misc/mailman /etc/init.d + % cd /etc/rc.d/rc0.d + % ln -s ../init.d/mailman K12mailman + % cd ../rc1.d + % ln -s ../init.d/mailman K12mailman + % cd ../rc2.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc3.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc4.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc5.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc6.d + % ln -s ../init.d/mailman K12mailman + + 11 Check the hostname settings + + You should check the values for DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST + in Defaults.py. Make any necessary changes in the mm_cfg.py file, not + in the Defaults.py file. If you change either of these two values, + you'll want to add the following afterwards in the mm_cfg.py file: + + add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) + + You will want to run the bin/fix_url.py to change the domain of any + existing lists. + + 12 Create the site password + + There are two site-wide passwords that you can create from the command + line, using the bin/mmsitepass script. The first is the ``site + password'' which can be used anywhere a password is required in the + system. The site password will get you into the administration page for + any list, and it can be used to log in as any user. Think root for a + Unix system, so pick this password wisely! + + The second password is a site-wide ``list creator'' password. You can + use this to delegate the ability to create new mailing lists without + providing all the privileges of the site password. Of course, the owner + of the site password can also create new mailing lists, but the list + creator password is limited to just that special role. + + To set the site password, use this command: + + % $prefix/bin/mmsitepass <your-site-password> + + To set the list creator password, use this command: + + % $prefix/bin/mmsitepass -c <list-creator-password> + + It is okay not to set a list creator password, but you probably do want + a site password. + + 13 Create your first mailing list + + For more detailed information about using Mailman, including creating + and configuring mailing lists, see the Mailman List Adminstration + Manual. These instructions provide a quick guide to creating your first + mailing list via the web interface: + + * Start by visiting the url http://my.dom.ain/mailman/create. + * Fill out the form as described in the on-screen instructions, and + in the ``List creator's password'' field, type the password you + entered in section 7. Type your own email address for the ``Initial + list owner address'', and select ``Yes'' to notify the list + administrator. + * Click on the ``Create List'' button. + * Check your email for a message from Mailman informing you that your + new mailing list was created. + * Now visit the list's administration page, either by following the + link on the confirmation web page or clicking on the link from the + email Mailman just sent you. Typically the url will be something + like http://my.dom.ain/mailman/admin/mylist. + * Type in the list's password and click on ``Let me in...'' + * Click on ``Membership Management'' and then on ``Mass + Subscription''. + * Enter your email address in the big text field, and click on + ``Submit Your Changes''. + * Now go to your email and send a message to mylist@my.dom.ain. + Within a minute or two you should see your message reflected back + to you via Mailman. + + Congratulations! You've just set up and tested your first Mailman + mailing list. If you had any problems along the way, please see the 14 + section. + + 14 Troubleshooting + + If you encounter problems with running Mailman, first check the + question and answer section below. If your problem is not covered + there, check the online help, including the FAQ and the interactive FAQ + wizard. + + Also check for errors in your syslog files, your mail and web server + log files and in Mailman's $prefix/logs/error file. If you're still + having problems, you should send a message to the + mailman-users@python.org mailing list^7; see + http://mail.python.org/mailman/listinfo/mailman-users for more + information. + + Be sure to including information on your operating system, which + version of Python you're using, and which version of Mailman you're + installing. + + Here is a list of some common questions and answers: + + * Problem: All Mailman web pages give a 404 File not found error. + Solution: Your web server has not been set up properly for handling + Mailman's CGI programs. Make sure you have: + 1. configured the web server to give permissions to + $prefix/cgi-bin + 2. restarted the web server properly. + Consult your web server's documentation for instructions on how to + do check these issues. + * Problem: All Mailman web pages give an "Internal Server Error". + Solution: The likely problem is that you are using the wrong user + or group for the CGI scripts. Check your web server's log files. If + you see a line like + Attempt to exec script with invalid gid 51, expected 99 + + you will need to reinstall Mailman, specifying the proper CGI group + id, as described in the section. + * Problem: I send mail to the list, and get back mail saying the list + is not found! + Solution: You probably didn't add the necessary aliases to the + system alias database, or you didn't properly integrate Mailman + with your mail server. Perhaps you didn't update the alias + database, or your system requires you to run newaliases explicitly. + Refer to your server specific instructions in the 6 section. + * Problem: I send mail to the list, and get back mail saying, + ``unknown mailer error''. + Solution: The likely problem is that you are using the wrong user + or group id for the mail wrappers. Check your mail server's log + files; if you see a line like + Attempt to exec script with invalid gid 51, expected 99 + + you will need to reinstall Mailman, specifying the proper mail + group id as described in the section. + * Problem: I use Postfix as my mail server and the mail wrapper + programs are logging complaints about the wrong GID. + Solution: Make sure the $prefix/data/aliases.db file is user owned + by mailman (or whatever user name you used in the configure + command). If this file is not user owned by mailman, Postfix will + not run the mail programs as the correct user. + * Problem: I use Sendmail as my mail server, and when I send mail to + the list, I get back mail saying, ``sh: mailman not available for + sendmail programs''. + Solution: Your system uses the Sendmail restricted shell (smrsh). + You need to configure smrsh by creating a symbolic link from the + mail wrapper ($prefix/mail/mailman) to the directory identifying + executables allowed to run under smrsh. + Some common names for this directory are /var/admin/sm.bin, + /usr/admin/sm.bin or /etc/smrsh. + Note that on Debian Linux, the system makes /usr/lib/sm.bin, which + is wrong, you will need to create the directory /usr/admin/sm.bin + and add the link there. Note further any aliases newaliases spits + out will need to be adjusted to point to the secure link to the + wrapper. + * Problem: I messed up when I called configure. How do I clean things + up and re-install? + Solution: + % make clean + % ./configure --with-the-right-options + % make install + + 15 Platform and operating system notes + + Generally, Mailman runs on any POSIX-based system, such as Solaris, the + various BSD variants, Linux systems, MacOSX, and other generic Unix + systems. It doesn't run on Windows. For the most part, the generic + instructions given in this document should be sufficient to get Mailman + working on any supported platform. Some operating systems have + additional recommended installation or configuration instructions. + +15.1 GNU/Linux issues + + Linux seems to be the most popular platform for running Mailman. Here + are some hints on getting Mailman to run on Linux: + + * If you are getting errors with hard link creations and/or you are + using a special secure kernel (securelinux/openwall/grsecurity), + see the file contrib/README.check_perms_grsecurity in the Mailman + source distribution. + Note that if you are using Linux Mandrake in secure mode, you are + probably concerned by this. + * Apparently Mandrake 9.0 changed the permissions on gcc, so if you + build as the mailman user, you need to be sure mailman is in the + cctools group. + * If you installed Python from your Linux distribution's package + manager (e.g. .rpms for Redhat-derived systems or .deb for Debian), + you must install the ``development'' package of Python, or you may + not get everything you need. + For example, using Python 2.2 on Debian, you will need to install + the python2.2-dev package. On Redhat, you probably need the + python2-devel package. + If you install Python from source, you should be fine. + One symptom of this problem, although for unknown reasons, is that + you might get an error such as this during your install: + Traceback (most recent call last): + File "bin/update", line 44, in ? + import paths + ImportError: No module named paths + make: *** [update] Error 1 + + If this happens, install the Python development package and try + configure and make install again. Or install the latest version of + Python from source, available from http://www.python.org. + This problem can manifest itself in other Linux distributions in + different ways, although usually it appears as ImportErrors. + +15.2 BSD issues + + Vivek Khera writes that some BSDs do nightly security scans for setuid + file changes. setgid directories also come up on the scan when they + change. Also, the setgid bit is not necessary on BSD systems because + group ownership is automatically inherited on files created in + directories. On other Unixes, this only happens when the directory has + the setgid bit turned on. + + To install without turning on the setgid bit on directories, simply + pass in the DIRSETGID variable to make, after you've run configure: + + % make DIRSETGID=: install + + This disables the chmod g+s command on installed directories. + +15.3 MacOSX issues + + Many people run Mailman on MacOSX. Here are some pointers that have + been collected on getting Mailman to run on MacOSX. + + * Jaguar (MacOSX 10.2) comes with Python 2.2. While this isn't the + very latest stable version of Python, it ought to be sufficient to + run Mailman 2.1. + * David B. O'Donnell has a web page describing his configuration of + Mailman 2.0.13 and Postfix on MacOSX Server. + http://www.afp548.com/Articles/mail/python-mailman.html + * Kathleen Webb posted her experiences in getting Mailman running on + Jaguar using Sendmail. + http://mail.python.org/pipermail/mailman-users/2002-October/022944. + html + * Panther server (MacOSX 10.3) comes with Mailman; Your operating + system should contain documentation that will help you, and Apple + has a tech document about a problem you might encounter running + Mailman on Mac OS X Server 10.3: + http://docs.info.apple.com/article.html?artnum=107889 + + Terry Allen provides the following detailed instructions on running + Mailman on the 'client' version of OSX, or in earlier versions of OSX: + + Mac OSX 10.3 and onwards has the basics for a successful Mailman + installation. Users of earlier versions of Mac OSX contains Sendmail + and those users should look at the Sendmail installation section for + tips. You should follow the basic installation steps as described + earlier in this manual, substituting as appropriate, the steps outlined + in this section. + + By default, Mac OSX 10.3 'client' version does not have a fully + functional version of Postfix. Setting up a working MTA such as Postfix + is beyond the scope of this guide and you should refer to + http://www.postfix.org for tips on getting Postfix running. An easy way + to set Postfix up is to install and run Postfix Enabler, a stand-alone + tool for configuring Postfix on Mac OSX, available from + http://www.roadstead.com/weblog/Tutorials/PostfixEnabler.html. + + Likewise, Mac OSX 'client' version from 10.1 onwards includes a working + Apache webserver. This is switched on using the System Preferences + control panel under the 'Sharing tab'. A useful tool for configuring + the Apache on Mac OSX is Webmin, which can be obtained from + http://www.webmin.com. + + Webmin can also perform configuration for other system tasks, including + Postfix, adding jobs to your crontab, adding user and groups, plus + adding startup and shutdown jobs. + + In a stock installation of OSX, the requirement for Mailman is to have + Python installed. Python is not installed by default, so it is advised + that you install the developer's tools package, which may have been + provided with your system. It can also be downloaded from the Apple + developer site at http://connect.apple.com. Not only is the developer + tools package an essential requirement for installing Mailman, but it + will come in handy at a later date should you need other tools. The + developer's tools are also know by the name XCode tools. + + As a minimum, the Python version should be 2.2, but 2.3 is recommended. + + If you wish to add a user and group using the command line in OSX + instead of via Webmin or another GUI interface, open your terminal + application and follow the commands as indicated below - do not type + the comments following the "#" since they are just notes: + +sudo tcsh +niutil -create / /users/mailman +niutil -createprop / /users/mailman name mailman +# Note that xxx is a free user ID number on your system +niutil -createprop / /users/mailman uid xxx +niutil -createprop / /users/mailman home /usr/local/mailman +mkdir -p /usr/local/mailman +niutil -createprop / /users/mailman shell /bin/tcsh +passwd mailman +# To prevent malicious hacking, supply a secure password here +niutil -create / /groups/mailman +niutil -createprop / /groups/mailman name mailman +# Note that xxx is a free group ID number on your system +niutil -createprop / /groups/mailman gid xxx +niutil -createprop / /groups/mailman passwd '*' +niutil -createprop / /groups/mailman users 'mailman' +chown mailman:mailman /usr/local/mailman +cd /usr/local/mailman +chmod a+rx,g+ws . +exit +su mailman + + For setting up Apache on OSX to handle Mailman, the steps are almost + identical and the configuration file on a stock Mac OSX Client version + is stored in the nearly standard location of /etc/httpd/httpd.conf. + + The AFP548.com site has a time-saving automated startup item creator + for Mailman, which can be found at + http://www.afp548.com/Software/MailmanStartup.tar.gz + + To install it, copy it into your /Library/StartupItems directory. As + the root or superuser, from the terminal, enter the following: + +gunzip MailmanStartup.tar.gz +tar xvf MailmanStartup.tar + + It will create the startup item for you so that when you reboot, + Mailman will start up. + + About this document ... + + GNU Mailman - Installation Manual, December 5, 2007, Release 2.1 + + This document was generated using the LaTeX2HTML translator. + + LaTeX2HTML is Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, + Computer Based Learning Unit, University of Leeds, and Copyright © + 1997, 1998, Ross Moore, Mathematics Department, Macquarie University, + Sydney. + + The application of LaTeX2HTML to the Python documentation has been + heavily tailored by Fred L. Drake, Jr. Original navigation icons were + contributed by Christopher Petrilli. + __________________________________________________________________ + + Footnotes + + ... right^1 + You will be able to check and repair your permissions after + installation is complete. + + .../usr/local/mailman^2 + This is the default for Mailman 2.1. Earlier versions of Mailman + installed everything under /home/mailman by default. + + ... set^3 + BSD users should see the 15.2 section for additional + information. + + ... only^4 + In fact, in later versions of Mailman, this module is explicitly + sabotaged. You have to know what you're doing in order to + re-enable it. + + ... lists^5 + In general, changing the list defaults described in this section + will not affect any already created lists. To make changes after + a list has been created, use the web interface or the command + line scripts, such as bin/withlist and bin/config_list. + + ... time^6 + Note that if you're upgrading from a previous version of + Mailman, you'll want to install the new crontab, but be careful + if you're running multiple Mailman installations on your site! + Changing the crontab could mess with other parallel Mailman + installations. + + ... list^7 + You must subscribe to this mailing list in order to post to it, + but the mailing list's archives are publicly visible. + __________________________________________________________________ + + Previous Page Up one Level Next Page GNU Mailman - Installation Manual + __________________________________________________________________ + + Release 2.1, documentation updated on December 5, 2007. diff --git a/doc/mailman-install/about.html b/doc/mailman-install/about.html new file mode 100644 index 00000000..04ba5851 --- /dev/null +++ b/doc/mailman-install/about.html @@ -0,0 +1,109 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="front.html" /> +<link rel="parent" href="mailman-install.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>About this document ...</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15.3 macosx issues" + href="node50.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="GNU mailman - Installation" + href="mailman-install.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node50.html">15.3 MacOSX issues</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mailman-install.html">GNU Mailman - Installation</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION002000000000000000000"> +About this document ...</a> +</h1> + <strong>GNU Mailman - Installation Manual</strong>, +December 5, 2007, Release 2.1 +<p> This document was generated using the <a + href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/"> + <strong>LaTeX</strong>2<tt>HTML</tt></a> translator. +</p> + +<p> <a + href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/"> + <strong>LaTeX</strong>2<tt>HTML</tt></a> is Copyright © + 1993, 1994, 1995, 1996, 1997, <a + href="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos + Drakos</a>, Computer Based Learning Unit, University of + Leeds, and Copyright © 1997, 1998, <a + href="http://www.maths.mq.edu.au/~ross/">Ross + Moore</a>, Mathematics Department, Macquarie University, + Sydney. +</p> + +<p> The application of <a + href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/"> + <strong>LaTeX</strong>2<tt>HTML</tt></a> to the Python + documentation has been heavily tailored by Fred L. Drake, + Jr. Original navigation icons were contributed by Christopher + Petrilli. +</p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15.3 macosx issues" + href="node50.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="GNU mailman - Installation" + href="mailman-install.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node50.html">15.3 MacOSX issues</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mailman-install.html">GNU Mailman - Installation</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/blank.png b/doc/mailman-install/blank.png Binary files differnew file mode 100644 index 00000000..2af5639b --- /dev/null +++ b/doc/mailman-install/blank.png diff --git a/doc/mailman-install/bsd-issues.html b/doc/mailman-install/bsd-issues.html new file mode 100644 index 00000000..932283e2 --- /dev/null +++ b/doc/mailman-install/bsd-issues.html @@ -0,0 +1,114 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node50.html" /> +<link rel="prev" href="node48.html" /> +<link rel="parent" href="node47.html" /> +<link rel="next" href="node50.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>15.2 BSD issues</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15.1 GNU/Linux issues" + href="node48.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="15 platform and operating" + href="node47.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15.3 macosx issues" + href="node50.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node48.html">15.1 GNU/Linux issues</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node50.html">15.3 MacOSX issues</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION0011520000000000000000"></a><a name="bsd-issues"></a> +<br> +15.2 BSD issues +</h2> + +<p> +Vivek Khera writes that some BSDs do nightly security scans for setuid file +changes. setgid directories also come up on the scan when they change. Also, +the setgid bit is not necessary on BSD systems because group ownership is +automatically inherited on files created in directories. On other <span class="Unix">Unix</span>es, +this only happens when the directory has the setgid bit turned on. + +<p> +To install without turning on the setgid bit on directories, simply pass in +the <var>DIRSETGID</var> variable to <b class="program">make</b>, after you've run +<b class="program">configure</b>: + +<p> +<div class="verbatim"><pre> + % make DIRSETGID=: install +</pre></div> + +<p> +This disables the <b class="program">chmod g+s</b> command on installed directories. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15.1 GNU/Linux issues" + href="node48.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="15 platform and operating" + href="node47.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15.3 macosx issues" + href="node50.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node48.html">15.1 GNU/Linux issues</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node50.html">15.3 MacOSX issues</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/contents.png b/doc/mailman-install/contents.png Binary files differnew file mode 100644 index 00000000..3429be0c --- /dev/null +++ b/doc/mailman-install/contents.png diff --git a/doc/mailman-install/create-install-dir.html b/doc/mailman-install/create-install-dir.html new file mode 100644 index 00000000..e152c25f --- /dev/null +++ b/doc/mailman-install/create-install-dir.html @@ -0,0 +1,149 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="node4.html" /> +<link rel="parent" href="node3.html" /> +<link rel="next" href="node6.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>2.2 Create the installation directory</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="2.1 add the group" + href="node4.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="2 set up your" + href="node3.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="3 build and install" + href="node6.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node4.html">2.1 Add the group</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node3.html">2 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node6.html">3 Build and install</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001220000000000000000"></a><a name="create-install-dir"></a> +<br> +2.2 Create the installation directory +</h2> +Typically, Mailman is installed into a single directory, which includes both +the Mailman source code and the run-time list and archive data. It is +possible to split the static program files from the variable data files and +install them in separate directories. This section will describe the +available options. + +<p> +The default is to install all of Mailman to +<span class="file">/usr/local/mailman</span><a name="tex2html2" + href="#foot706"><sup>2</sup></a>. You can change this base installation directory (referred to here +as <var>$prefix</var>) by specifying the directory with the +<b class="programopt">--prefix</b> <b class="program">configure</b> option. If you're upgrading from +a previous version of Mailman, you may want to use the <b class="programopt">--prefix</b> +option unless you move your mailing lists. + +<p> +<div class="warning"><b class="label">Warning:</b> + +You cannot install Mailman on a filesystem that is mounted with the +<code>nosuid</code> option. This will break Mailman, which relies on setgid +programs for its security. If this describes your environment, simply install +Mailman in a location that allows setgid programs. +</div> + +<p> +Make sure the installation directory is set to group <code>mailman</code> (or +whatever you're going to specify with <b class="programopt">--with-groupname</b>) and has +the setgid bit set<a name="tex2html3" + href="#foot707"><sup>3</sup></a>. You probably also want to guarantee that this +directory is readable and executable by everyone. For example, these shell +commands will accomplish this: + +<p> +<div class="verbatim"><pre> + % cd $prefix + % chgrp mailman . + % chmod a+rx,g+ws . +</pre></div> + +<p> +You are now ready to configure and install the Mailman software. + +<p> +<br><hr><h4>Footnotes</h4> +<dl> +<dt><a name="foot706">.../usr/local/mailman</a><A + href="create-install-dir.html#tex2html2"><sup>2</sup></a></dt> +<dd>This is the default for Mailman 2.1. +Earlier versions of Mailman installed everything under <span class="file">/home/mailman</span> by +default. + +</dd> +<dt><a name="foot707">... set</a><A + href="create-install-dir.html#tex2html3"><sup>3</sup></a></dt> +<dd>BSD users should see the <a href="bsd-issues.html#bsd-issues">15.2</a> section +for additional information. + +</dd> +</dl> +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="2.1 add the group" + href="node4.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="2 set up your" + href="node3.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="3 build and install" + href="node6.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node4.html">2.1 Add the group</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node3.html">2 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node6.html">3 Build and install</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/customizing.html b/doc/mailman-install/customizing.html new file mode 100644 index 00000000..8600d093 --- /dev/null +++ b/doc/mailman-install/customizing.html @@ -0,0 +1,139 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node40.html" /> +<link rel="prev" href="mail-server.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node40.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>7 Review your site defaults</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4.3 more information" + href="node38.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="8 create a site-wide" + href="node40.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node38.html">6.4.3 More information</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node40.html">8 Create a site-wide</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001700000000000000000"></a><a name="customizing"></a> +<br> +7 Review your site defaults +</h1> + +<p> +Mailman has a large number of site-wide configuration options which you should +now review and change according to your needs. Some of the options control +how Mailman interacts with your environment, and other options select defaults +for newly created lists<a name="tex2html5" + href="#foot733"><sup>5</sup></a>. +There are system tuning parameters and integration options. + +<p> +The full set of site-wide defaults lives in the +<span class="file"><var>$prefix</var>/Mailman/Defaults.py</span> file, however you should +<strong>never</strong> modify this file! Instead, change the <span class="file">mm_cfg.py</span> file in +that same directory. You only need to add values to <span class="file">mm_cfg.py</span> that are +different than the defaults in <span class="file">Defaults.py</span>, and future Mailman upgrades +are guaranteed never to touch your <span class="file">mm_cfg.py</span> file. + +<p> +The <span class="file">Defaults.py</span> file is documented extensively, so the options are not +described here. The <span class="file">Defaults.py</span> and <span class="file">mm_cfg.py</span> are both +<a class="ulink" href="http://www.python.org" + >Python</a> files so valid Python syntax must be +maintained or your Mailman installation will break. + +<p> +<div class="note"><b class="label">Note:</b> + +Do <strong>not</strong> change the <var>HOME_DIR</var> or <var>MAILMAN_DIR</var> variables. +These are set automatically by the <b class="program">configure</b> script, and you will +break your Mailman installation by if you change these. +</div> + +<p> +You should make any changes to <span class="file">mm_cfg.py</span> using the account you +installed Mailman under in the <a href="troubleshooting.html#building">14</a> section. + +<p> +<br><hr><h4>Footnotes</h4> +<dl> +<dt><a name="foot733">... lists</a><A + href="customizing.html#tex2html5"><sup>5</sup></a></dt> +<dd>In general, changing the list defaults +described in this section will not affect any already created lists. To make +changes after a list has been created, use the web interface or the command +line scripts, such as <b class="program">bin/withlist</b> and <b class="program">bin/config_list</b>. + +</dd> +</dl> +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4.3 more information" + href="node38.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="8 create a site-wide" + href="node40.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node38.html">6.4.3 More information</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node40.html">8 Create a site-wide</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/exim3-transport.html b/doc/mailman-install/exim3-transport.html new file mode 100644 index 00000000..f9e25d1f --- /dev/null +++ b/doc/mailman-install/exim3-transport.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node20.html" /> +<link rel="prev" href="node18.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node20.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.3 Transport for Exim 3</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.2 main configuration settings" + href="node18.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.4 director for Exim" + href="node20.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node18.html">6.2.2 Main configuration settings</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node20.html">6.2.4 Director for Exim</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001623000000000000000"></a><a name="exim3-transport"></a> +<br> +6.2.3 Transport for Exim 3 +</h3> + +<p> +Add this to the transports section of your Exim config file, +i.e. somewhere between the first and second ``end'' line: + +<p> +<div class="verbatim"><pre> + mailman_transport: + driver = pipe + command = MAILMAN_WRAP \ + '${if def:local_part_suffix \ + {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ + {post}}' \ + $local_part + current_directory = MAILMAN_HOME + home_directory = MAILMAN_HOME + user = MAILMAN_USER + group = MAILMAN_GROUP +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.2 main configuration settings" + href="node18.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.4 director for Exim" + href="node20.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node18.html">6.2.2 Main configuration settings</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node20.html">6.2.4 Director for Exim</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/front.html b/doc/mailman-install/front.html new file mode 100644 index 00000000..6a068b19 --- /dev/null +++ b/doc/mailman-install/front.html @@ -0,0 +1,182 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="about.html" /> +<link rel="prev" href="mailman-install.html" /> +<link rel="parent" href="mailman-install.html" /> +<link rel="next" href="node2.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>Front Matter</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="GNU mailman - Installation" + href="mailman-install.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="GNU mailman - Installation" + href="mailman-install.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="1 installation Requirements" + href="node2.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="mailman-install.html">GNU Mailman - Installation</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mailman-install.html">GNU Mailman - Installation</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node2.html">1 Installation Requirements</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001000000000000000000"></a><a name="front"></a> +<br> +Front Matter +</h1> + +<p> + +<h3>Abstract:</h3> +<div class="ABSTRACT"> + +This document describes how to install GNU Mailman on a POSIX-based system +such as <span class="Unix">Unix</span>, MacOSX, or GNU/Linux. It will cover basic installation +instructions, as well as guidelines for integrating Mailman with your web and +mail servers. + +<p> +The GNU Mailman website is at <a class="url" href="http://www.list.org">http://www.list.org</a></div> +<p> + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node2.html">1 Installation Requirements</a> +<li><a href="node3.html">2 Set up your system</a> +<ul> +<li><a href="node4.html">2.1 Add the group and user</a> +<li><a href="create-install-dir.html">2.2 Create the installation directory</a> +</ul> +<li><a href="node6.html">3 Build and install Mailman</a> +<ul> +<li><a href="node7.html">3.1 Run <b class="program">configure</b></a> +<li><a href="node8.html">3.2 Make and install</a> +</ul> +<li><a href="node9.html">4 Check your installation</a> +<li><a href="node10.html">5 Set up your web server</a> +<li><a href="mail-server.html">6 Set up your mail server</a> +<ul> +<li><a href="node12.html">6.1 Using the Postfix mail server</a> +<ul> +<li><a href="node13.html">6.1.1 Integrating Postfix and Mailman</a> +<li><a href="postfix-virtual.html">6.1.2 Virtual domains</a> +<li><a href="node15.html">6.1.3 An alternative approach</a> +</ul> +<li><a href="node16.html">6.2 Using the Exim mail server</a> +<ul> +<li><a href="node17.html">6.2.1 Exim configuration</a> +<li><a href="node18.html">6.2.2 Main configuration settings</a> +<li><a href="exim3-transport.html">6.2.3 Transport for Exim 3</a> +<li><a href="node20.html">6.2.4 Director for Exim 3</a> +<li><a href="node21.html">6.2.5 Router for Exim 4</a> +<li><a href="node22.html">6.2.6 Transports for Exim 4</a> +<li><a href="node23.html">6.2.7 Additional notes</a> +<li><a href="node24.html">6.2.8 Problems</a> +<li><a href="node25.html">6.2.9 Receiver Verification</a> +<li><a href="node26.html">6.2.10 SMTP Callback</a> +<li><a href="node27.html">6.2.11 Doing VERP with Exim and Mailman</a> +<li><a href="node28.html">6.2.12 Virtual Domains</a> +<li><a href="node29.html">6.2.13 List Verification</a> +<li><a href="node30.html">6.2.14 Document History</a> +</ul> +<li><a href="node31.html">6.3 Using the Sendmail mail server</a> +<ul> +<li><a href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +<li><a href="node33.html">6.3.2 Integrating Sendmail and Mailman</a> +<li><a href="node34.html">6.3.3 Performance notes</a> +</ul> +<li><a href="qmail-issues.html">6.4 Using the Qmail mail server</a> +<ul> +<li><a href="node36.html">6.4.1 Information on VERP</a> +<li><a href="node37.html">6.4.2 Virtual mail server</a> +<li><a href="node38.html">6.4.3 More information</a> +</ul> +</ul> +<li><a href="customizing.html">7 Review your site defaults</a> +<li><a href="node40.html">8 Create a site-wide mailing list</a> +<li><a href="node41.html">9 Set up cron</a> +<li><a href="node42.html">10 Start the Mailman qrunner</a> +<li><a href="node43.html">11 Check the hostname settings</a> +<li><a href="node44.html">12 Create the site password</a> +<li><a href="node45.html">13 Create your first mailing list</a> +<li><a href="troubleshooting.html">14 Troubleshooting</a> +<li><a href="node47.html">15 Platform and operating system notes</a> +<ul> +<li><a href="node48.html">15.1 GNU/Linux issues</a> +<li><a href="bsd-issues.html">15.2 BSD issues</a> +<li><a href="node50.html">15.3 MacOSX issues</a> +</ul></ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="GNU mailman - Installation" + href="mailman-install.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="GNU mailman - Installation" + href="mailman-install.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="1 installation Requirements" + href="node2.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="mailman-install.html">GNU Mailman - Installation</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mailman-install.html">GNU Mailman - Installation</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node2.html">1 Installation Requirements</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/index.dat b/doc/mailman-install/index.dat new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/doc/mailman-install/index.dat diff --git a/doc/mailman-install/index.html b/doc/mailman-install/index.html new file mode 100644 index 00000000..6fd98aca --- /dev/null +++ b/doc/mailman-install/index.html @@ -0,0 +1,135 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="front.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>GNU Mailman - Installation Manual</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></td> +<td class='online-navigation'><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></td> +<td class='online-navigation'><a rel="next" title="Front Matter" + href="front.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="front.html">Front Matter</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<p> + +<div class="titlepage"> +<div class='center'> +<h1>GNU Mailman - Installation Manual</h1> +<p><b><font size="+2">Barry Warsaw</font></b></p> +<p><span class="email">barry (at) list dot org</span></p> +<p><strong>Release 2.1</strong><br /> +<strong>December 5, 2007</strong></p> +<p></p> +</div> +</div> + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"></a> + +<ul class="ChildLinks"> +<li><a href="front.html">Front Matter</a> +<ul> +<li><a href="node2.html">1 Installation Requirements</a> +<li><a href="node3.html">2 Set up your system</a> +<ul> +<li><a href="node4.html">2.1 Add the group and user</a> +<li><a href="create-install-dir.html">2.2 Create the installation directory</a> +</ul> +<li><a href="node6.html">3 Build and install Mailman</a> +<ul> +<li><a href="node7.html">3.1 Run <b class="program">configure</b></a> +<li><a href="node8.html">3.2 Make and install</a> +</ul> +<li><a href="node9.html">4 Check your installation</a> +<li><a href="node10.html">5 Set up your web server</a> +<li><a href="mail-server.html">6 Set up your mail server</a> +<ul> +<li><a href="node12.html">6.1 Using the Postfix mail server</a> +<li><a href="node16.html">6.2 Using the Exim mail server</a> +<li><a href="node31.html">6.3 Using the Sendmail mail server</a> +<li><a href="qmail-issues.html">6.4 Using the Qmail mail server</a> +</ul> +<li><a href="customizing.html">7 Review your site defaults</a> +<li><a href="node40.html">8 Create a site-wide mailing list</a> +<li><a href="node41.html">9 Set up cron</a> +<li><a href="node42.html">10 Start the Mailman qrunner</a> +<li><a href="node43.html">11 Check the hostname settings</a> +<li><a href="node44.html">12 Create the site password</a> +<li><a href="node45.html">13 Create your first mailing list</a> +<li><a href="troubleshooting.html">14 Troubleshooting</a> +<li><a href="node47.html">15 Platform and operating system notes</a> +<ul> +<li><a href="node48.html">15.1 GNU/Linux issues</a> +<li><a href="bsd-issues.html">15.2 BSD issues</a> +<li><a href="node50.html">15.3 MacOSX issues</a> +</ul> +</ul> +<li><a href="about.html">About this document ...</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></td> +<td class='online-navigation'><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></td> +<td class='online-navigation'><a rel="next" title="Front Matter" + href="front.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="front.html">Front Matter</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/index.png b/doc/mailman-install/index.png Binary files differnew file mode 100644 index 00000000..cd918afe --- /dev/null +++ b/doc/mailman-install/index.png diff --git a/doc/mailman-install/internals.pl b/doc/mailman-install/internals.pl new file mode 100644 index 00000000..04b8d800 --- /dev/null +++ b/doc/mailman-install/internals.pl @@ -0,0 +1,50 @@ +# LaTeX2HTML 2002-2-1 (1.71) +# Associate internals original text with physical files. + + +$key = q/exim3-transport/; +$ref_files{$key} = "$dir".q|node19.html|; +$noresave{$key} = "$nosave"; + +$key = q/front/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/create-install-dir/; +$ref_files{$key} = "$dir".q|node5.html|; +$noresave{$key} = "$nosave"; + +$key = q/mail-server/; +$ref_files{$key} = "$dir".q|node11.html|; +$noresave{$key} = "$nosave"; + +$key = q/qmail-issues/; +$ref_files{$key} = "$dir".q|node35.html|; +$noresave{$key} = "$nosave"; + +$key = q/troubleshooting/; +$ref_files{$key} = "$dir".q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/customizing/; +$ref_files{$key} = "$dir".q|node39.html|; +$noresave{$key} = "$nosave"; + +$key = q/building/; +$ref_files{$key} = "$dir".q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/about/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/postfix-virtual/; +$ref_files{$key} = "$dir".q|node14.html|; +$noresave{$key} = "$nosave"; + +$key = q/bsd-issues/; +$ref_files{$key} = "$dir".q|node49.html|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/doc/mailman-install/intlabels.pl b/doc/mailman-install/intlabels.pl new file mode 100644 index 00000000..44814752 --- /dev/null +++ b/doc/mailman-install/intlabels.pl @@ -0,0 +1,3 @@ +%internal_labels = (); +1; # hack in case there are no entries + diff --git a/doc/mailman-install/labels.pl b/doc/mailman-install/labels.pl new file mode 100644 index 00000000..93c78d96 --- /dev/null +++ b/doc/mailman-install/labels.pl @@ -0,0 +1,93 @@ +# LaTeX2HTML 2002-2-1 (1.71) +# Associate labels original text with physical files. + + +$key = q/exim3-transport/; +$external_labels{$key} = "$URL/" . q|node19.html|; +$noresave{$key} = "$nosave"; + +$key = q/front/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/create-install-dir/; +$external_labels{$key} = "$URL/" . q|node5.html|; +$noresave{$key} = "$nosave"; + +$key = q/mail-server/; +$external_labels{$key} = "$URL/" . q|node11.html|; +$noresave{$key} = "$nosave"; + +$key = q/qmail-issues/; +$external_labels{$key} = "$URL/" . q|node35.html|; +$noresave{$key} = "$nosave"; + +$key = q/troubleshooting/; +$external_labels{$key} = "$URL/" . q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/customizing/; +$external_labels{$key} = "$URL/" . q|node39.html|; +$noresave{$key} = "$nosave"; + +$key = q/building/; +$external_labels{$key} = "$URL/" . q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/about/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/postfix-virtual/; +$external_labels{$key} = "$URL/" . q|node14.html|; +$noresave{$key} = "$nosave"; + +$key = q/bsd-issues/; +$external_labels{$key} = "$URL/" . q|node49.html|; +$noresave{$key} = "$nosave"; + +1; + + +# LaTeX2HTML 2002-2-1 (1.71) +# labels from external_latex_labels array. + + +$key = q/exim3-transport/; +$external_latex_labels{$key} = q|6.2|; +$noresave{$key} = "$nosave"; + +$key = q/create-install-dir/; +$external_latex_labels{$key} = q|2.2|; +$noresave{$key} = "$nosave"; + +$key = q/mail-server/; +$external_latex_labels{$key} = q|6|; +$noresave{$key} = "$nosave"; + +$key = q/qmail-issues/; +$external_latex_labels{$key} = q|6.4|; +$noresave{$key} = "$nosave"; + +$key = q/troubleshooting/; +$external_latex_labels{$key} = q|14|; +$noresave{$key} = "$nosave"; + +$key = q/customizing/; +$external_latex_labels{$key} = q|7|; +$noresave{$key} = "$nosave"; + +$key = q/building/; +$external_latex_labels{$key} = q|14|; +$noresave{$key} = "$nosave"; + +$key = q/postfix-virtual/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + +$key = q/bsd-issues/; +$external_latex_labels{$key} = q|15.2|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/doc/mailman-install/mail-server.html b/doc/mailman-install/mail-server.html new file mode 100644 index 00000000..0621792b --- /dev/null +++ b/doc/mailman-install/mail-server.html @@ -0,0 +1,145 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="customizing.html" /> +<link rel="prev" href="node10.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node12.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6 Set up your mail server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="5 set up your" + href="node10.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1 using the Postfix" + href="node12.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node10.html">5 Set up your</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node12.html">6.1 Using the Postfix</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001600000000000000000"></a><a name="mail-server"></a> +<br> +6 Set up your mail server +</h1> + +<p> +This section describes some of the things you need to do to connect Mailman's +email interface to your mail server. The instructions here are different for +each mail server; if your mail server is not described in the following +subsections, try to generalize from the existing documentation, and consider +contributing documentation updates to the Mailman developers. + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node12.html">6.1 Using the Postfix mail server</a> +<ul> +<li><a href="node13.html">6.1.1 Integrating Postfix and Mailman</a> +<li><a href="postfix-virtual.html">6.1.2 Virtual domains</a> +<li><a href="node15.html">6.1.3 An alternative approach</a> +</ul> +<li><a href="node16.html">6.2 Using the Exim mail server</a> +<ul> +<li><a href="node17.html">6.2.1 Exim configuration</a> +<li><a href="node18.html">6.2.2 Main configuration settings</a> +<li><a href="exim3-transport.html">6.2.3 Transport for Exim 3</a> +<li><a href="node20.html">6.2.4 Director for Exim 3</a> +<li><a href="node21.html">6.2.5 Router for Exim 4</a> +<li><a href="node22.html">6.2.6 Transports for Exim 4</a> +<li><a href="node23.html">6.2.7 Additional notes</a> +<li><a href="node24.html">6.2.8 Problems</a> +<li><a href="node25.html">6.2.9 Receiver Verification</a> +<li><a href="node26.html">6.2.10 SMTP Callback</a> +<li><a href="node27.html">6.2.11 Doing VERP with Exim and Mailman</a> +<li><a href="node28.html">6.2.12 Virtual Domains</a> +<li><a href="node29.html">6.2.13 List Verification</a> +<li><a href="node30.html">6.2.14 Document History</a> +</ul> +<li><a href="node31.html">6.3 Using the Sendmail mail server</a> +<ul> +<li><a href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +<li><a href="node33.html">6.3.2 Integrating Sendmail and Mailman</a> +<li><a href="node34.html">6.3.3 Performance notes</a> +</ul> +<li><a href="qmail-issues.html">6.4 Using the Qmail mail server</a> +<ul> +<li><a href="node36.html">6.4.1 Information on VERP</a> +<li><a href="node37.html">6.4.2 Virtual mail server</a> +<li><a href="node38.html">6.4.3 More information</a> +</ul></ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="5 set up your" + href="node10.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1 using the Postfix" + href="node12.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node10.html">5 Set up your</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node12.html">6.1 Using the Postfix</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/mailman-install.css b/doc/mailman-install/mailman-install.css new file mode 100644 index 00000000..06a613c2 --- /dev/null +++ b/doc/mailman-install/mailman-install.css @@ -0,0 +1,243 @@ +/* + * The first part of this is the standard CSS generated by LaTeX2HTML, + * with the "empty" declarations removed. + */ + +/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */ +.math { font-family: "Century Schoolbook", serif; } +.math i { font-family: "Century Schoolbook", serif; + font-weight: bold } +.boldmath { font-family: "Century Schoolbook", serif; + font-weight: bold } + +/* + * Implement both fixed-size and relative sizes. + * + * I think these can be safely removed, as it doesn't appear that + * LaTeX2HTML ever generates these, even though these are carried + * over from the LaTeX2HTML stylesheet. + */ +small.xtiny { font-size : xx-small; } +small.tiny { font-size : x-small; } +small.scriptsize { font-size : smaller; } +small.footnotesize { font-size : small; } +big.xlarge { font-size : large; } +big.xxlarge { font-size : x-large; } +big.huge { font-size : larger; } +big.xhuge { font-size : xx-large; } + +/* + * Document-specific styles come next; + * these are added for the Python documentation. + * + * Note that the size specifications for the H* elements are because + * Netscape on Solaris otherwise doesn't get it right; they all end up + * the normal text size. + */ + +body { color: #000000; + background-color: #ffffff; } + +a:link:active { color: #ff0000; } +a:link:hover { background-color: #bbeeff; } +a:visited:hover { background-color: #bbeeff; } +a:visited { color: #551a8b; } +a:link { color: #0000bb; } + +h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif; + font-weight: bold; } +h1 { font-size: 180%; } +h2 { font-size: 150%; } +h3, h4 { font-size: 120%; } + +/* These are section titles used in navigation links, so make sure we + * match the section header font here, even it not the weight. + */ +.sectref { font-family: avantgarde, sans-serif; } +/* And the label before the titles in navigation: */ +.navlabel { font-size: 85%; } + + +/* LaTeX2HTML insists on inserting <br> elements into headers which + * are marked with \label. This little bit of CSS magic ensures that + * these elements don't cause spurious whitespace to be added. + */ +h1>br, h2>br, h3>br, +h4>br, h5>br, h6>br { display: none; } + +code, tt { font-family: "lucida typewriter", lucidatypewriter, + monospace; } +var { font-family: times, serif; + font-style: italic; + font-weight: normal; } + +.Unix { font-variant: small-caps; } + +.typelabel { font-family: lucida, sans-serif; } + +.navigation td { background-color: #99ccff; + font-weight: bold; + font-family: avantgarde, sans-serif; + font-size: 110%; } + +div.warning { background-color: #fffaf0; + border: thin solid black; + padding: 1em; + margin-left: 2em; + margin-right: 2em; } + +div.warning .label { font-family: sans-serif; + font-size: 110%; + margin-right: 0.5em; } + +div.note { background-color: #fffaf0; + border: thin solid black; + padding: 1em; + margin-left: 2em; + margin-right: 2em; } + +div.note .label { margin-right: 0.5em; + font-family: sans-serif; } + +address { font-size: 80%; } +.release-info { font-style: italic; + font-size: 80%; } + +.titlegraphic { vertical-align: top; } + +.verbatim pre { color: #00008b; + font-family: "lucida typewriter", lucidatypewriter, + monospace; + font-size: 90%; } +.verbatim { margin-left: 2em; } +.verbatim .footer { padding: 0.05in; + font-size: 85%; + background-color: #99ccff; + margin-right: 0.5in; } + +.grammar { background-color: #99ccff; + margin-right: 0.5in; + padding: 0.05in; } +.grammar-footer { padding: 0.05in; + font-size: 85%; } +.grammartoken { font-family: "lucida typewriter", lucidatypewriter, + monospace; } + +.productions { background-color: #bbeeff; } +.productions a:active { color: #ff0000; } +.productions a:link:hover { background-color: #99ccff; } +.productions a:visited:hover { background-color: #99ccff; } +.productions a:visited { color: #551a8b; } +.productions a:link { color: #0000bb; } +.productions table { vertical-align: baseline; + empty-cells: show; } +.productions > table td, +.productions > table th { padding: 2px; } +.productions > table td:first-child, +.productions > table td:last-child { + font-family: "lucida typewriter", + lucidatypewriter, + monospace; + } +/* same as the second selector above, but expressed differently for Opera */ +.productions > table td:first-child + td + td { + font-family: "lucida typewriter", + lucidatypewriter, + monospace; + vertical-align: baseline; + } +.productions > table td:first-child + td { + padding-left: 1em; + padding-right: 1em; + } +.productions > table tr { vertical-align: baseline; } + +.email { font-family: avantgarde, sans-serif; } +.mailheader { font-family: avantgarde, sans-serif; } +.mimetype { font-family: avantgarde, sans-serif; } +.newsgroup { font-family: avantgarde, sans-serif; } +.url { font-family: avantgarde, sans-serif; } +.file { font-family: avantgarde, sans-serif; } +.guilabel { font-family: avantgarde, sans-serif; } + +.realtable { border-collapse: collapse; + border-color: black; + border-style: solid; + border-width: 0px 0px 2px 0px; + empty-cells: show; + margin-left: auto; + margin-right: auto; + padding-left: 0.4em; + padding-right: 0.4em; + } +.realtable tbody { vertical-align: baseline; } +.realtable tfoot { display: table-footer-group; } +.realtable thead { background-color: #99ccff; + border-width: 0px 0px 2px 1px; + display: table-header-group; + font-family: avantgarde, sans-serif; + font-weight: bold; + vertical-align: baseline; + } +.realtable thead :first-child { + border-width: 0px 0px 2px 0px; + } +.realtable thead th { border-width: 0px 0px 2px 1px } +.realtable td, +.realtable th { border-color: black; + border-style: solid; + border-width: 0px 0px 1px 1px; + padding-left: 0.4em; + padding-right: 0.4em; + } +.realtable td:first-child, +.realtable th:first-child { + border-left-width: 0px; + vertical-align: baseline; + } +.center { text-align: center; } +.left { text-align: left; } +.right { text-align: right; } + +.refcount-info { font-style: italic; } +.refcount-info .value { font-weight: bold; + color: #006600; } + +/* + * Some decoration for the "See also:" blocks, in part inspired by some of + * the styling on Lars Marius Garshol's XSA pages. + * (The blue in the navigation bars is #99CCFF.) + */ +.seealso { background-color: #fffaf0; + border: thin solid black; + padding: 0pt 1em 4pt 1em; } + +.seealso > .heading { font-size: 110%; + font-weight: bold; } + +/* + * Class 'availability' is used for module availability statements at + * the top of modules. + */ +.availability .platform { font-weight: bold; } + + +/* + * Additional styles for the distutils package. + */ +.du-command { font-family: monospace; } +.du-option { font-family: avantgarde, sans-serif; } +.du-filevar { font-family: avantgarde, sans-serif; + font-style: italic; } +.du-xxx:before { content: "** "; + font-weight: bold; } +.du-xxx:after { content: " **"; + font-weight: bold; } + + +/* + * Some specialization for printed output. + */ +@media print { + .online-navigation { display: none; } + } diff --git a/doc/mailman-install/mailman-install.html b/doc/mailman-install/mailman-install.html new file mode 100644 index 00000000..6fd98aca --- /dev/null +++ b/doc/mailman-install/mailman-install.html @@ -0,0 +1,135 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="front.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>GNU Mailman - Installation Manual</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></td> +<td class='online-navigation'><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></td> +<td class='online-navigation'><a rel="next" title="Front Matter" + href="front.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="front.html">Front Matter</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<p> + +<div class="titlepage"> +<div class='center'> +<h1>GNU Mailman - Installation Manual</h1> +<p><b><font size="+2">Barry Warsaw</font></b></p> +<p><span class="email">barry (at) list dot org</span></p> +<p><strong>Release 2.1</strong><br /> +<strong>December 5, 2007</strong></p> +<p></p> +</div> +</div> + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"></a> + +<ul class="ChildLinks"> +<li><a href="front.html">Front Matter</a> +<ul> +<li><a href="node2.html">1 Installation Requirements</a> +<li><a href="node3.html">2 Set up your system</a> +<ul> +<li><a href="node4.html">2.1 Add the group and user</a> +<li><a href="create-install-dir.html">2.2 Create the installation directory</a> +</ul> +<li><a href="node6.html">3 Build and install Mailman</a> +<ul> +<li><a href="node7.html">3.1 Run <b class="program">configure</b></a> +<li><a href="node8.html">3.2 Make and install</a> +</ul> +<li><a href="node9.html">4 Check your installation</a> +<li><a href="node10.html">5 Set up your web server</a> +<li><a href="mail-server.html">6 Set up your mail server</a> +<ul> +<li><a href="node12.html">6.1 Using the Postfix mail server</a> +<li><a href="node16.html">6.2 Using the Exim mail server</a> +<li><a href="node31.html">6.3 Using the Sendmail mail server</a> +<li><a href="qmail-issues.html">6.4 Using the Qmail mail server</a> +</ul> +<li><a href="customizing.html">7 Review your site defaults</a> +<li><a href="node40.html">8 Create a site-wide mailing list</a> +<li><a href="node41.html">9 Set up cron</a> +<li><a href="node42.html">10 Start the Mailman qrunner</a> +<li><a href="node43.html">11 Check the hostname settings</a> +<li><a href="node44.html">12 Create the site password</a> +<li><a href="node45.html">13 Create your first mailing list</a> +<li><a href="troubleshooting.html">14 Troubleshooting</a> +<li><a href="node47.html">15 Platform and operating system notes</a> +<ul> +<li><a href="node48.html">15.1 GNU/Linux issues</a> +<li><a href="bsd-issues.html">15.2 BSD issues</a> +<li><a href="node50.html">15.3 MacOSX issues</a> +</ul> +</ul> +<li><a href="about.html">About this document ...</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></td> +<td class='online-navigation'><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></td> +<td class='online-navigation'><a rel="next" title="Front Matter" + href="front.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="front.html">Front Matter</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/modules.png b/doc/mailman-install/modules.png Binary files differnew file mode 100644 index 00000000..8fa8b755 --- /dev/null +++ b/doc/mailman-install/modules.png diff --git a/doc/mailman-install/next.png b/doc/mailman-install/next.png Binary files differnew file mode 100644 index 00000000..cfe5e51c --- /dev/null +++ b/doc/mailman-install/next.png diff --git a/doc/mailman-install/node10.html b/doc/mailman-install/node10.html new file mode 100644 index 00000000..ad9dd805 --- /dev/null +++ b/doc/mailman-install/node10.html @@ -0,0 +1,193 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="mail-server.html" /> +<link rel="prev" href="node9.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="mail-server.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>5 Set up your web server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="4 check your installation" + href="node9.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6 set up your" + href="mail-server.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node9.html">4 Check your installation</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="mail-server.html">6 Set up your</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001500000000000000000"> +5 Set up your web server</a> +</h1> + +<p> +Congratulations! You've installed the Mailman software. To get everything +running you need to hook Mailman up to both your web server and your mail +system. + +<p> +If you plan on running your mail and web servers on different machines, +sharing Mailman installations via NFS, be sure that the clocks on those two +machines are synchronized closely. You might take a look at the file +<span class="file">Mailman/LockFile.py</span>; the constant <var>CLOCK_SLOP</var> helps the locking +mechanism compensate for clock skew in this type of environment. + +<p> +This section describes some of the things you need to do to connect Mailman's +web interface to your web server. The instructions here are somewhat geared +toward the Apache web server, so you should consult your web server +documentation for details. + +<p> +You must configure your web server to enable CGI script permission in the +<span class="file"><var>$prefix</var>/cgi-bin</span> to run CGI scripts. The line you should add +might look something like the following, with the real absolute directory +substituted for <var>$prefix</var>, of course: + +<p> +<div class="verbatim"><pre> + Exec /mailman/* $prefix/cgi-bin/* +</pre></div> + +<p> +or: + +<p> +<div class="verbatim"><pre> + ScriptAlias /mailman/ $prefix/cgi-bin/ +</pre></div> + +<p> +<div class="warning"><b class="label">Warning:</b> + +You want to be very sure that the user id under which your CGI scripts run is +<strong>not</strong> in the <code>mailman</code> group you created above, otherwise private +archives will be accessible to anyone. +</div> + +<p> +Copy the Mailman, Python, and GNU logos to a location accessible to your web +server. E.g. with Apache, you've usually got an <span class="file">icons</span> directory that +you can drop the images into. For example: + +<p> +<div class="verbatim"><pre> + % cp $prefix/icons/*.{jpg,png} /path/to/apache/icons +</pre></div> + +<p> +You then want to add a line to your <span class="file"><var>$prefix</var>/Mailman/mm_cfg.py</span> +file which sets the base URL for the logos. For example: + +<p> +<div class="verbatim"><pre> + IMAGE_LOGOS = '/images/' +</pre></div> + +<p> +The default value for <var>IMAGE_LOGOS</var> is <span class="file">/icons/</span>. Read the comment +in <span class="file">Defaults.py.in</span> for details. + +<p> +Configure your web server to point to the Pipermail public mailing list +archives. For example, in Apache: + +<p> +<div class="verbatim"><pre> + Alias /pipermail/ $varprefix/archives/public/ +</pre></div> + +<p> +where <var>$varprefix</var> is usually <var>$prefix</var> unless you've used the +<b class="programopt">--with-var-prefix</b> option to <b class="program">configure</b>. Also be +sure to configure your web server to follow symbolic links in this directory, +otherwise public Pipermail archives won't be accessible. For Apache users, +consult the <var>FollowSymLinks</var> option. + +<p> +If you're going to be supporting internationalized public archives, you will +probably want to turn off any default charset directive for the Pipermail +directory, otherwise your multilingual archive pages won't show up correctly. +Here's an example for Apache, based on the standard installation directories: + +<p> +<div class="verbatim"><pre> + <Directory "/usr/local/mailman/archives/public/"> + AddDefaultCharset Off + </Directory> +</pre></div> + +<p> +Now restart your web server. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="4 check your installation" + href="node9.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6 set up your" + href="mail-server.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node9.html">4 Check your installation</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="mail-server.html">6 Set up your</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node12.html b/doc/mailman-install/node12.html new file mode 100644 index 00000000..14461325 --- /dev/null +++ b/doc/mailman-install/node12.html @@ -0,0 +1,144 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node16.html" /> +<link rel="prev" href="mail-server.html" /> +<link rel="parent" href="mail-server.html" /> +<link rel="next" href="node13.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.1 Using the Postfix mail server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6 set up your" + href="mail-server.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1.1 integrating Postfix and" + href="node13.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node13.html">6.1.1 Integrating Postfix and</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001610000000000000000"> +6.1 Using the Postfix mail server</a> +</h2> + +<p> +Mailman should work pretty much out of the box with a standard Postfix +installation. It has been tested with various Postfix versions up to and +including Postfix 2.1.5. + +<p> +In order to support Mailman's optional VERP delivery, you will want to disable +<code>luser_relay</code> (the default) and you will want to set +<code>recipient_delimiter</code> for extended address semantics. You should comment +out any <code>luser_relay</code> value in your <span class="file">main.cf</span> and just go with the +defaults. Also, add this to your <span class="file">main.cf</span> file: + +<p> +<div class="verbatim"><pre> + recipient_delimiter = + +</pre></div> + +<p> +Using "<tt class="samp">+</tt>" as the delimiter works well with the default values for +<var>VERP_FORMAT</var> and <var>VERP_REGEXP</var> in <span class="file">Defaults.py</span>. + +<p> +When attempting to deliver a message to a non-existent local address, Postfix +may return a 450 error code. Since this is a transient error code, Mailman +will continue to attempt to deliver the message for +<var>DELIVERY_RETRY_PERIOD</var> - 5 days by default. You might want to set +Postfix up so that it returns permanent error codes for non-existent local +users by adding the following to your <span class="file">main.cf</span> file: + +<p> +<div class="verbatim"><pre> + unknown_local_recipient_reject_code = 550 +</pre></div> + +<p> +Finally, if you are using Postfix-style virtual domains, read the section on +virtual domain support below. + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node13.html">6.1.1 Integrating Postfix and Mailman</a> +<li><a href="postfix-virtual.html">6.1.2 Virtual domains</a> +<li><a href="node15.html">6.1.3 An alternative approach</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6 set up your" + href="mail-server.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1.1 integrating Postfix and" + href="node13.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node13.html">6.1.1 Integrating Postfix and</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node13.html b/doc/mailman-install/node13.html new file mode 100644 index 00000000..301d090b --- /dev/null +++ b/doc/mailman-install/node13.html @@ -0,0 +1,207 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="postfix-virtual.html" /> +<link rel="prev" href="node12.html" /> +<link rel="parent" href="node12.html" /> +<link rel="next" href="postfix-virtual.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.1.1 Integrating Postfix and Mailman</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1 using the Postfix" + href="node12.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.1 using the Postfix" + href="node12.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1.2 virtual domains" + href="postfix-virtual.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="postfix-virtual.html">6.1.2 Virtual domains</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001611000000000000000"> +6.1.1 Integrating Postfix and Mailman</a> +</h3> + +<p> +You can integrate Postfix and Mailman such that when new lists are created, or +lists are removed, Postfix's alias database will be automatically updated. +The following are the steps you need to take to make this work. + +<p> +In the description below, we assume that you've installed Mailman in the +default location, i.e. <span class="file">/usr/local/mailman</span>. If that's not the case, +adjust the instructions according to your use of <b class="program">configure</b>'s +<b class="programopt">--prefix</b> and <b class="programopt">--with-var-prefix</b> options. + +<p> +<div class="note"><b class="label">Note:</b> + +If you are using virtual domains and you want Mailman to honor your virtual +domains, read the <a href="postfix-virtual.html#postfix-virtual">6.1</a> section below first! +</div> + +<p> + +<ul> +<li>Add this to the bottom of the <span class="file"><var>$prefix</var>/Mailman/mm_cfg.py</span> + file: + +<p> +<div class="verbatim"><pre> + MTA = 'Postfix' +</pre></div> + +<p> +The MTA variable names a module in the <span class="file">Mailman/MTA</span> directory + which contains the mail server-specific functions to be executed when a + list is created or removed. + +<p> +</li> +<li>Look at the <span class="file">Defaults.py</span> file for the variables + <var>POSTFIX_ALIAS_CMD</var> and <var>POSTFIX_MAP_CMD</var> command. Make sure + these point to your <b class="program">postalias</b> and <b class="program">postmap</b> programs + respectively. Remember that if you need to make changes, do it in + <span class="file">mm_cfg.py</span>. + +<p> +</li> +<li>Run the <b class="program">bin/genaliases</b> script to initialize your + <span class="file">aliases</span> file. + +<p> +<div class="verbatim"><pre> + % cd /usr/local/mailman + % bin/genaliases + </pre></div> + +<p> +Make sure that the owner of the <span class="file">data/aliases</span> and + <span class="file">data/aliases.db</span> file is <code>mailman</code>, that the group owner + for those files is <code>mailman</code>, or whatever user and group you used + in the configure command, and that both files are group writable: + +<p> +<div class="verbatim"><pre> + % su + % chown mailman:mailman data/aliases* + % chmod g+w data/aliases* + </pre></div> + +<p> +</li> +<li>Hack your Postfix's <span class="file">main.cf</span> file to include the following path in + your <var>alias_maps</var> variable: + +<p> +<div class="verbatim"><pre> + /usr/local/mailman/data/aliases +</pre></div> + +<p> +Note that there should be no trailing <code>.db</code>. Do not include this + in your <var>alias_database</var> variable. This is because you do not want + Postfix's <b class="program">newaliases</b> command to modify Mailman's + <span class="file">aliases.db</span> file, but you do want Postfix to consult + <span class="file">aliases.db</span> when looking for local addresses. + +<p> +You probably want to use a <code>hash:</code> style database for this entry. + Here's an example: + +<p> +<div class="verbatim"><pre> + alias_maps = hash:/etc/postfix/aliases, + hash:/usr/local/mailman/data/aliases +</pre></div> + +<p> +</li> +<li>When you configure Mailman, use the + <b class="programopt">--with-mail-gid=mailman</b> switch; this will be the default + if you configured Mailman after adding the <code>mailman</code> owner. + Because the owner of the <span class="file">aliases.db</span> file is <code>mailman</code>, + Postfix will execute Mailman's wrapper program as uid and gid + <code>mailman</code>. + +<p> +</li> +</ul> + +<p> +That's it! One caveat: when you add or remove a list, the <span class="file">aliases.db</span> +file will updated, but it will not automatically run <b class="program">postfix reload</b>. +This is because you need to be root to run this and suid-root scripts are not +secure. The only effect of this is that it will take about a minute for +Postfix to notice the change to the <span class="file">aliases.db</span> file and update its +tables. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1 using the Postfix" + href="node12.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.1 using the Postfix" + href="node12.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1.2 virtual domains" + href="postfix-virtual.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="postfix-virtual.html">6.1.2 Virtual domains</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node15.html b/doc/mailman-install/node15.html new file mode 100644 index 00000000..e5f597f4 --- /dev/null +++ b/doc/mailman-install/node15.html @@ -0,0 +1,111 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="postfix-virtual.html" /> +<link rel="parent" href="node12.html" /> +<link rel="next" href="node16.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.1.3 An alternative approach</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1.2 virtual domains" + href="postfix-virtual.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.1 using the Postfix" + href="node12.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2 using the Exim" + href="node16.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="postfix-virtual.html">6.1.2 Virtual domains</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node16.html">6.2 Using the Exim</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001613000000000000000"> +6.1.3 An alternative approach</a> +</h3> + +<p> +Fil <span class="email">fil@rezo.net</span> has an alternative approach based on virtual maps and +regular expressions, as described at: + +<p> + +<ul> +<li>(French) <a class="url" href="http://listes.rezo.net/comment.php">http://listes.rezo.net/comment.php</a> +</li> +<li>(English) <a class="url" href="http://listes.rezo.net/how.php">http://listes.rezo.net/how.php</a> +</li> +</ul> + +<p> +This is a good (and simpler) alternative if you don't mind exposing an +additional hostname in the domain part of the addresses people will use to +contact your list. I.e. if people should use <code>mylist@lists.dom.ain</code> +instead of <code>mylist@dom.ain</code>. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1.2 virtual domains" + href="postfix-virtual.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.1 using the Postfix" + href="node12.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2 using the Exim" + href="node16.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="postfix-virtual.html">6.1.2 Virtual domains</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node16.html">6.2 Using the Exim</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node16.html b/doc/mailman-install/node16.html new file mode 100644 index 00000000..2349f89d --- /dev/null +++ b/doc/mailman-install/node16.html @@ -0,0 +1,132 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node31.html" /> +<link rel="prev" href="node12.html" /> +<link rel="parent" href="mail-server.html" /> +<link rel="next" href="node17.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2 Using the Exim mail server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1.3 an alternative approach" + href="node15.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.1 exim configuration" + href="node17.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node15.html">6.1.3 An alternative approach</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node17.html">6.2.1 Exim configuration</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001620000000000000000"> +6.2 Using the Exim mail server</a> +</h2> + +<p> +<div class="note"><b class="label">Note:</b> + +This section is derived from Nigel Metheringham's ``HOWTO - Using Exim and +Mailman together'', which covers Mailman 2.0.x and Exim 3. It has been +updated to cover Mailman 2.1 and Exim 4. The original document is here: +<a class="url" href="http://www.exim.org/howto/mailman.html">http://www.exim.org/howto/mailman.html</a>. +</div> + +<p> +There is no Mailman configuration needed other than the standard options +detailed in the Mailman install documentation. The Exim configuration is +transparent to Mailman. The user and group settings for Mailman must match +those in the config fragments given below. + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node17.html">6.2.1 Exim configuration</a> +<li><a href="node18.html">6.2.2 Main configuration settings</a> +<li><a href="exim3-transport.html">6.2.3 Transport for Exim 3</a> +<li><a href="node20.html">6.2.4 Director for Exim 3</a> +<li><a href="node21.html">6.2.5 Router for Exim 4</a> +<li><a href="node22.html">6.2.6 Transports for Exim 4</a> +<li><a href="node23.html">6.2.7 Additional notes</a> +<li><a href="node24.html">6.2.8 Problems</a> +<li><a href="node25.html">6.2.9 Receiver Verification</a> +<li><a href="node26.html">6.2.10 SMTP Callback</a> +<li><a href="node27.html">6.2.11 Doing VERP with Exim and Mailman</a> +<li><a href="node28.html">6.2.12 Virtual Domains</a> +<li><a href="node29.html">6.2.13 List Verification</a> +<li><a href="node30.html">6.2.14 Document History</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1.3 an alternative approach" + href="node15.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.1 exim configuration" + href="node17.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node15.html">6.1.3 An alternative approach</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node17.html">6.2.1 Exim configuration</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node17.html b/doc/mailman-install/node17.html new file mode 100644 index 00000000..a133470b --- /dev/null +++ b/doc/mailman-install/node17.html @@ -0,0 +1,152 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node18.html" /> +<link rel="prev" href="node16.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node18.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.1 Exim configuration</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2 using the Exim" + href="node16.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.2 main configuration settings" + href="node18.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node18.html">6.2.2 Main configuration settings</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001621000000000000000"> +6.2.1 Exim configuration</a> +</h3> + +<p> +The Exim configuration is built so that a list created within Mailman +automatically appears to Exim without the need for defining any additional +aliases. + +<p> +The drawback of this configuration is that it will work poorly on systems +supporting lists in several different mail domains. While Mailman handles +virtual domains, it does not yet support having two distinct lists with the +same name in different virtual domains, using the same Mailman installation. +This will eventually change. (But see below for a variation on this scheme +that should accommodate virtual domains better.) + +<p> +The configuration file excerpts below are for use in an already functional +Exim configuration, which accepts mail for the domain in which the list +resides. If this domain is separate from the others handled by your Exim +configuration, then you'll need to: + +<p> + +<ul> +<li>add the list domain, ``my.list.domain'' to <var>local_domains</var> + +<p> +</li> +<li>add a ``domains=my.list.domain'' option to the director (router) for the + list + +<p> +</li> +<li>(optional) exclude that domain from your other directors (routers) +</li> +</ul> + +<p> +<div class="note"><b class="label">Note:</b> + +The instructions in this document should work with either Exim 3 or Exim 4. +In Exim 3, you must have a <var>local_domains</var> configuration setting; in Exim +4, you most likely have a <var>local_domains</var> domainlist. If you don't, you +probably know what you're doing and can adjust accordingly. Similarly, in +Exim 4 the concept of ``directors'' has disappeared - there are only routers +now. So if you're using Exim 4, whenever this document says ``director'', +read ``router''. +</div> + +<p> +Whether you are using Exim 3 or Exim 4, you will need to add some macros to +the main section of your Exim config file. You will also need to define one +new transport. With Exim 3, you'll need to add a new director; with Exim 4, a +new router plays the same role. + +<p> +Finally, the configuration supplied here should allow co-habiting Mailman 2.0 +and 2.1 installations, with the proviso that you'll probably want to use +<code>mm21</code> in place of <code>mailman</code> - e.g., <var>MM21_HOME</var>, +<var>mm21_transport</var>, etc. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2 using the Exim" + href="node16.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.2 main configuration settings" + href="node18.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node18.html">6.2.2 Main configuration settings</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node18.html b/doc/mailman-install/node18.html new file mode 100644 index 00000000..191dea51 --- /dev/null +++ b/doc/mailman-install/node18.html @@ -0,0 +1,111 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="exim3-transport.html" /> +<link rel="prev" href="node17.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="exim3-transport.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.2 Main configuration settings</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.1 exim configuration" + href="node17.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.3 transport for Exim" + href="exim3-transport.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node17.html">6.2.1 Exim configuration</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="exim3-transport.html">6.2.3 Transport for Exim</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001622000000000000000"> +6.2.2 Main configuration settings</a> +</h3> + +<p> +First, you need to add some macros to the top of your Exim config file. These +just make the director (router) and transport below a bit cleaner. Obviously, +you'll need to edit these based on how you configured and installed Mailman. + +<p> +<div class="verbatim"><pre> + # Home dir for your Mailman installation -- aka Mailman's prefix + # directory. + MAILMAN_HOME=/usr/local/mailman + MAILMAN_WRAP=MAILMAN_HOME/mail/mailman + + # User and group for Mailman, should match your --with-mail-gid + # switch to Mailman's configure script. + MAILMAN_USER=mailman + MAILMAN_GROUP=mailman +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.1 exim configuration" + href="node17.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.3 transport for Exim" + href="exim3-transport.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node17.html">6.2.1 Exim configuration</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="exim3-transport.html">6.2.3 Transport for Exim</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node2.html b/doc/mailman-install/node2.html new file mode 100644 index 00000000..64be98be --- /dev/null +++ b/doc/mailman-install/node2.html @@ -0,0 +1,130 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node3.html" /> +<link rel="prev" href="front.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node3.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>1 Installation Requirements</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="Front Matter" + href="front.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="2 set up your" + href="node3.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="front.html">Front Matter</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node3.html">2 Set up your</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001100000000000000000"> +1 Installation Requirements</a> +</h1> + +<p> +<em>Please note that the information on this page may be out of date.</em> +Check for the +<a class="ulink" href="http://wiki.list.org/x/bAM" + >latest installation information</a> on the +<a class="ulink" href="http://wiki.list.org" + >Mailman wiki</a>. + +<p> +GNU Mailman works on most POSIX-based systems such as <span class="Unix">Unix</span>, MacOSX, or +GNU/Linux. It does not currently work on Windows. You must have a mail +server that you can send messages to, and a web server that supports the +CGI/1.1 API. <a class="ulink" href="http://httpd.apache.org" + >Apache</a> makes a fine choice for +web server, and mail servers such as +<a class="ulink" href="http://www.postfix.org" + >Postfix</a>, +<a class="ulink" href="http://www.exim.org" + >Exim</a>, +<a class="ulink" href="http://www.sendmail.org" + >Sendmail</a>, and +<a class="ulink" href="http://cr.yp.to/qmail.html" + >qmail</a> should +work just fine. + +<p> +To install Mailman from source, you will need an ANSI C compiler to build +Mailman's security wrappers. The +<a class="ulink" href="http://gcc.gnu.org" + >GNU C compiler gcc</a> works well. + +<p> +You must have the <a class="ulink" href="http://www.python.org" + >Python</a> interpreter installed +somewhere on your system. As of this writing, Python 2.4.4 is recommended, +but see the wiki page above for the latest information. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="Front Matter" + href="front.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="2 set up your" + href="node3.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="front.html">Front Matter</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node3.html">2 Set up your</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node20.html b/doc/mailman-install/node20.html new file mode 100644 index 00000000..b024c716 --- /dev/null +++ b/doc/mailman-install/node20.html @@ -0,0 +1,115 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node21.html" /> +<link rel="prev" href="exim3-transport.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node21.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.4 Director for Exim 3</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.3 transport for Exim" + href="exim3-transport.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.5 router for Exim" + href="node21.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="exim3-transport.html">6.2.3 Transport for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node21.html">6.2.5 Router for Exim</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001624000000000000000"> +6.2.4 Director for Exim 3</a> +</h3> + +<p> +If you're using Exim 3, you'll need to add the following director to your +config file (directors go between the second and third ``end'' lines). Also, +don't forget that order matters - e.g. you can make Mailman lists take +precedence over system aliases by putting this director in front of your +aliasfile director, or vice-versa. + +<p> +<div class="verbatim"><pre> + # Handle all addresses related to a list 'foo': the posting address. + # Automatically detects list existence by looking + # for lists/$local_part/config.pck under MAILMAN_HOME. + mailman_director: + driver = smartuser + require_files = MAILMAN_HOME/lists/$local_part/config.pck + suffix_optional + suffix = -bounces : -bounces+* : \ + -confirm+* : -join : -leave : \ + -owner : -request : -admin + transport = mailman_transport +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.3 transport for Exim" + href="exim3-transport.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.5 router for Exim" + href="node21.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="exim3-transport.html">6.2.3 Transport for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node21.html">6.2.5 Router for Exim</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node21.html b/doc/mailman-install/node21.html new file mode 100644 index 00000000..63bd2949 --- /dev/null +++ b/doc/mailman-install/node21.html @@ -0,0 +1,112 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node22.html" /> +<link rel="prev" href="node20.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node22.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.5 Router for Exim 4</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.4 director for Exim" + href="node20.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.6 transports for Exim" + href="node22.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node20.html">6.2.4 Director for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node22.html">6.2.6 Transports for Exim</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001625000000000000000"> +6.2.5 Router for Exim 4</a> +</h3> + +<p> +In Exim 4, there's no such thing as directors - you need to add a new router +instead. Also, the canonical order of the configuration file was changed so +routers come before transports, so the router for Exim 4 comes first here. +Put this router somewhere after the ``begin routers'' line of your config +file, and remember that order matters. + +<p> +<div class="verbatim"><pre> + mailman_router: + driver = accept + require_files = MAILMAN_HOME/lists/$local_part/config.pck + local_part_suffix_optional + local_part_suffix = -bounces : -bounces+* : \ + -confirm+* : -join : -leave : \ + -owner : -request : -admin + transport = mailman_transport +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.4 director for Exim" + href="node20.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.6 transports for Exim" + href="node22.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node20.html">6.2.4 Director for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node22.html">6.2.6 Transports for Exim</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node22.html b/doc/mailman-install/node22.html new file mode 100644 index 00000000..2c4549b5 --- /dev/null +++ b/doc/mailman-install/node22.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node23.html" /> +<link rel="prev" href="node21.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node23.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.6 Transports for Exim 4</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.5 router for Exim" + href="node21.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.7 additional notes" + href="node23.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node21.html">6.2.5 Router for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node23.html">6.2.7 Additional notes</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001626000000000000000"> +6.2.6 Transports for Exim 4</a> +</h3> + +<p> +The transport for Exim 4 is the same as for Exim 3 (see <a href="exim3-transport.html#exim3-transport">6.2</a>; +just copy the transport given above to somewhere under the ``begin +transports'' line of your Exim config file. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.5 router for Exim" + href="node21.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.7 additional notes" + href="node23.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node21.html">6.2.5 Router for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node23.html">6.2.7 Additional notes</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node23.html b/doc/mailman-install/node23.html new file mode 100644 index 00000000..582b11cf --- /dev/null +++ b/doc/mailman-install/node23.html @@ -0,0 +1,102 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node24.html" /> +<link rel="prev" href="node22.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node24.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.7 Additional notes</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.6 transports for Exim" + href="node22.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.8 Problems" + href="node24.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node22.html">6.2.6 Transports for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node24.html">6.2.8 Problems</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001627000000000000000"> +6.2.7 Additional notes</a> +</h3> + +<p> +Exim should be configured to allow reasonable volume - e.g. don't set +<var>max_recipients</var> down to a silly value - and with normal degrees of +security - specifically, be sure to allow relaying from 127.0.0.1, but pretty +much nothing else. Parallel deliveries and other tweaks can also be used if +you like; experiment with your setup to see what works. Delay warning +messages should be switched off or configured to only happen for non-list +mail, unless you like receiving tons of mail when some random host is down. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.6 transports for Exim" + href="node22.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.8 Problems" + href="node24.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node22.html">6.2.6 Transports for Exim</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node24.html">6.2.8 Problems</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node24.html b/doc/mailman-install/node24.html new file mode 100644 index 00000000..fa81b346 --- /dev/null +++ b/doc/mailman-install/node24.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node25.html" /> +<link rel="prev" href="node23.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node25.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.8 Problems</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.7 additional notes" + href="node23.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.9 receiver Verification" + href="node25.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node23.html">6.2.7 Additional notes</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node25.html">6.2.9 Receiver Verification</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001628000000000000000"> +6.2.8 Problems</a> +</h3> + +<p> + +<ul> +<li>Mailman will send as many <code>MAIL FROM</code>/<code>RCPT TO</code> as it needs. + It may result in more than 10 or 100 messages sent in one connection, + which will exceed the default value of Exim's + <var>smtp_accept_queue_per_connection</var> value. This is bad because it + will cause Exim to switch into queue mode and severely delay delivery of + your list messages. The way to fix this is to set Mailman's + <var>SMTP_MAX_SESSIONS_PER_CONNECTION</var> (in + <span class="file"><var>$prefix</var>/Mailman/mm_cfg.py</span>) to a smaller value than Exim's + <var>smtp_accept_queue_per_connection</var>. + +<p> +</li> +<li>Mailman should ignore Exim delay warning messages, even though Exim + should never send this to list messages. Mailman 2.1's general bounce + detection and VERP support should greatly improve the bounce detector's + hit rates. + +<p> +</li> +<li>List existence is determined by the existence of a <span class="file">config.pck</span> + file for a list. If you delete lists by foul means, be aware of this. + +<p> +</li> +<li>If you are getting Exim or Mailman complaining about user ids when you + send mail to a list, check that the <var>MAILMAN_USER</var> and + <var>MAILMAN_GROUP</var> match those of Mailman itself (i.e. what were used + in the <b class="program">configure</b> script). Also make sure you do not have + aliases in the main alias file for the list. +</li> +</ul> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.7 additional notes" + href="node23.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.9 receiver Verification" + href="node25.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node23.html">6.2.7 Additional notes</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node25.html">6.2.9 Receiver Verification</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node25.html b/doc/mailman-install/node25.html new file mode 100644 index 00000000..ec01107d --- /dev/null +++ b/doc/mailman-install/node25.html @@ -0,0 +1,135 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node26.html" /> +<link rel="prev" href="node24.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node26.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.9 Receiver Verification</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.8 Problems" + href="node24.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.10 smtp Callback" + href="node26.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node24.html">6.2.8 Problems</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node26.html">6.2.10 SMTP Callback</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001629000000000000000"> +6.2.9 Receiver Verification</a> +</h3> + +<p> +Exim's receiver verification feature is very useful - it lets Exim reject +unrouteable addresses at SMTP time. However, this is most useful for +externally-originating mail that is addressed to mail in one of your local +domains. For Mailman list traffic, mail originates on your server, and is +addressed to random external domains that are not under your control. +Furthermore, each message is addressed to many recipients +- up to 500 if you use Mailman's default configuration and don't tweak +<var>SMTP_MAX_RCPTS</var>. + +<p> +Doing receiver verification on Mailman list traffic is a recipe for trouble. +In particular, Exim will attempt to route every recipient addresses in +outgoing Mailman list posts. Even though this requires nothing more than a +few DNS lookups for each address, it can still introduce significant delays. +Therefore, you should disable recipient verification for Mailman traffic. + +<p> +Under Exim 3, put this in your main configuration section: + +<p> +<div class="verbatim"><pre> + receiver_verify_hosts = !127.0.0.1 +</pre></div> + +<p> +Under Exim 4, this is probably already taken care of for you by the default +recipient verification ACL statement (in the <code>RCPT TO</code> ACL): + +<p> +<div class="verbatim"><pre> + accept domains = +local_domains + endpass + message = unknown user + verify = recipient +</pre></div> + +<p> +which only does recipient verification on addresses in your domain. (That's +not exactly the same as doing recipient verification only on messages coming +from non-127.0.0.1 hosts, but it should do the trick for Mailman.) + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.8 Problems" + href="node24.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.10 smtp Callback" + href="node26.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node24.html">6.2.8 Problems</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node26.html">6.2.10 SMTP Callback</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node26.html b/doc/mailman-install/node26.html new file mode 100644 index 00000000..5f960845 --- /dev/null +++ b/doc/mailman-install/node26.html @@ -0,0 +1,140 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node27.html" /> +<link rel="prev" href="node25.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node27.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.10 SMTP Callback</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.9 receiver Verification" + href="node25.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.11 doing VERP with" + href="node27.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node25.html">6.2.9 Receiver Verification</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node27.html">6.2.11 Doing VERP with</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION0016210000000000000000"> +6.2.10 SMTP Callback</a> +</h3> + +<p> +Exim's SMTP callback feature is an even more powerful way to detect bogus +sender addresses than normal sender verification. Unfortunately, lots of +servers send bounce messages with a bogus address in the header, and there are +plenty that send bounces with bogus envelope senders (even though they're +supposed to just use an empty envelope sender for bounces). + +<p> +In order to ensure that Mailman can disable/remove bouncing addresses, you +generally want to receive bounces for Mailman lists, even if those bounces are +themselves not bounceable. Thus, you might want to disable SMTP callback on +bounce messages. + +<p> +With Exim 4, you can accomplish this using something like the following in +your <code>RCPT TO</code> ACL: + +<p> +<div class="verbatim"><pre> + # Accept bounces to lists even if callbacks or other checks would fail + warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes + condition = \ + ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ + {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ + {yes}{no}} + {yes}{no}} + + accept condition = \ + ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ + {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ + {yes}{no}} + {yes}{no}} + + # Now, check sender address with SMTP callback. + deny !verify = sender/callout=90s +</pre></div> + +<p> +If you also do SMTP callbacks on header addresses, you'll want something like +this in your <code>DATA</code> ACL: + +<p> +<div class="verbatim"><pre> + deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback: + !verify = header_sender/callout=90s +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.9 receiver Verification" + href="node25.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.11 doing VERP with" + href="node27.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node25.html">6.2.9 Receiver Verification</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node27.html">6.2.11 Doing VERP with</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node27.html b/doc/mailman-install/node27.html new file mode 100644 index 00000000..fa2cb7fa --- /dev/null +++ b/doc/mailman-install/node27.html @@ -0,0 +1,110 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node28.html" /> +<link rel="prev" href="node26.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node28.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.11 Doing VERP with Exim and Mailman</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.10 smtp Callback" + href="node26.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.12 virtual Domains" + href="node28.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node26.html">6.2.10 SMTP Callback</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node28.html">6.2.12 Virtual Domains</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION0016211000000000000000"> +6.2.11 Doing VERP with Exim and Mailman</a> +</h3> + +<p> +VERP will send one email, with a separate envelope sender (return path), for +each of your subscribers - read the information in +<span class="file"><var>$prefix</var>/Mailman/Defaults.py</span> for the options that start with VERP. +In a nutshell, all you need to do to enable VERP with Exim is to add these lines to <span class="file"><var>$prefix</var>/Mailman/mm_cfg.py</span>: + +<p> +<div class="verbatim"><pre> + VERP_PASSWORD_REMINDERS = Yes + VERP_PERSONALIZED_DELIVERIES = Yes + VERP_DELIVERY_INTERVAL = Yes + VERP_CONFIRMATIONS = Yes +</pre></div> + +<p> +(The director (router) above is smart enough to deal with VERP bounces.) + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.10 smtp Callback" + href="node26.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.12 virtual Domains" + href="node28.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node26.html">6.2.10 SMTP Callback</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node28.html">6.2.12 Virtual Domains</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node28.html b/doc/mailman-install/node28.html new file mode 100644 index 00000000..6e408a2c --- /dev/null +++ b/doc/mailman-install/node28.html @@ -0,0 +1,122 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node29.html" /> +<link rel="prev" href="node27.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node29.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.12 Virtual Domains</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.11 doing VERP with" + href="node27.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.13 list Verification" + href="node29.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node27.html">6.2.11 Doing VERP with</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node29.html">6.2.13 List Verification</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION0016212000000000000000"> +6.2.12 Virtual Domains</a> +</h3> + +<p> +One approach to handling virtual domains is to use a separate Mailman +installation for each virtual domain. Currently, this is the only way to have +lists with the same name in different virtual domains handled by the same +machine. + +<p> +In this case, the <var>MAILMAN_HOME</var> and <var>MAILMAN_WRAP</var> macros are useless +- you can remove them. Change your director (router) to something like this: + +<p> +<div class="verbatim"><pre> + require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck +</pre></div> + +<p> +and change your transport like this: + +<p> +<div class="verbatim"><pre> + command = /virtual/${domain}/mailman/mail/mailman \ + ${if def:local_part_suffix \ + {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} + {post}} \ + $local_part + current_directory = /virtual/${domain}/mailman + home_directory = /virtual/${domain}/mailman +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.11 doing VERP with" + href="node27.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.13 list Verification" + href="node29.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node27.html">6.2.11 Doing VERP with</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node29.html">6.2.13 List Verification</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node29.html b/doc/mailman-install/node29.html new file mode 100644 index 00000000..d90d55aa --- /dev/null +++ b/doc/mailman-install/node29.html @@ -0,0 +1,124 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node30.html" /> +<link rel="prev" href="node28.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node30.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.13 List Verification</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.12 virtual Domains" + href="node28.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.14 document History" + href="node30.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node28.html">6.2.12 Virtual Domains</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node30.html">6.2.14 Document History</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION0016213000000000000000"> +6.2.13 List Verification</a> +</h3> + +<p> +This is how a set of address tests for the Exim lists look on a working +system. The list in question is <span class="email">quixote-users@mems-exchange.org</span>, and +these commands were run on the <code>mems-exchange.org</code> mail server ("% " +indicates the Unix shell prompt): + +<p> +<div class="verbatim"><pre> + % exim -bt quixote-users + quixote-users@mems-exchange.org + router = mailman_main_router, transport = mailman_transport + + % exim -bt quixote-users-request + quixote-users-request@mems-exchange.org + router = mailman_router, transport = mailman_transport + + % exim -bt quixote-users-bounces + quixote-users-bounces@mems-exchange.org + router = mailman_router, transport = mailman_transport + + % exim -bt quixote-users-bounces+luser=example.com + quixote-users-bounces+luser=example.com@mems-exchange.org + router = mailman_router, transport = mailman_transport +</pre></div> + +<p> +If your <b class="program">exim -bt</b> output looks something like this, that's a start: +at least it means Exim will pass the right messages to the right Mailman +commands. It by no means guarantees that your Exim/Mailman installation is +functioning perfectly, though! + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.12 virtual Domains" + href="node28.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.2.14 document History" + href="node30.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node28.html">6.2.12 Virtual Domains</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node30.html">6.2.14 Document History</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node3.html b/doc/mailman-install/node3.html new file mode 100644 index 00000000..80a6e488 --- /dev/null +++ b/doc/mailman-install/node3.html @@ -0,0 +1,110 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node6.html" /> +<link rel="prev" href="node2.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node4.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>2 Set up your system</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="1 installation Requirements" + href="node2.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="2.1 add the group" + href="node4.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node2.html">1 Installation Requirements</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node4.html">2.1 Add the group</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001200000000000000000"> +2 Set up your system</a> +</h1> + +<p> +Before installing Mailman, you need to prepare your system by adding certain +users and groups. You will need to have root privileges to perform the steps +in this section. + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node4.html">2.1 Add the group and user</a> +<li><a href="create-install-dir.html">2.2 Create the installation directory</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="1 installation Requirements" + href="node2.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="2.1 add the group" + href="node4.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node2.html">1 Installation Requirements</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node4.html">2.1 Add the group</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node30.html b/doc/mailman-install/node30.html new file mode 100644 index 00000000..d9f17f63 --- /dev/null +++ b/doc/mailman-install/node30.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="node29.html" /> +<link rel="parent" href="node16.html" /> +<link rel="next" href="node31.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.2.14 Document History</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.13 list Verification" + href="node29.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3 using the Sendmail" + href="node31.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node29.html">6.2.13 List Verification</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node31.html">6.3 Using the Sendmail</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION0016214000000000000000"> +6.2.14 Document History</a> +</h3> + +<p> +Originally written by Nigel Metheringham <span class="email">postmaster@exim.org</span>. Updated +by Marc Merlin <span class="email">marc_soft@merlins.org</span> for Mailman 2.1, Exim 4. +Overhauled/reformatted/clarified/simplified by Greg Ward +<span class="email">gward@python.net</span>. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.13 list Verification" + href="node29.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.2 using the Exim" + href="node16.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3 using the Sendmail" + href="node31.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node29.html">6.2.13 List Verification</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node31.html">6.3 Using the Sendmail</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node31.html b/doc/mailman-install/node31.html new file mode 100644 index 00000000..91efe99c --- /dev/null +++ b/doc/mailman-install/node31.html @@ -0,0 +1,129 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="qmail-issues.html" /> +<link rel="prev" href="node16.html" /> +<link rel="parent" href="mail-server.html" /> +<link rel="next" href="node32.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.3 Using the Sendmail mail server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.14 document History" + href="node30.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3.1 sendmail ``smrsh'' compatibility" + href="node32.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node30.html">6.2.14 Document History</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001630000000000000000"> +6.3 Using the Sendmail mail server</a> +</h2> + +<p> +<div class="warning"><b class="label">Warning:</b> + +You may be tempted to set the <var>DELIVERY_MODULE</var> configuration variable in +<span class="file">mm_cfg.py</span> to <code>'Sendmail'</code> when using the Sendmail mail server. +<strong>Don't</strong>. The <span class="file">Sendmail.py</span> module is misnamed - it's really a +command line based message handoff scheme as opposed to the SMTP scheme used +in <span class="file">SMTPDirect.py</span> (the default). <span class="file">Sendmail.py</span> has known security +holes and is provided as a proof-of-concept only<a name="tex2html4" + href="#foot402"><sup>4</sup></a>. If you are having problems +using <span class="file">SMTPDirect.py</span> fix those instead of using <span class="file">Sendmail.py</span>, or +you may open your system up to security exploits. +</div> + +<p> +<br><hr><h4>Footnotes</h4> +<dl> +<dt><a name="foot402">... only</a><A + HREF="node31.html#tex2html4"><sup>4</sup></a></dt> +<dd>In fact, in later +versions of Mailman, this module is explicitly sabotaged. You have to know +what you're doing in order to re-enable it. + +</dd> +</dl> +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +<li><a href="node33.html">6.3.2 Integrating Sendmail and Mailman</a> +<li><a href="node34.html">6.3.3 Performance notes</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.2.14 document History" + href="node30.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3.1 sendmail ``smrsh'' compatibility" + href="node32.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node30.html">6.2.14 Document History</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node32.html b/doc/mailman-install/node32.html new file mode 100644 index 00000000..87298699 --- /dev/null +++ b/doc/mailman-install/node32.html @@ -0,0 +1,148 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node33.html" /> +<link rel="prev" href="node31.html" /> +<link rel="parent" href="node31.html" /> +<link rel="next" href="node33.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.3.1 Sendmail ``smrsh'' compatibility</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3 using the Sendmail" + href="node31.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.3 using the Sendmail" + href="node31.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3.2 integrating Sendmail and" + href="node33.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node33.html">6.3.2 Integrating Sendmail and</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001631000000000000000"> +6.3.1 Sendmail ``smrsh'' compatibility</a> +</h3> + +<p> +Many newer versions of Sendmail come with a restricted execution utility +called ``smrsh'', which limits the executables that Sendmail will allow to be +used as mail programs. You need to explicitly allow Mailman's wrapper program +to be used with smrsh or Mailman will not work. If mail is not getting +delivered to Mailman's wrapper program and you're getting an ``operating +system error'' in your mail syslog, this could be your problem. + +<p> +One good way of enabling this is: + +<p> + +<ul> +<li>Find out where your Sendmail executes its smrsh wrapper + +<p> +<div class="verbatim"><pre> + % grep smrsh /etc/mail/sendmail.cf + </pre></div> + +<p> +</li> +<li>Figure out where smrsh expects symlinks for allowable mail + programs. At the very beginning of the following output you will + see a full path to some directory, e.g. <span class="file">/var/adm/sm.bin</span> or + similar: + +<p> +<div class="verbatim"><pre> + % strings $path_to_smrsh | less + </pre></div> + +<p> +</li> +<li>cd into <span class="file">/var/adm/sm.bin</span>, or where ever it happens to reside + on your system - alternatives include <span class="file">/etc/smrsh</span>, + <span class="file">/var/smrsh</span> and <span class="file">/usr/local/smrsh</span>. + +<p> +<div class="verbatim"><pre> + % cd /var/adm/sm.bin + </pre></div> + +<p> +</li> +<li>Create a symbolic link to Mailman's wrapper program: + +<p> +<div class="verbatim"><pre> + % ln -s /usr/local/mailman/mail/mailman mailman + </pre></div> +</li> +</ul> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3 using the Sendmail" + href="node31.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.3 using the Sendmail" + href="node31.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3.2 integrating Sendmail and" + href="node33.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node33.html">6.3.2 Integrating Sendmail and</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node33.html b/doc/mailman-install/node33.html new file mode 100644 index 00000000..bfc3de5a --- /dev/null +++ b/doc/mailman-install/node33.html @@ -0,0 +1,116 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node34.html" /> +<link rel="prev" href="node32.html" /> +<link rel="parent" href="node31.html" /> +<link rel="next" href="node34.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.3.2 Integrating Sendmail and Mailman</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3.1 sendmail ``smrsh'' compatibility" + href="node32.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.3 using the Sendmail" + href="node31.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3.3 performance notes" + href="node34.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node34.html">6.3.3 Performance notes</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001632000000000000000"> +6.3.2 Integrating Sendmail and Mailman</a> +</h3> + +<p> +David Champion has contributed a recipe for more closely integrating Sendmail +and Mailman, such that Sendmail will automatically recognize and deliver to +new mailing lists as they are created, without having to manually edit alias +tables. + +<p> +In the <span class="file">contrib</span> directory of Mailman's source distribution, you will +find four files: + +<p> + +<ul> +<li><span class="file">mm-handler.readme</span> - an explanation of how to set everything up +</li> +<li><span class="file">mm-handler</span> - the mail delivery agent (MDA) +</li> +<li><span class="file">mailman.mc</span> - a toy configuration file sample +</li> +<li><span class="file">virtusertable</span> - a sample for RFC 2142 address exceptions +</li> +</ul> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3.1 sendmail ``smrsh'' compatibility" + href="node32.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.3 using the Sendmail" + href="node31.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.3.3 performance notes" + href="node34.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node32.html">6.3.1 Sendmail ``smrsh'' compatibility</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node34.html">6.3.3 Performance notes</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node34.html b/doc/mailman-install/node34.html new file mode 100644 index 00000000..84b3b2cd --- /dev/null +++ b/doc/mailman-install/node34.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="node33.html" /> +<link rel="parent" href="node31.html" /> +<link rel="next" href="qmail-issues.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.3.3 Performance notes</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3.2 integrating Sendmail and" + href="node33.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.3 using the Sendmail" + href="node31.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node33.html">6.3.2 Integrating Sendmail and</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="qmail-issues.html">6.4 Using the Qmail</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001633000000000000000"> +6.3.3 Performance notes</a> +</h3> + +<p> +One of the surest performance killers for Sendmail users is when Sendmail is +configured to synchronously verify the recipient's host via DNS. If it does +this for messages posted to it from Mailman, you will get horrible +performance. Since Mailman usually connects via <code>localhost</code> +(i.e. 127.0.0.1) to the SMTP port of Sendmail, you should be sure to configure +Sendmail to <strong>not</strong> do DNS verification synchronously for localhost +connections. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3.2 integrating Sendmail and" + href="node33.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.3 using the Sendmail" + href="node31.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node33.html">6.3.2 Integrating Sendmail and</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node31.html">6.3 Using the Sendmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="qmail-issues.html">6.4 Using the Qmail</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node36.html b/doc/mailman-install/node36.html new file mode 100644 index 00000000..36cdafc6 --- /dev/null +++ b/doc/mailman-install/node36.html @@ -0,0 +1,116 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node37.html" /> +<link rel="prev" href="qmail-issues.html" /> +<link rel="parent" href="qmail-issues.html" /> +<link rel="next" href="node37.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.4.1 Information on VERP</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4.2 virtual mail server" + href="node37.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node37.html">6.4.2 Virtual mail server</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001641000000000000000"> +6.4.1 Information on VERP</a> +</h3> + +<p> +You will note in the alias generating script for 2.1 above, there is a line +for VERP that has been commented out. If you are interested in VERP there are +two options. The first option is to allow Mailman to do the VERP formatting. +To activate this, uncomment that line and add the following lines to your +<span class="file">mm_cfg.py</span> file: + +<p> +<div class="verbatim"><pre> + VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s' + VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$' +</pre></div> + +<p> +The second option is a patch on SourceForge located at: + +<p> +<a class="url" href="http://sourceforge.net/tracker/?func=detail&atid=300103&aid=645513&group_id=103">http://sourceforge.net/tracker/?func=detail&atid=300103&aid=645513&group_id=103</a> +<p> +This patch currently needs more testing and might best be suitable for +developers or people well familiar with qmail. Having said that, this patch +is the more qmail-friendly approach resulting in large performance gains. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4.2 virtual mail server" + href="node37.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node37.html">6.4.2 Virtual mail server</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node37.html b/doc/mailman-install/node37.html new file mode 100644 index 00000000..ce29c2db --- /dev/null +++ b/doc/mailman-install/node37.html @@ -0,0 +1,102 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node38.html" /> +<link rel="prev" href="node36.html" /> +<link rel="parent" href="qmail-issues.html" /> +<link rel="next" href="node38.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.4.2 Virtual mail server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4.1 information on VERP" + href="node36.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4.3 more information" + href="node38.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node36.html">6.4.1 Information on VERP</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node38.html">6.4.3 More information</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001642000000000000000"> +6.4.2 Virtual mail server</a> +</h3> + +<p> +As mentioned in the <a href="qmail-issues.html#qmail-issues">6.4</a> section for a virtual mail server, a +patch under testing is located at: + +<p> +<a class="url" href="http://sf.net/tracker/index.php?func=detail&aid=621257&group_id=103&atid=300103">http://sf.net/tracker/index.php?func=detail&aid=621257&group_id=103&atid=300103</a> +<p> +Again, this patch is for people familiar with their qmail installation. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4.1 information on VERP" + href="node36.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4.3 more information" + href="node38.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node36.html">6.4.1 Information on VERP</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node38.html">6.4.3 More information</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node38.html b/doc/mailman-install/node38.html new file mode 100644 index 00000000..6df2f96c --- /dev/null +++ b/doc/mailman-install/node38.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="node37.html" /> +<link rel="parent" href="qmail-issues.html" /> +<link rel="next" href="customizing.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.4.3 More information</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4.2 virtual mail server" + href="node37.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="7 review your site" + href="customizing.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node37.html">6.4.2 Virtual mail server</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="customizing.html">7 Review your site</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001643000000000000000"> +6.4.3 More information</a> +</h3> + +<p> +You might be interested in some information on modifying footers that Norbert +Bollow has written about Mailman and qmail, available here: + +<p> +<a class="url" href="http://mailman.cis.to/qmail-verh/">http://mailman.cis.to/qmail-verh/</a> +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.4.2 virtual mail server" + href="node37.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.4 using the Qmail" + href="qmail-issues.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="7 review your site" + href="customizing.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node37.html">6.4.2 Virtual mail server</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="qmail-issues.html">6.4 Using the Qmail</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="customizing.html">7 Review your site</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node4.html b/doc/mailman-install/node4.html new file mode 100644 index 00000000..a764dca8 --- /dev/null +++ b/doc/mailman-install/node4.html @@ -0,0 +1,130 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="create-install-dir.html" /> +<link rel="prev" href="node3.html" /> +<link rel="parent" href="node3.html" /> +<link rel="next" href="create-install-dir.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>2.1 Add the group and user</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="2 set up your" + href="node3.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="2 set up your" + href="node3.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="2.2 create the installation" + href="create-install-dir.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node3.html">2 Set up your</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node3.html">2 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="create-install-dir.html">2.2 Create the installation</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001210000000000000000"> +2.1 Add the group and user</a> +</h2> + +<p> +Mailman requires a unique user and group name which will own its files, and +under which its processes will run. Mailman's basic security is based on +group ownership permissions, so it's important to get this step +right<a name="tex2html1" + href="#foot38"><sup>1</sup></a>. Typically, you will add a new user and a new +group, both called <code>mailman</code>. The <code>mailman</code> user must be a member +of the <code>mailman</code> group. Mailman will be installed under the +<code>mailman</code> user and group, with the set-group-id (setgid) bit enabled. + +<p> +If these names are already in use, you can choose different user and group +names, as long as you remember these when you run <b class="program">configure</b>. If you +choose a different unique user name, you will have to specify this with +<b class="program">configure</b>'s <b class="programopt">--with-username</b> option, and if you choose +a different group name, you will have to specify this with +<b class="program">configure</b>'s <b class="programopt">--with-groupname</b> option. + +<p> +On Linux systems, you can use the following commands to create these +accounts. Check your system's manual pages for details: + +<p> +<div class="verbatim"><pre> + % groupadd mailman + % useradd -c''GNU Mailman'' -s /no/shell -d /no/home -g mailman mailman +</pre></div> + +<p> +<br><hr><h4>Footnotes</h4> +<dl> +<dt><a name="foot38">... +right</a><A + HREF="node4.html#tex2html1"><sup>1</sup></a></dt> +<dd>You will be able to check and repair your permissions after +installation is complete. + +</dd> +</dl> +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="2 set up your" + href="node3.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="2 set up your" + href="node3.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="2.2 create the installation" + href="create-install-dir.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node3.html">2 Set up your</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node3.html">2 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="create-install-dir.html">2.2 Create the installation</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node40.html b/doc/mailman-install/node40.html new file mode 100644 index 00000000..de4883e2 --- /dev/null +++ b/doc/mailman-install/node40.html @@ -0,0 +1,130 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node41.html" /> +<link rel="prev" href="customizing.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node41.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>8 Create a site-wide mailing list</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="7 review your site" + href="customizing.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="9 set up cron" + href="node41.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="customizing.html">7 Review your site</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node41.html">9 Set up cron</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001800000000000000000"> +8 Create a site-wide mailing list</a> +</h1> + +<p> +After you have completed the integration of Mailman and your mail server, you +need to create a ``site-wide'' mailing list. This is the one that password +reminders will appear to come from, and it is required for proper Mailman +operation. Usually this should be a list called <code>mailman</code>, but if you +need to change this, be sure to change the <var>MAILMAN_SITE_LIST</var> variable in +<span class="file">mm_cfg.py</span>. You can create the site list with this command, following +the prompts: + +<p> +<div class="verbatim"><pre> + % bin/newlist mailman +</pre></div> + +<p> +Now configure your site list. There is a convenient template for a generic +site list in the installation directory, under <span class="file">data/sitelist.cfg</span> which +can help you with this. You should review the configuration options in the +template, but note that any options not named in the <span class="file">sitelist.cfg</span> file +won't be changed. + +<p> +The template can be applied to your site list by +running: + +<p> +<div class="verbatim"><pre> + % bin/config_list -i data/sitelist.cfg mailman +</pre></div> + +<p> +After applying the <span class="file">sitelist.cfg</span> options, be sure you review the +site list's configuration via the admin pages. + +<p> +You should also subscribe yourself to the site list. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="7 review your site" + href="customizing.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="9 set up cron" + href="node41.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="customizing.html">7 Review your site</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node41.html">9 Set up cron</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node41.html b/doc/mailman-install/node41.html new file mode 100644 index 00000000..7ffbb5e8 --- /dev/null +++ b/doc/mailman-install/node41.html @@ -0,0 +1,132 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node42.html" /> +<link rel="prev" href="node40.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node42.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>9 Set up cron</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="8 create a site-wide" + href="node40.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="10 start the Mailman" + href="node42.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node40.html">8 Create a site-wide</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node42.html">10 Start the Mailman</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001900000000000000000"> +9 Set up cron</a> +</h1> + +<p> +Several Mailman features occur on a regular schedule, so you must set up +<b class="program">cron</b> to run the right programs at the right time<a name="tex2html6" + href="#foot551"><sup>6</sup></a>. + +<p> +If your version of crontab supports the <b class="programopt">-u</b> option, you must be +root to do this next step. Add <span class="file"><var>$prefix</var>/cron/crontab.in</span> as a +crontab entry by executing these commands: + +<p> +<div class="verbatim"><pre> + % cd $prefix/cron + % crontab -u mailman crontab.in +</pre></div> + +<p> +If you used the <b class="programopt">--with-username</b> option, use that user name +instead of <code>mailman</code> for the <b class="programopt">-u</b> argument value. If your +crontab does not support the <b class="programopt">-u</b> option, try these commands: + +<p> +<div class="verbatim"><pre> + % cd $prefix/cron + % su - mailman + % crontab crontab.in +</pre></div> + +<p> +<br><hr><h4>Footnotes</h4> +<dl> +<dt><a name="foot551">... time</a><A + HREF="node41.html#tex2html6"><sup>6</sup></a></dt> +<dd>Note that +if you're upgrading from a previous version of Mailman, you'll want to install +the new crontab, but be careful if you're running multiple Mailman +installations on your site! Changing the crontab could mess with other +parallel Mailman installations. + +</dd> +</dl> +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="8 create a site-wide" + href="node40.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="10 start the Mailman" + href="node42.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node40.html">8 Create a site-wide</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node42.html">10 Start the Mailman</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node42.html b/doc/mailman-install/node42.html new file mode 100644 index 00000000..db06e877 --- /dev/null +++ b/doc/mailman-install/node42.html @@ -0,0 +1,159 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node43.html" /> +<link rel="prev" href="node41.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node43.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>10 Start the Mailman qrunner</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="9 set up cron" + href="node41.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="11 check the hostname" + href="node43.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node41.html">9 Set up cron</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node43.html">11 Check the hostname</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION0011000000000000000000"> +10 Start the Mailman qrunner</a> +</h1> + +<p> +Mailman depends on a process called the ``qrunner'' to delivery all +email messages it sees. You must start the qrunner by executing the following +command from the <var>$prefix</var> directory: + +<p> +<div class="verbatim"><pre> + % bin/mailmanctl start +</pre></div> + +<p> +You probably want to start Mailman every time you reboot your system. Exactly +how to do this depends on your operating system. If your OS supports the +<b class="program">chkconfig</b> command (e.g. RedHat and Mandrake Linuxes) you can +do the following (as root, from the Mailman install directory): + +<p> +<div class="verbatim"><pre> + % cp scripts/mailman /etc/init.d/mailman + % chkconfig --add mailman +</pre></div> + +<p> +Note that <span class="file">/etc/init.d</span> may be <span class="file">/etc/rc.d/init.d</span> on some systems. + +<p> +On Gentoo Linux, you can do the following: + +<p> +<div class="verbatim"><pre> + % cp scripts/mailman /etc/init.d/mailman + % rc-update add mailman default +</pre></div> + +<p> +On Debian, you probably want to use: + +<p> +<div class="verbatim"><pre> + % update-rc.d mailman defaults +</pre></div> + +<p> +For <span class="Unix">Unix</span>es that don't support <b class="program">chkconfig</b>, you might try the +following set of commands: + +<p> +<div class="verbatim"><pre> + % cp scripts/mailman /etc/init.d/mailman + % cp misc/mailman /etc/init.d + % cd /etc/rc.d/rc0.d + % ln -s ../init.d/mailman K12mailman + % cd ../rc1.d + % ln -s ../init.d/mailman K12mailman + % cd ../rc2.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc3.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc4.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc5.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc6.d + % ln -s ../init.d/mailman K12mailman +</pre></div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="9 set up cron" + href="node41.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="11 check the hostname" + href="node43.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node41.html">9 Set up cron</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node43.html">11 Check the hostname</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node43.html b/doc/mailman-install/node43.html new file mode 100644 index 00000000..972475c9 --- /dev/null +++ b/doc/mailman-install/node43.html @@ -0,0 +1,109 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node44.html" /> +<link rel="prev" href="node42.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node44.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>11 Check the hostname settings</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="10 start the Mailman" + href="node42.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="12 create the site" + href="node44.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node42.html">10 Start the Mailman</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node44.html">12 Create the site</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION0011100000000000000000"> +11 Check the hostname settings</a> +</h1> + +<p> +You should check the values for <var>DEFAULT_EMAIL_HOST</var> and +<var>DEFAULT_URL_HOST</var> in <span class="file">Defaults.py</span>. Make any necessary changes in +the <span class="file">mm_cfg.py</span> file, <strong>not</strong> in the <span class="file">Defaults.py</span> file. If you +change either of these two values, you'll want to add the following afterwards +in the <span class="file">mm_cfg.py</span> file: + +<p> +<div class="verbatim"><pre> + add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) +</pre></div> + +<p> +You will want to run the <b class="program">bin/fix_url.py</b> to change the domain of any +existing lists. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="10 start the Mailman" + href="node42.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="12 create the site" + href="node44.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node42.html">10 Start the Mailman</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node44.html">12 Create the site</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node44.html b/doc/mailman-install/node44.html new file mode 100644 index 00000000..2e7793fd --- /dev/null +++ b/doc/mailman-install/node44.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node45.html" /> +<link rel="prev" href="node43.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node45.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>12 Create the site password</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="11 check the hostname" + href="node43.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="13 create your first" + href="node45.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node43.html">11 Check the hostname</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node45.html">13 Create your first</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION0011200000000000000000"> +12 Create the site password</a> +</h1> + +<p> +There are two site-wide passwords that you can create from the command line, +using the <b class="program">bin/mmsitepass</b> script. The first is the ``site password'' +which can be used anywhere a password is required in the system. The site +password will get you into the administration page for any list, and it can be +used to log in as any user. Think <code>root</code> for a Unix system, so pick this +password wisely! + +<p> +The second password is a site-wide ``list creator'' password. You can use +this to delegate the ability to create new mailing lists without providing all +the privileges of the site password. Of course, the owner of the site +password can also create new mailing lists, but the list creator password is +limited to just that special role. + +<p> +To set the site password, use this command: + +<p> +<div class="verbatim"><pre> + % $prefix/bin/mmsitepass <your-site-password> +</pre></div> + +<p> +To set the list creator password, use this command: + +<p> +<div class="verbatim"><pre> + % $prefix/bin/mmsitepass -c <list-creator-password> +</pre></div> + +<p> +It is okay not to set a list creator password, but you probably do want a site +password. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="11 check the hostname" + href="node43.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="13 create your first" + href="node45.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node43.html">11 Check the hostname</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node45.html">13 Create your first</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node45.html b/doc/mailman-install/node45.html new file mode 100644 index 00000000..c8a8f8c5 --- /dev/null +++ b/doc/mailman-install/node45.html @@ -0,0 +1,154 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="troubleshooting.html" /> +<link rel="prev" href="node44.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="troubleshooting.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>13 Create your first mailing list</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="12 create the site" + href="node44.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="14 Troubleshooting" + href="troubleshooting.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node44.html">12 Create the site</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="troubleshooting.html">14 Troubleshooting</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION0011300000000000000000"> +13 Create your first mailing list</a> +</h1> + +<p> +For more detailed information about using Mailman, including creating and +configuring mailing lists, see the Mailman List Adminstration Manual. These +instructions provide a quick guide to creating your first mailing list via the +web interface: + +<p> + +<ul> +<li>Start by visiting the url <code>http://my.dom.ain/mailman/create</code>. + +<p> +</li> +<li>Fill out the form as described in the on-screen instructions, and in the + ``List creator's password'' field, type the password you entered in + section <a href="customizing.html#customizing">7</a>. Type your own email address for the + ``Initial list owner address'', and select ``Yes'' to notify the list + administrator. + +<p> +</li> +<li>Click on the ``Create List'' button. + +<p> +</li> +<li>Check your email for a message from Mailman informing you that your new + mailing list was created. + +<p> +</li> +<li>Now visit the list's administration page, either by following the link + on the confirmation web page or clicking on the link from the email + Mailman just sent you. Typically the url will be something like + <code>http://my.dom.ain/mailman/admin/mylist</code>. + +<p> +</li> +<li>Type in the list's password and click on ``Let me in...'' + +<p> +</li> +<li>Click on ``Membership Management'' and then on ``Mass Subscription''. + +<p> +</li> +<li>Enter your email address in the big text field, and click on ``Submit + Your Changes''. + +<p> +</li> +<li>Now go to your email and send a message to <code>mylist@my.dom.ain</code>. + Within a minute or two you should see your message reflected back to you + via Mailman. +</li> +</ul> + +<p> +Congratulations! You've just set up and tested your first Mailman mailing +list. If you had any problems along the way, please see the +<a href="troubleshooting.html#troubleshooting">14</a> section. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="12 create the site" + href="node44.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="14 Troubleshooting" + href="troubleshooting.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node44.html">12 Create the site</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="troubleshooting.html">14 Troubleshooting</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node47.html b/doc/mailman-install/node47.html new file mode 100644 index 00000000..f99bb93b --- /dev/null +++ b/doc/mailman-install/node47.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="troubleshooting.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node48.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>15 Platform and operating system notes</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="14 Troubleshooting" + href="troubleshooting.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15.1 GNU/Linux issues" + href="node48.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="troubleshooting.html">14 Troubleshooting</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node48.html">15.1 GNU/Linux issues</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION0011500000000000000000"> +15 Platform and operating system notes</a> +</h1> + +<p> +Generally, Mailman runs on any POSIX-based system, such as Solaris, the +various BSD variants, Linux systems, MacOSX, and other generic <span class="Unix">Unix</span> +systems. It doesn't run on Windows. For the most part, the generic +instructions given in this document should be sufficient to get Mailman +working on any supported platform. Some operating systems have additional +recommended installation or configuration instructions. + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node48.html">15.1 GNU/Linux issues</a> +<li><a href="bsd-issues.html">15.2 BSD issues</a> +<li><a href="node50.html">15.3 MacOSX issues</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="14 Troubleshooting" + href="troubleshooting.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15.1 GNU/Linux issues" + href="node48.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="troubleshooting.html">14 Troubleshooting</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node48.html">15.1 GNU/Linux issues</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node48.html b/doc/mailman-install/node48.html new file mode 100644 index 00000000..1412727c --- /dev/null +++ b/doc/mailman-install/node48.html @@ -0,0 +1,155 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="bsd-issues.html" /> +<link rel="prev" href="node47.html" /> +<link rel="parent" href="node47.html" /> +<link rel="next" href="bsd-issues.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>15.1 GNU/Linux issues</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15 platform and operating" + href="node47.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="15 platform and operating" + href="node47.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15.2 bsd issues" + href="bsd-issues.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="bsd-issues.html">15.2 BSD issues</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION0011510000000000000000"> +15.1 GNU/Linux issues</a> +</h2> + +<p> +Linux seems to be the most popular platform for running Mailman. Here are +some hints on getting Mailman to run on Linux: + +<p> + +<ul> +<li>If you are getting errors with hard link creations and/or you are using + a special secure kernel (securelinux/openwall/grsecurity), see the file + <span class="file">contrib/README.check_perms_grsecurity</span> in the Mailman source + distribution. + +<p> +Note that if you are using Linux Mandrake in secure mode, you are + probably concerned by this. + +<p> +</li> +<li>Apparently Mandrake 9.0 changed the permissions on gcc, so if you build + as the <code>mailman</code> user, you need to be sure <code>mailman</code> is in the + <code>cctools</code> group. + +<p> +</li> +<li>If you installed Python from your Linux distribution's package manager + (e.g. .rpms for Redhat-derived systems or .deb for Debian), you must + install the ``development'' package of Python, or you may not get + everything you need. + +<p> +For example, using Python 2.2 on Debian, you will need to install the + <code>python2.2-dev</code> package. On Redhat, you probably need the + <code>python2-devel</code> package. + +<p> +If you install Python from source, you should be fine. + +<p> +One symptom of this problem, although for unknown reasons, is that you + might get an error such as this during your install: + +<p> +<div class="verbatim"><pre> + Traceback (most recent call last): + File "bin/update", line 44, in ? + import paths + ImportError: No module named paths + make: *** [update] Error 1 +</pre></div> + +<p> +If this happens, install the Python development package and try + <b class="program">configure</b> and <b class="program">make install</b> again. Or install the + latest version of Python from source, available from + <a class="url" href="http://www.python.org">http://www.python.org</a>. + +<p> +This problem can manifest itself in other Linux distributions in + different ways, although usually it appears as <code>ImportErrors</code>. +</li> +</ul> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15 platform and operating" + href="node47.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="15 platform and operating" + href="node47.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15.2 bsd issues" + href="bsd-issues.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="bsd-issues.html">15.2 BSD issues</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node50.html b/doc/mailman-install/node50.html new file mode 100644 index 00000000..e977fa3e --- /dev/null +++ b/doc/mailman-install/node50.html @@ -0,0 +1,229 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="bsd-issues.html" /> +<link rel="parent" href="node47.html" /> +<link rel="next" href="about.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>15.3 MacOSX issues</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15.2 bsd issues" + href="bsd-issues.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="15 platform and operating" + href="node47.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="About this document ..." + href="about.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="bsd-issues.html">15.2 BSD issues</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="about.html">About this document ...</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION0011530000000000000000"> +15.3 MacOSX issues</a> +</h2> + +<p> +Many people run Mailman on MacOSX. Here are some pointers that have been +collected on getting Mailman to run on MacOSX. + +<p> + +<ul> +<li>Jaguar (MacOSX 10.2) comes with Python 2.2. While this isn't the very + latest stable version of Python, it ought to be sufficient to run + Mailman 2.1. + +<p> +</li> +<li>David B. O'Donnell has a web page describing his configuration of + Mailman 2.0.13 and Postfix on MacOSX Server. + +<p> +<a class="url" href="http://www.afp548.com/Articles/mail/python-mailman.html">http://www.afp548.com/Articles/mail/python-mailman.html</a> +<p> +</li> +<li>Kathleen Webb posted her experiences in getting Mailman running on + Jaguar using Sendmail. + +<p> +<a class="url" href="http://mail.python.org/pipermail/mailman-users/2002-October/022944.html">http://mail.python.org/pipermail/mailman-users/2002-October/022944.html</a> +<p> +</li> +<li>Panther server (MacOSX 10.3) comes with Mailman; Your operating system + should contain documentation that will help you, and Apple has a tech + document about a problem you might encounter running Mailman on Mac OS X + Server 10.3: + +<p> +<a class="url" href="http://docs.info.apple.com/article.html?artnum=107889">http://docs.info.apple.com/article.html?artnum=107889</a> +</li> +</ul> + +<p> +Terry Allen provides the following detailed instructions on running Mailman on +the 'client' version of OSX, or in earlier versions of OSX: + +<p> +Mac OSX 10.3 and onwards has the basics for a successful Mailman installation. +Users of earlier versions of Mac OSX contains Sendmail and those users should +look at the Sendmail installation section for tips. You should follow the +basic installation steps as described earlier in this manual, substituting as +appropriate, the steps outlined in this section. + +<p> +By default, Mac OSX 10.3 'client' version does not have a fully functional +version of Postfix. Setting up a working MTA such as Postfix is beyond the +scope of this guide and you should refer to <a class="url" href="http://www.postfix.org">http://www.postfix.org</a> for +tips on getting Postfix running. An easy way to set Postfix up is to install +and run Postfix Enabler, a stand-alone tool for configuring Postfix on Mac +OSX, available from +<a class="url" href="http://www.roadstead.com/weblog/Tutorials/PostfixEnabler.html">http://www.roadstead.com/weblog/Tutorials/PostfixEnabler.html</a>. + +<p> +Likewise, Mac OSX 'client' version from 10.1 onwards includes a working Apache +webserver. This is switched on using the System Preferences control panel +under the 'Sharing tab'. A useful tool for configuring the Apache on Mac OSX +is Webmin, which can be obtained from +<a class="url" href="http://www.webmin.com">http://www.webmin.com</a>. + +<p> +Webmin can also perform configuration for other system tasks, including +Postfix, adding jobs to your crontab, adding user and groups, plus adding +startup and shutdown jobs. + +<p> +In a stock installation of OSX, the requirement for Mailman is to have Python +installed. Python is not installed by default, so it is advised that you +install the developer's tools package, which may have been provided with your +system. It can also be downloaded from the Apple developer site at +<a class="url" href="http://connect.apple.com">http://connect.apple.com</a>. Not only is the developer tools package an +essential requirement for installing Mailman, but it will come in handy at a +later date should you need other tools. The developer's tools are also know +by the name XCode tools. + +<p> +As a minimum, the Python version should be 2.2, but 2.3 is recommended. + +<p> +If you wish to add a user and group using the command line in OSX instead of +via Webmin or another GUI interface, open your terminal application and follow +the commands as indicated below - do not type the comments following the +"<tt class="samp">#</tt>" since they are just notes: + +<p> +<div class="verbatim"><pre> +sudo tcsh +niutil -create / /users/mailman +niutil -createprop / /users/mailman name mailman +# Note that xxx is a free user ID number on your system +niutil -createprop / /users/mailman uid xxx +niutil -createprop / /users/mailman home /usr/local/mailman +mkdir -p /usr/local/mailman +niutil -createprop / /users/mailman shell /bin/tcsh +passwd mailman +# To prevent malicious hacking, supply a secure password here +niutil -create / /groups/mailman +niutil -createprop / /groups/mailman name mailman +# Note that xxx is a free group ID number on your system +niutil -createprop / /groups/mailman gid xxx +niutil -createprop / /groups/mailman passwd '*' +niutil -createprop / /groups/mailman users 'mailman' +chown mailman:mailman /usr/local/mailman +cd /usr/local/mailman +chmod a+rx,g+ws . +exit +su mailman +</pre></div> + +<p> +For setting up Apache on OSX to handle Mailman, the steps are almost identical +and the configuration file on a stock Mac OSX Client version is stored in the +nearly standard location of <span class="file">/etc/httpd/httpd.conf</span>. + +<p> +The <a class="ulink" href="http://www.afp548.com" + >AFP548.com</a> site has a time-saving automated startup item creator for +Mailman, which can be found at +<a class="url" href="http://www.afp548.com/Software/MailmanStartup.tar.gz">http://www.afp548.com/Software/MailmanStartup.tar.gz</a> +<p> +To install it, copy it into your <span class="file">/Library/StartupItems</span> directory. As +the root or superuser, from the terminal, enter the following: + +<p> +<div class="verbatim"><pre> +gunzip MailmanStartup.tar.gz +tar xvf MailmanStartup.tar +</pre></div> + +<p> +It will create the startup item for you so that when you reboot, Mailman will +start up. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="15.2 bsd issues" + href="bsd-issues.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="15 platform and operating" + href="node47.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="About this document ..." + href="about.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="bsd-issues.html">15.2 BSD issues</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node47.html">15 Platform and operating</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="about.html">About this document ...</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node6.html b/doc/mailman-install/node6.html new file mode 100644 index 00000000..286eacf7 --- /dev/null +++ b/doc/mailman-install/node6.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node9.html" /> +<link rel="prev" href="node3.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node7.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>3 Build and install Mailman</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="2.2 create the installation" + href="create-install-dir.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="3.1 run configure" + href="node7.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="create-install-dir.html">2.2 Create the installation</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node7.html">3.1 Run configure</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001300000000000000000"></a><a name="building"></a> +<br> +3 Build and install Mailman +</h1> + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node7.html">3.1 Run <b class="program">configure</b></a> +<li><a href="node8.html">3.2 Make and install</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="2.2 create the installation" + href="create-install-dir.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="3.1 run configure" + href="node7.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="create-install-dir.html">2.2 Create the installation</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node7.html">3.1 Run configure</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node7.html b/doc/mailman-install/node7.html new file mode 100644 index 00000000..e4d08890 --- /dev/null +++ b/doc/mailman-install/node7.html @@ -0,0 +1,251 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node8.html" /> +<link rel="prev" href="node6.html" /> +<link rel="parent" href="node6.html" /> +<link rel="next" href="node8.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>3.1 Run configure</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="3 build and install" + href="node6.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="3 build and install" + href="node6.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="3.2 make and install" + href="node8.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node6.html">3 Build and install</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node6.html">3 Build and install</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node8.html">3.2 Make and install</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001310000000000000000"> +3.1 Run <b class="program">configure</b></a> +</h2> + +<p> +Before you can install Mailman, you must run <b class="program">configure</b> to set +various installation options your system might need. + +<p> +<div class="note"><b class="label">Note:</b> + +Take special note of the <b class="programopt">--with-mail-gid</b> and +<b class="programopt">--with-cgi-gid</b> options below. You will probably need to use +these. +</div> + +<p> +You should <strong>not</strong> be root while performing the steps in this section. +Do them under your own login, or whatever account you typically use to install +software. You do not need to do these steps as user <code>mailman</code>, but you +could. However, make sure that the login used is a member of the +<code>mailman</code> group as that that group has write permissions to the +<var>$prefix</var> directory made in the previous step. You must also have +permission to create a setgid file in the file system where it resides (NFS +and other mounts can be configured to inhibit setgid settings). + +<p> +If you've installed other GNU software, you should be familiar with the +<b class="program">configure</b> script. Usually you can just <b class="program">cd</b> to the +directory you unpacked the Mailman source tarball into, and run +<b class="program">configure</b> with no arguments: + +<p> +<div class="verbatim"><pre> + % cd mailman-<version> + % ./configure + % make install +</pre></div> + +<p> +The following options allow you to customize your Mailman +installation. + +<p> +<dl> +<dt><strong><b class="programopt">--prefix</b>=<var>dir</var></strong></dt> +<dd>Standard GNU configure option which changes the base directory that + Mailman is installed into. By default <var>$prefix</var> is + <span class="file">/usr/local/mailman</span>. This directory must already exist, and be set + up as described in <a href="create-install-dir.html#create-install-dir">2.2</a>. + +<p> +</dd> +<dt><strong><b class="programopt">--exec-prefix</b>=<var>dir</var></strong></dt> +<dd>Standard GNU configure option which lets you specify a different + installation directory for architecture dependent binaries. + +<p> +</dd> +<dt><strong><b class="programopt">--with-var-prefix</b>=<var>dir</var></strong></dt> +<dd>Store mutable data under <var>dir</var> instead of under the <var>$prefix</var> or + <var>$exec_prefix</var>. Examples of such data include the list archives and + list settings database. + +<p> +</dd> +<dt><strong><b class="programopt">--with-python</b>=<span class="file">/path/to/python</span></strong></dt> +<dd>Specify an alternative Python interpreter to use for the wrapper programs. + The default is to use the interpreter found first on your shell's + <var>$PATH</var>. + +<p> +</dd> +<dt><strong><b class="programopt">--with-username</b>=<var>username-or-uid</var></strong></dt> +<dd>Specify a different username than <code>mailman</code>. The value of this + option can be an integer user id or a user name. Be sure your + <var>$prefix</var> directory is owned by this user. + +<p> +</dd> +<dt><strong><b class="programopt">--with-groupname</b>=<var>groupname-or-gid</var></strong></dt> +<dd>Specify a different groupname than <code>mailman</code>. The value of this + option can be an integer group id or a group name. Be sure your + <var>$prefix</var> directory is group-owned by this group. + +<p> +</dd> +<dt><strong><b class="programopt">--with-mail-gid</b>=<var>group-or-groups</var></strong></dt> +<dd>Specify an alternative group for running scripts via the mail wrapper. + <var>group-or-groups</var> can be a list of one or more integer group ids or + symbolic group names. The first value in the list that resolves to an + existing group is used. By default, the value is the list <code>mailman</code>, + <code>other</code>, <code>mail</code>, and <code>daemon</code>. + +<p> +<div class="note"><b class="label">Note:</b> + + This is highly system dependent and you must get this right, because the + group id is compiled into the mail wrapper program for added security. On + systems using <b class="program">sendmail</b>, the <span class="file">sendmail.cf</span> configuration + file designates the group id of <b class="program">sendmail</b> processes using the + <var>DefaultUser</var> option. (If commented out, it still may be indicating + the default...) + </div> + +<p> +Check your mail server's documentation and configuration files to find the + right value for this switch. + +<p> +</dd> +<dt><strong><b class="programopt">--with-cgi-gid</b>=<var>group-or-groups</var></strong></dt> +<dd>Specify an alternative group for running scripts via the CGI wrapper. + <var>group-or-groups</var> can be a list of one or more integer group ids or + symbolic group names. The first value in the list that resolves to an + existing group is used. By default, the value is the the list + <code>www</code>, <code>www-data</code>, and <code>nobody</code>. + +<p> +<div class="note"><b class="label">Note:</b> + + The proper value for this is dependent on your web server configuration. + You must get this right, because the group id is compiled into the CGI + wrapper program for added security, and no Mailman CGI scripts will run if + this is incorrect. + </div> + +<p> +If you're using Apache, check the values for the <var>Group</var> option in + your <span class="file">httpd.conf</span> file. + +<p> +</dd> +<dt><strong><b class="programopt">--with-cgi-ext</b>=<var>extension</var></strong></dt> +<dd>Specify an extension for cgi-bin programs. The CGI wrappers placed in + <span class="file"><var>$prefix</var>/cgi-bin</span> will have this extension (some web servers + require an extension). <var>extension</var> must include the leading dot. + +<p> +</dd> +<dt><strong><b class="programopt">--with-mailhost</b>=<var>hostname</var></strong></dt> +<dd>Specify the fully qualified host name part for outgoing email. After the + installation is complete, this value can be overriden in + <span class="file"><var>$prefix</var>/Mailman/mm_cfg.py</span>. + +<p> +</dd> +<dt><strong><b class="programopt">--with-urlhost</b>=<var>hostname</var></strong></dt> +<dd>Specify the fully qualified host name part of urls. After the + installation is complete, this value can be overriden in + <span class="file"><var>$prefix</var>/Mailman/mm_cfg.py</span>. + +<p> +</dd> +<dt><strong><b class="programopt">--with-gcc</b>=no</strong></dt> +<dd>Don't use gcc, even if it is found. In this case, <b class="program">cc</b> must be + found on your <var>$PATH</var>. + +<p> +</dd> +</dl> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="3 build and install" + href="node6.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="3 build and install" + href="node6.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="3.2 make and install" + href="node8.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node6.html">3 Build and install</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node6.html">3 Build and install</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node8.html">3.2 Make and install</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node8.html b/doc/mailman-install/node8.html new file mode 100644 index 00000000..1ff3838b --- /dev/null +++ b/doc/mailman-install/node8.html @@ -0,0 +1,96 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="node7.html" /> +<link rel="parent" href="node6.html" /> +<link rel="next" href="node9.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>3.2 Make and install</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="3.1 run configure" + href="node7.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="3 build and install" + href="node6.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="4 check your installation" + href="node9.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node7.html">3.1 Run configure</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node6.html">3 Build and install</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node9.html">4 Check your installation</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001320000000000000000"> +3.2 Make and install</a> +</h2> + +<p> +Once you've run <b class="program">configure</b>, you can simply run <b class="program">make</b>, then +<b class="program">make install</b> to build and install Mailman. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="3.1 run configure" + href="node7.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="3 build and install" + href="node6.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="4 check your installation" + href="node9.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node7.html">3.1 Run configure</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node6.html">3 Build and install</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node9.html">4 Check your installation</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/node9.html b/doc/mailman-install/node9.html new file mode 100644 index 00000000..e08e4f38 --- /dev/null +++ b/doc/mailman-install/node9.html @@ -0,0 +1,147 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node10.html" /> +<link rel="prev" href="node6.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node10.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>4 Check your installation</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="3.2 make and install" + href="node8.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="5 set up your" + href="node10.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node8.html">3.2 Make and install</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node10.html">5 Set up your</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION001400000000000000000"> +4 Check your installation</a> +</h1> + +<p> +After you've run <b class="program">make install</b>, you should check that your +installation has all the correct permissions and group ownerships by running +the <b class="program">check_perms</b> script. First change to the installation +(i.e. <var>$prefix</var>) directory, then run the <b class="program">bin/check_perms</b> +program. Don't try to run bin/check_perms from the source directory; it will +only run from the installation directory. + +<p> +If this reports no problems, then it's very likely <wink> that your +installation is set up correctly. If it reports problems, then you can either +fix them manually, re-run the installation, or use <b class="program">bin/check_perms</b> +to fix the problems (probably the easiest solution): + +<p> + +<ul> +<li>You need to become the user that did the installation, and that owns all + the files in <var>$prefix</var>, or root. + +<p> +</li> +<li>Run <b class="program">bin/check_perms -f</b> + +<p> +</li> +<li>Repeat previous step until no more errors are reported! +</li> +</ul> + +<p> +<div class="warning"><b class="label">Warning:</b> + +If you're running Mailman on a shared multiuser system, and you have mailing +lists with private archives, you may want to hide the private archive +directory from other users on your system. In that case, you should drop the +other execute permission (o-x) from the <span class="file">archives/private</span> directory. +However, the web server process must be able to follow the symbolic link in +public directory, otherwise your public Pipermail archives will not work. To +set this up, become root and run the following commands: + +<p> +<div class="verbatim"><pre> +# cd <prefix>/archives +# chown <web-server-user> private +# chmod o-x private +</pre></div> + +<p> +You need to know what user your web server runs as. It may be <code>www</code>, +<code>apache</code>, <code>httpd</code> or <code>nobody</code>, depending on your server's +configuration. +</div> + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="3.2 make and install" + href="node8.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="5 set up your" + href="node10.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node8.html">3.2 Make and install</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node10.html">5 Set up your</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/postfix-virtual.html b/doc/mailman-install/postfix-virtual.html new file mode 100644 index 00000000..4191fe11 --- /dev/null +++ b/doc/mailman-install/postfix-virtual.html @@ -0,0 +1,197 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node15.html" /> +<link rel="prev" href="node13.html" /> +<link rel="parent" href="node12.html" /> +<link rel="next" href="node15.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.1.2 Virtual domains</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1.1 integrating Postfix and" + href="node13.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.1 using the Postfix" + href="node12.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1.3 an alternative approach" + href="node15.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node13.html">6.1.1 Integrating Postfix and</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node15.html">6.1.3 An alternative approach</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h3><a name="SECTION001612000000000000000"></a><a name="postfix-virtual"></a> +<br> +6.1.2 Virtual domains +</h3> + +<p> +Postfix 2.0 supports ``virtual alias domains'', essentially what used to be +called ``Postfix-style virtual domains'' in earlier Postfix versions. To make +virtual alias domains work with Mailman, you need to do some setup in both +Postfix and Mailman. Mailman will write all virtual alias mappings to a file +called, by default, <span class="file">/usr/local/mailman/data/virtual-mailman</span>. It will +also use <b class="program">postmap</b> to create the <b class="program">virtual-mailman.db</b> file +that Postfix will actually use. + +<p> +First, you need to set up the Postfix virtual alias domains as described in +the Postfix documentation (see Postfix's <code>virtual(5)</code> manpage). Note +that it's your responsibility to include the <code>virtual-alias.domain +anything</code> line as described manpage; Mailman will not include this line in +<span class="file">virtual-mailman</span>. You are highly encouraged to make sure your virtual +alias domains are working properly before integrating with Mailman. + +<p> +Next, add a path to Postfix's <var>virtual_alias_maps</var> variable, pointing to +the virtual-mailman file, e.g.: + +<p> +<div class="verbatim"><pre> + virtual_alias_maps = <your normal virtual alias files>, + hash:/usr/local/mailman/data/virtual-mailman +</pre></div> + +<p> +assuming you've installed Mailman in the default location. If you're using an +older version of Postfix which doesn't have the <var>virtual_alias_maps</var> +variable, use the <var>virtual_maps</var> variable instead. + +<p> +Next, in your <span class="file">mm_cfg.py</span> file, you will want to set the variable +<var>POSTFIX_STYLE_VIRTUAL_DOMAINS</var> to the list of virtual domains that Mailman +should update. This may not be all of the virtual alias domains that your +Postfix installation supports! The values in this list will be matched +against the <var>host_name</var> attribute of mailing lists objects, and must be an +exact match. + +<p> +Here's an example. Say that Postfix is configured to handle the virtual +domains <code>dom1.ain</code>, <code>dom2.ain</code>, and <code>dom3.ain</code>, and further +that in your <span class="file">main.cf</span> file you've got the following settings: + +<p> +<div class="verbatim"><pre> + myhostname = mail.dom1.ain + mydomain = dom1.ain + mydestination = $myhostname, localhost.$mydomain + virtual_alias_maps = + hash:/some/path/to/virtual-dom1, + hash:/some/path/to/virtual-dom2, + hash:/some/path/to/virtual-dom2 +</pre></div> + +<p> +If in your <span class="file">virtual-dom1</span> file, you've got the following lines: + +<p> +<div class="verbatim"><pre> + dom1.ain IGNORE + @dom1.ain @mail.dom1.ain +</pre></div> + +<p> +this tells Postfix to deliver anything addressed to <code>dom1.ain</code> to the +same mailbox at <code>mail.dom1.com</code>, its default destination. + +<p> +In this case you would not include <code>dom1.ain</code> in +<var>POSTFIX_STYLE_VIRTUAL_DOMAINS</var> because otherwise Mailman will write +entries for mailing lists in the dom1.ain domain as + +<p> +<div class="verbatim"><pre> + mylist@dom1.ain mylist + mylist-request@dom1.ain mylist-request + # and so on... +</pre></div> + +<p> +The more specific entries trump your more general entries, thus breaking the +delivery of any <code>dom1.ain</code> mailing list. + +<p> +However, you would include <code>dom2.ain</code> and <code>dom3.ain</code> in +<span class="file">mm_cfg.py</span>: + +<p> +<div class="verbatim"><pre> + POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain'] +</pre></div> + +<p> +Now, any list that Mailman creates in either of those two domains, will have +the correct entries written to <span class="file">/usr/local/mailman/data/virtual-mailman</span>. + +<p> +As above with the <span class="file">data/aliases*</span> files, you want to make sure that both +<span class="file">data/virtual-mailman</span> and <span class="file">data/virtual-mailman.db</span> are user and +group owned by <code>mailman</code>. + +<p> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.1.1 integrating Postfix and" + href="node13.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6.1 using the Postfix" + href="node12.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.1.3 an alternative approach" + href="node15.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node13.html">6.1.1 Integrating Postfix and</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="node12.html">6.1 Using the Postfix</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node15.html">6.1.3 An alternative approach</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/previous.png b/doc/mailman-install/previous.png Binary files differnew file mode 100644 index 00000000..497def42 --- /dev/null +++ b/doc/mailman-install/previous.png diff --git a/doc/mailman-install/pyfav.png b/doc/mailman-install/pyfav.png Binary files differnew file mode 100644 index 00000000..d2d8669d --- /dev/null +++ b/doc/mailman-install/pyfav.png diff --git a/doc/mailman-install/qmail-issues.html b/doc/mailman-install/qmail-issues.html new file mode 100644 index 00000000..25948d95 --- /dev/null +++ b/doc/mailman-install/qmail-issues.html @@ -0,0 +1,309 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="prev" href="node31.html" /> +<link rel="parent" href="mail-server.html" /> +<link rel="next" href="node36.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>6.4 Using the Qmail mail server</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3.3 performance notes" + href="node34.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4.1 information on VERP" + href="node36.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node34.html">6.3.3 Performance notes</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node36.html">6.4.1 Information on VERP</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h2><a name="SECTION001640000000000000000"></a><a name="qmail-issues"></a> +<br> +6.4 Using the Qmail mail server +</h2> + +<p> +There are some issues that users of the qmail mail transport agent have +encountered. None of the core maintainers use qmail, so all of this +information has been contributed by the Mailman user community, especially +Martin Preishuber and Christian Tismer, with notes by Balazs Nagy (BN) and +Norbert Bollow (NB). + +<p> + +<ul> +<li>You might need to set the mail-gid user to either <code>qmail</code>, + <code>mailman</code>, or <code>nofiles</code> by using the + <b class="programopt">--with-mail-gid</b> <b class="program">configure</b> option. + +<p> +<em>BN:</em> it highly depends on your mail storing policy. For example + if you use the simple <span class="file">~alias/.qmail-*</span> files, you can use + <b class="program">`id -g alias`</b>. But if you use <span class="file">/var/qmail/users</span>, the + specified mail gid can be used. + +<p> +If you are going to be directing virtual domains directly to the + <code>mailman</code> user (using ``virtualdomains'' on a list-only domain, for + example), you will have to use <b class="programopt">--with-mail-gid</b>=<var>gid + of mailman user's group</var>. This is incompatible with having list aliases + in <span class="file">~alias</span>, unless that alias simply forwards to + <code>mailman-listname*</code>. + +<p> +</li> +<li>If there is a user <code>mailman</code> on your system, the alias + <code>mailman-owner</code> will work only in <span class="file">~mailman</span>. You have to do + a <b class="program">touch .qmail-owner</b> in <span class="file">~mailman</span> directory to create + this alias. + +<p> +<em>NB:</em> An alternative, IMHO better solution is to <b class="program">chown + root ~mailman</b>, that will stop qmail from considering <code>mailman</code> to + be a user to whom mail can be delivered. (See ``man 8 qmail-getpw''.) + +<p> +</li> +<li>In a related issue, if you have any users with the same name as one of + your mailing lists, you will have problems if list names contain + "<tt class="samp">-</tt>" in them. Putting <span class="file">.qmail</span> redirections into the user's + home directory doesn't work because the Mailman wrappers will not get + spawned with the proper GID. The solution is to put the following lines + in the <span class="file">/var/qmail/users/assign</span> file: + +<p> +<div class="verbatim"><pre> + +zope-:alias:112:11:/var/qmail/alias:-:zope-: + . +</pre></div> + +<p> +where in this case the listname is e.g. <code>zope-users</code>. + +<p> +<em>NB:</em> Alternatively, you could host the lists on a virtual domain, + and use the <span class="file">/var/qmail/control/virtualdomains</span> file to put the + <code>mailman</code> user in charge of this virtual domain. + +<p> +</li> +<li><em>BN:</em>If inbound messages are delivered by another user than + <code>mailman</code>, it's necessary to allow it to access <span class="file">~mailman</span>. + Be sure that <span class="file">~mailman</span> has group writing access and setgid bit is + set. Then put the delivering user to <code>mailman</code> group, and you can + deny access to <span class="file">~mailman</span> to others. Be sure that you can do the + same with the WWW service. + +<p> +By the way the best thing is to make a virtual mail server to handle all + of the mail. <em>NB:</em> E.g. make an additional "A" DNS record for the + virtual mailserver pointing to your IP address, add the line + <code>lists.kva.hu:mailman</code> to <span class="file">/var/qmail/control/virtualdomains</span> + and a <code>lists.kva.hu</code> line to <span class="file">/var/qmail/control/rcpthosts</span> + file. Don't forget to HUP the qmail-send after modifying + ``virtualdomains''. Then every mail to lists.kva.hu will arrive to + mail.kva.hu's mailman user. + +<p> +Then make your aliases: + +<p> +<div class="verbatim"><pre> + .qmail => mailman@...'s letters + .qmail-owner => mailman-owner's letters +</pre></div> + +<p> +For list aliases, you can either create them manually: + +<p> +<div class="verbatim"><pre> + .qmail-list => posts to the 'list' list + .qmail-list-admin => posts to the 'list's owner + .qmail-list-request => requests to 'list' + etc +</pre></div> + +<p> +or for automatic list alias handling (when using the lists.kva.hu + virtual as above), see <span class="file">contrib/qmail-to-mailman.py</span> in the Mailman + source distribution. Modify the <span class="file">~mailman/.qmail-default</span> to + include: + +<p> +<div class="verbatim"><pre> + |preline /path/to/python /path/to/qmail-to-mailman.py +</pre></div> + +<p> +and new lists will automatically be picked up. + +<p> +</li> +<li>You have to make sure that the localhost can relay. If you start qmail + via inetd and tcpenv, you need some line the following in your + <span class="file">/etc/hosts.allow</span> file: + +<p> +<div class="verbatim"><pre> + tcp-env: 127. 10.205.200. : setenv RELAYCLIENT +</pre></div> + +<p> +where 10.205.200. is your IP address block. If you use tcpserver, then + you need something like the following in your <span class="file">/etc/tcp.smtp</span> file: + +<p> +<div class="verbatim"><pre> + 10.205.200.:allow,RELAYCLIENT="" + 127.:allow,RELAYCLIENT="" +</pre></div> + +<p> +</li> +<li><em>BN:</em> Bigger <span class="file">/var/qmail/control/concurrencyremote</span> values + work better sending outbound messages, within reason. Unless you know + your system can handle it (many if not most cannot) this should not be + set to a value greater than 120. + +<p> +</li> +<li>More information about setting up qmail and relaying can be found in the + qmail documentation. +</li> +</ul> + +<p> +<em>BN:</em> Last but not least, here's a little script to generate aliases to +your lists (if for some reason you can/will not have them automatically picked +up using <span class="file">contrib/qmail-to-mailman.py</span>): + +<p> +This script is for the Mailman 2.0 series: + +<p> +<div class="verbatim"><pre> +#!/bin/sh +if [ $# = 1 ]; then + i=$1 + echo Making links to $i in the current directory... + echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i + echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request +fi +</pre></div> + +<p> +<div class="note"><b class="label">Note:</b> + +This is for a new Mailman 2.1 installation. Users upgrading from +Mailman 2.0 would most likely change <span class="file">/usr/local/mailman</span> to +<span class="file">/home/mailman</span>. If in doubt, refer to the <b class="programopt">--prefix</b> +option passed to <b class="program">configure</b> during compile time. +</div> + +<p> +<div class="verbatim"><pre> +#!/bin/sh +if [ $# = 1 ]; then + i=$1 + echo Making links to $i in the current directory... + echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i + echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin + echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces + # The following line is for VERP + # echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces-default + echo "|preline /usr/local/mailman/mail/mailman confirm $i" > .qmail-$i-confirm + echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join + echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave + echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner + echo "|preline /usr/local/mailman/mail/mailman request $i" > .qmail-$i-request + echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > .qmail-$i-subscribe + echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > .qmail-$i-unsubscribe +fi +</pre></div> + +<p> + +<p><br /></p><hr class='online-navigation' /> +<div class='online-navigation'> +<!--Table of Child-Links--> +<a name="CHILD_LINKS"><strong>Subsections</strong></a> + +<ul class="ChildLinks"> +<li><a href="node36.html">6.4.1 Information on VERP</a> +<li><a href="node37.html">6.4.2 Virtual mail server</a> +<li><a href="node38.html">6.4.3 More information</a> +</ul> +<!--End of Table of Child-Links--> +</div> + +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="6.3.3 performance notes" + href="node34.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="6 set up your" + href="mail-server.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="6.4.1 information on VERP" + href="node36.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node34.html">6.3.3 Performance notes</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="mail-server.html">6 Set up your</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node36.html">6.4.1 Information on VERP</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/troubleshooting.html b/doc/mailman-install/troubleshooting.html new file mode 100644 index 00000000..6b994ed1 --- /dev/null +++ b/doc/mailman-install/troubleshooting.html @@ -0,0 +1,260 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<link rel="STYLESHEET" href="mailman-install.css" type='text/css' /> +<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' /> +<link rel='last' href='about.html' title='About this document...' /> +<link rel='help' href='about.html' title='About this document...' /> +<link rel="next" href="node47.html" /> +<link rel="prev" href="node45.html" /> +<link rel="parent" href="front.html" /> +<link rel="next" href="node47.html" /> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name='aesop' content='information' /> +<title>14 Troubleshooting</title> +</head> +<body> +<div class="navigation"> +<div id='top-navigation-panel' xml:id='top-navigation-panel'> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="13 create your first" + href="node45.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15 platform and operating" + href="node47.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node45.html">13 Create your first</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node47.html">15 Platform and operating</a> +</div> +<hr /></div> +</div> +<!--End of Navigation Panel--> + +<h1><a name="SECTION0011400000000000000000"></a><a name="troubleshooting"></a> +<br> +14 Troubleshooting +</h1> + +<p> +If you encounter problems with running Mailman, first check the question and +answer section below. If your problem is not covered there, check the +<a class="ulink" href="http://www.list.org/help.html" + >online help</a>, including the +<a class="ulink" href="http://www.list.org/faq.html" + >FAQ</a> and the +<a class="ulink" href="http://www.python.org/cgi-bin/faqw-mm.py" + >interactive FAQ wizard</a>. + +<p> +Also check for errors in your syslog files, your mail and web server log files +and in Mailman's <span class="file"><var>$prefix</var>/logs/error</span> file. If you're still +having problems, you should send a message to the +<span class="email">mailman-users@python.org</span> mailing list<a name="tex2html7" + href="#foot614"><sup>7</sup></a>; see +<a class="url" href="http://mail.python.org/mailman/listinfo/mailman-users">http://mail.python.org/mailman/listinfo/mailman-users</a> for more +information. + +<p> +Be sure to including information on your operating system, which version of +Python you're using, and which version of Mailman you're installing. + +<p> +Here is a list of some common questions and answers: + +<p> + +<ul> +<li><strong>Problem:</strong> All Mailman web pages give a 404 File not found + error. + +<p> +<strong>Solution:</strong> Your web server has not been set up properly for + handling Mailman's CGI programs. Make sure you have: + +<p> + +<ol> +<li>configured the web server to give permissions to + <span class="file"><var>$prefix</var>/cgi-bin</span> + +<p> +</li> +<li>restarted the web server properly. + +</li> +</ol> + +<p> +Consult your web server's documentation for instructions on how to do + check these issues. + +<p> +</li> +<li><strong>Problem:</strong> All Mailman web pages give an "Internal Server + Error". + +<p> +<strong>Solution:</strong> The likely problem is that you are using the wrong + user or group for the CGI scripts. Check your web server's log files. + If you see a line like + +<p> +<div class="verbatim"><pre> + Attempt to exec script with invalid gid 51, expected 99 +</pre></div> + +<p> +you will need to reinstall Mailman, specifying the proper CGI group id, + as described in the <a name="building"></a> section. + +<p> +</li> +<li><strong>Problem:</strong> I send mail to the list, and get back mail saying the + list is not found! + +<p> +<strong>Solution:</strong> You probably didn't add the necessary aliases to the + system alias database, or you didn't properly integrate Mailman with + your mail server. Perhaps you didn't update the alias database, or your + system requires you to run <b class="program">newaliases</b> explicitly. Refer to + your server specific instructions in the <a href="mail-server.html#mail-server">6</a> section. + +<p> +</li> +<li><strong>Problem:</strong> I send mail to the list, and get back mail saying, + ``unknown mailer error''. + +<p> +<strong>Solution:</strong> The likely problem is that you are using the wrong + user or group id for the mail wrappers. Check your mail server's log + files; if you see a line like + +<p> +<div class="verbatim"><pre> + Attempt to exec script with invalid gid 51, expected 99 +</pre></div> + +<p> +you will need to reinstall Mailman, specifying the proper mail group id + as described in the <a name="building"></a> section. + +<p> +</li> +<li><strong>Problem:</strong> I use Postfix as my mail server and the mail wrapper + programs are logging complaints about the wrong GID. + +<p> +<strong>Solution:</strong> Make sure the <span class="file"><var>$prefix</var>/data/aliases.db</span> + file is user owned by <code>mailman</code> (or whatever user name you used + in the <b class="program">configure</b> command). If this file is not user owned by + <code>mailman</code>, Postfix will not run the mail programs as the correct + user. + +<p> +</li> +<li><strong>Problem:</strong> I use Sendmail as my mail server, and when I send mail + to the list, I get back mail saying, ``sh: mailman not available for + sendmail programs''. + +<p> +<strong>Solution:</strong> Your system uses the Sendmail restricted shell + (smrsh). You need to configure smrsh by creating a symbolic link from + the mail wrapper (<span class="file"><var>$prefix</var>/mail/mailman</span>) to the directory + identifying executables allowed to run under smrsh. + +<p> +Some common names for this directory are <span class="file">/var/admin/sm.bin</span>, + <span class="file">/usr/admin/sm.bin</span> or <span class="file">/etc/smrsh</span>. + +<p> +Note that on Debian Linux, the system makes <span class="file">/usr/lib/sm.bin</span>, + which is wrong, you will need to create the directory + <span class="file">/usr/admin/sm.bin</span> and add the link there. Note further any + aliases <b class="program">newaliases</b> spits out will need to be adjusted to point + to the secure link to the wrapper. + +<p> +</li> +<li><strong>Problem:</strong> I messed up when I called <b class="program">configure</b>. How + do I clean things up and re-install? + +<p> +<strong>Solution:</strong> + +<p> +<div class="verbatim"><pre> + % make clean + % ./configure --with-the-right-options + % make install + </pre></div> + +<p> +</li> +</ul> + +<p> +<br><hr><h4>Footnotes</h4> +<dl> +<dt><a name="foot614">... list</a><A + href="troubleshooting.html#tex2html7"><sup>7</sup></a></dt> +<dd>You must subscribe to +this mailing list in order to post to it, but the mailing list's archives are +publicly visible. + +</dd> +</dl> +<div class="navigation"> +<div class='online-navigation'> +<p></p><hr /> +<table align="center" width="100%" cellpadding="0" cellspacing="2"> +<tr> +<td class='online-navigation'><a rel="prev" title="13 create your first" + href="node45.html"><img src='previous.png' + border='0' height='32' alt='Previous Page' width='32' /></a></td> +<td class='online-navigation'><a rel="parent" title="Front Matter" + href="front.html"><img src='up.png' + border='0' height='32' alt='Up one Level' width='32' /></a></td> +<td class='online-navigation'><a rel="next" title="15 platform and operating" + href="node47.html"><img src='next.png' + border='0' height='32' alt='Next Page' width='32' /></a></td> +<td align="center" width="100%">GNU Mailman - Installation Manual</td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +<td class='online-navigation'><img src='blank.png' + border='0' height='32' alt='' width='32' /></td> +</tr></table> +<div class='online-navigation'> +<b class="navlabel">Previous:</b> +<a class="sectref" rel="prev" href="node45.html">13 Create your first</a> +<b class="navlabel">Up:</b> +<a class="sectref" rel="parent" href="front.html">Front Matter</a> +<b class="navlabel">Next:</b> +<a class="sectref" rel="next" href="node47.html">15 Platform and operating</a> +</div> +</div> +<hr /> +<span class="release-info">Release 2.1, documentation updated on December 5, 2007.</span> +</div> +<!--End of Navigation Panel--> + +</body> +</html> diff --git a/doc/mailman-install/up.png b/doc/mailman-install/up.png Binary files differnew file mode 100644 index 00000000..a90e0284 --- /dev/null +++ b/doc/mailman-install/up.png |