%!PS-Adobe-2.0 %%Creator: SGtoPS 2.8 (21-Jul-1997) %%CreationDate: 24 November 2000 11:11:23 %%DocumentFonts: Times-Roman Times-Italic Times-Bold Times-BoldItalic Courier %%+ Symbol %%Pages: (atend) %%Requirements: numcopies(1) statusdict/waittimeout 200 put /A3paper where {pop statusdict begin /a3 where{pop a3}if /a3tray where{pop a3tray}if userdict/a4{}put end} {/A3paper false def}ifelse /dotumble where {pop statusdict begin /settumble where{pop true settumble}if end}if /SGencoding StandardEncoding length array def SGencoding dup dup dup dup dup 0 StandardEncoding putinterval 0 [/Aacute/Acircumflex/Adieresis/Agrave/Aring/Atilde/Ccedilla/Eacute /Ecircumflex /Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Ntilde /Oacute/Ocircumflex/Odieresis/Ograve/Otilde/Scaron/Uacute/Ucircumflex /Udieresis/Ugrave /Ydieresis/Zcaron/Yacute/Eth/Thorn/trademark]putinterval 128 [/aacute/acircumflex/adieresis/agrave/aring/atilde/ccedilla/eacute /ecircumflex/edieresis/egrave/iacute/icircumflex/idieresis/igrave/ntilde /oacute/ocircumflex/odieresis/ograve/otilde/scaron/uacute/ucircumflex /udieresis/ugrave/ydieresis/zcaron/yacute/eth/thorn/copyright]putinterval 209 [/onequarter/onehalf/threequarters/brokenbar/onesuperior/twosuperior /threesuperior/logicalnot/plusminus/minus/divide/multiply/degree/mu /registered]putinterval 228 [/Theta/TeXtext32/Upsilon/Xi/Lslash/Oslash/OE/ordmasculine /Delta/Lambda/Omega/Phi]putinterval 242 [/ff/ffl/ffi/dotlessi/dotlessj/Psi/lslash/oslash/oe/germandbls/Sigma /Gamma/Pi] putinterval /in{72 mul}def A3paper {/pw 11.7 in def /pl 16.6 in def} {/pw 8.3 in def /pl 11.7 in def} ifelse /lmr 1 in def /lmv 1 in def /tm 1 in def /baselmr lmr def /baselmv lmv def /basetm tm def /ulw 0.3 def /u 2 def /font 254 array def /sp( )0 get def /ppend false def /Sg/setgray load def /Slw/setlinewidth load def /a4 where {pop}{/a4{}def}ifelse /A4t{90 rotate 1 eq{0}{pl 2 div}ifelse pw neg translate/pl pw/pw pl 2 div def def}def A3paper {/A5t{dup 1 and 1 eq{0}{pw 2 div}ifelse exch 3 lt{pl 2 div}{0}ifelse translate/pl pl 2 div def/pw pw 2 div def}def} {/A5t{90 rotate 1 eq{0}{pl 2 div}ifelse pw neg translate/pl pw/pw pl 2 div def def}def} ifelse /A6t{dup 1 and 1 eq{0}{pw 2 div}ifelse exch 3 lt{pl 2 div}{0}ifelse translate/pl pl 2 div def/pw pw 2 div def}def /B{3{currentpoint exch pop add 6 1 roll currentpoint pop add 6 1 roll }repeat curveto currentpoint stroke moveto}bind def /bft{dup dup findfont 3 1 roll FontDirectory exch known {pop} {(**** Font ")print 100 string cvs print (" is not loaded ****\r\n) print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dict/newfont exch def {1 index/FID eq{pop pop}{newfont 3 1 roll put}ifelse}forall newfont/Encoding SGencoding put dup newfont definefont} {dup /FontName known {/FontName get}{pop (unknown)}ifelse dup (ZapfDingbats) eq {pop 0 [/a205/a206/a85/a86/a87/a88/a89/a90/a91/a92/a93/a94/a95/a96]true} {(Symbol) eq { 240 [/apple] true}{false} ifelse}ifelse {3 -1 roll dup /Encoding get dup length array /newencoding exch def newencoding 0 3 -1 roll putinterval 3 1 roll newencoding 3 1 roll putinterval dup maxlength dict /newfont exch def {1 index/FID eq {pop pop} {newfont 3 1 roll put}ifelse}forall newfont/Encoding newencoding put dup newfont definefont}if }ifelse exch scalefont font 3 1 roll put}bind def /cr{currentpoint exch pop lm exch moveto}bind def /f{font exch get setfont/sw( )stringwidth pop def}bind def /inv{pw pl translate 180 rotate}bind def /ls{90 rotate 0 pw neg translate/pl pw/pw pl def def}bind def /nl{currentpoint nld sub exch pop lm exch moveto}bind def /pscale{dup dup scale 1 exch div dup/pl exch pl mul def/pw exch pw mul def} bind def /ptop{dup /lm exch def pl tm sub moveto ulw setlinewidth 0 setlinecap}bind def /r{neg rmoveto}bind def /R{currentpoint transform round exch round exch itransform moveto rlineto currentpoint stroke moveto}bind def /s/show load def /su{currentpoint 3 -1 roll show uline}bind def /sd{0 setdash}bind def /snl{/nld exch def}bind def /uline{currentpoint gsave newpath u sub moveto u sub lineto stroke grestore}def /w{sw sub 0 sp 4 -1 roll widthshow}bind def /wu{currentpoint 4 2 roll w uline}bind def /X{lm add currentpoint exch pop moveto}bind def /x{0 rmoveto}bind def /xpage{showpage/ppend false def}bind def /y{neg 0 exch rmoveto}bind def a4 0 11 /Times-Roman bft 1 11 /Times-Italic bft 3 11 /Times-Bold bft 4 11 /Times-BoldItalic bft 6 11 /Courier bft 7 11 /Symbol bft 8 8 /Times-Roman bft 20 15 /Times-Roman bft %%EndProlog %%Page: 1 1 /ppend true def /pagesave save def lmr ptop 20 f 187.755 x 0 Sg(Exim Overview)4.68 w 0 f cr 48.72 y (Date: 9 November 2000)3.432 w cr 18.24 y(Exim is a mail)3.672 w 3.432 x (transfer agent \(MT)3.672 w -0.88 x(A\) developed)3.432 w( at the Universit) 3.672 w (y)3.672 w 3.432 x(of Cambridge for)3.672 w 3.432 x(use on Unix) 3.672 w( systems)3.432 w 12.24 snl nl(connected to the)4.152 w 3.912 x (Internet. It is freely)4.152 w 3.912 x(available under the terms)4.152 w 3.912 x(of the GNU General)4.152 w 3.912 x(Public Licence. In)4.152 w 12 snl nl(overall style)5.832 w 5.592 x(it is)5.832 w 5.592 x(similar to) 5.832 w 5.592 x(Smail 3,)5.832 w 5.592 x(but its)5.832 w 5.592 x (facilities are)5.832 w 5.592 x(more extensive.)5.832 w 5.592 x(It contains) 5.832 w 5.592 x(facilities for)5.832 w 12.24 snl nl(verifying incoming) 4.152 w 4.392 x(sender and)4.152 w 4.392 x(recipient addresses, for) 4.152 w 4.392 x(refusing mail)4.152 w 4.392 x(from speci\256ed hosts,) 4.152 w 4.392 x(networks, or)4.152 w cr 12.24 y (senders, and for controlling mail relaying.)3.432 w cr 18.24 y(Exim is) 3.672 w 3.912 x(in production)3.672 w 3.912 x(use at)3.672 w 3.912 x(quite a) 3.672 w 3.912 x(few sites, some)3.672 w 3.912 x(of which)3.672 w 3.912 x (move hundreds)3.672 w 3.912 x(of thousands)3.672 w 3.912 x(of messages) 3.432 w 12 snl nl(per day)3.672 w -0.715 x(. This document contains an) 3.672 w 3.432 x(overview description of the way)3.672 w 3.432 x (Exim works, with a certain)3.672 w( amount)3.432 w 12.24 snl nl (of omission and)3.912 w 3.672 x(simpli\256cation to keep it fairly) 3.912 w 3.672 x(short. Please address any enquiries about)3.912 w 3.672 x (Exim to Philip)3.912 w cr 12.24 y(Hazel:)s cr 18.24 y (Email: )16.983 w 12 snl nl(Phone: +44)15.762 w ( 1223 334714)3.432 w 12.24 snl nl(Fax: +44)26.762 w( 1223 334679)3.432 w cr 18.24 y(University of Cambridge)3.432 w nl(Computing Service)3.432 w cr 12.24 y(New Museums Site)3.432 w cr 12 y(Pembroke Street)3.432 w nl (Cambridge CB2 3QG)3.432 w cr 12.24 y(United Kingdom)3.432 w cr 18.24 y (This document is copyright )3.432 w 7 f(\323 )3.432 w 0 f (University of Cambridge 2000, but copying permission is granted to all.) 3.432 w 12 snl nl 0.4 Slw 471.6 0 R 4 f cr 43.685 48.72 r (If I have seen further it is by standing on the shoulders of giants.) 3.432 w 0 f 13.2 x(\(Isaac Newton\))3.432 w 3 f cr 36.48 y(1. Backgr) 3.432 w -0.198 x(ound)s 0 f cr 15.36 y(Exim owes a)4.872 w 4.632 x (great deal to Smail 3 and)4.872 w 4.632 x(its author)4.872 w -0.44 x (, Ron Karr)4.872 w -0.605 x(. W)4.872 w -0.44 x(ithout the)4.632 w ( experience of running and)4.872 w 12.24 snl nl(working on)5.352 w 5.112 x (the Smail)5.352 w( 3 code,)5.112 w 5.352 x(I could)5.112 w 5.352 x (never have contemplated)5.112 w 5.352 x(starting to)5.112 w 5.352 x (write a new)5.112 w( mailer)5.352 w -0.605 x(. The)5.112 w nl(general style) 4.152 w 3.912 x(of operation and)4.152 w 3.912 x(con\256guration are taken) 4.152 w 3.912 x(from Smail 3,)4.152 w 3.912 x(though the actual)4.152 w 3.912 x(code of Exim)4.152 w( is)3.912 w 12 snl nl(entirely new)3.432 w -0.715 x(.)s cr 18.24 y(My intention was)4.872 w 4.632 x (to write a mailer that)4.872 w 4.632 x(had more functionality than Smail 3,) 4.872 w 4.632 x(but which retained the)4.872 w 12.24 snl nl (simple lightweight approach, as this seemed to me to be all that was needed) 5.832 w ( for)5.832 w 5.592 x(systems directly)5.832 w nl (connected to the Internet, where)4.392 w 4.152 x (most messages are delivered almost immediately)4.392 w -0.715 x (. On the central)4.392 w( mail)4.152 w 12 snl nl (machines at Cambridge University)3.432 w -0.715 x (, `most' means around 98%.)3.432 w cr 18.24 y(Since the \256rst)4.152 w 4.392 x(versions of Exim went)4.152 w 4.392 x(into service at the end) 4.152 w 4.392 x(of 1995, it has)4.152 w 4.392 x(continued to develop, and) 4.152 w 12.24 snl nl (now has far more facilities than my original conception.)3.432 w 3 f cr 30.48 y(2. A)3.432 w -0.814 x(vailability)s 0 f cr 15.36 y (The current distribution)5.112 w 4.872 x(of Exim is)5.112 w 4.872 x (available via the)5.112 w 4.872 x(Exim page at)5.112 w 3 f( http://www) 4.872 w -0.605 x(.exim.org)s 0 f(. The distri-)5.112 w 12 snl nl (bution contains)4.632 w 4.872 x(an )4.632 w 8 f(ASCII )4.872 w 0 f(copy of) 4.632 w 4.872 x(the documentation; other)4.632 w 4.872 x(formats \(HTML,) 4.632 w( PDF)4.872 w -0.88 x(, PostScript,)4.632 w( T)4.872 w -0.77 x (exinfo\))s 12.24 snl nl (can be downloaded from the web site. The HTML version is also available onl) 3.432 w (ine.)3.432 w cr 18.24 y(The following)5.112 w 4.872 x (operating systems)5.112 w 4.872 x(are currently supported:)5.112 w 4.872 x (AIX, BSDI,)5.112 w 4.872 x(DGUX, FreeBSD, GNU/Hurd,)5.112 w nl (GNU/Linux, HI-OSF)4.632 w( \(Hitachi\), HP-UX,)4.392 w 4.632 x (IRIX, MIPS RISCOS, NetBSD,)4.392 w 4.632 x(OpenBSD, QNX, SCO, SCO)4.392 w nl (SVR4.2 \(aka UNIX-SV\),)5.592 w 5.352 x(Solaris \(aka SunOS5\), SunOS4, T) 5.592 w -0.385 x(ru64-Unix \(aka)5.352 w( DEC OSF1, aka Digital)5.592 w cr 12 y(UNIX\) Ultrix, and Unixware.)3.432 w cr 222.25 24.24 r(1)s pagesave restore xpage %%Page: 2 2 /ppend true def /pagesave save def lmv ptop 3 f 0 Sg(3. Limitations)3.432 w 0 f cr 15.36 y(For the)3.912 w 3.672 x (bene\256t of those reading)3.912 w 3.672 x(this overview to)3.912 w 3.672 x(see whether Exim is)3.912 w 3.672 x(of interest to)3.912 w 3.672 x (them, its limitations)3.912 w cr 12.24 y(are listed \256rst.)3.432 w cr 6.6 18.24 r(\267 Exim)13.55 w( is written in ANSI C. This should not) 3.912 w 4.152 x(be much of a limitation these days. However)3.912 w -0.44 x (, to help)3.912 w 12 snl nl 24 x (with systems that lack a true ANSI C library)3.432 w -0.715 x (, Exim avoids making any use of the value returned by)3.432 w 12.24 snl nl 24 x(the )6.312 w 1 f(sprintf\(\) )6.312 w 0 f(function, which is one) 6.312 w 6.552 x(of the main incompatibilities. It has its own version of) 6.312 w 1 f nl( str)24 w -0.407 x(err)s -0.407 x(or\(\) )4.152 w 0 f (for use with)4.152 w 3.912 x(SunOS4 and any)4.152 w 3.912 x (other system that)4.152 w 3.912 x(lacks this function,)4.152 w 3.912 x (and a macro)4.152 w 3.912 x(can be)4.152 w 12 snl nl 24 x(de\256ned to turn) 3.432 w ( )3.432 w 1 f(memmove\(\) )3.432 w 0 f(into )3.432 w 1 f(bcopy\(\) ) 3.432 w 0 f(if necessary)3.432 w -0.715 x(.)s cr 6.6 18.24 r(\267 Exim) 13.55 w 3.672 x(is intended)3.432 w 3.672 x(for use)3.432 w 3.672 x(as an) 3.432 w 3.672 x(Internet mailer)3.432 w -0.44 x(, and)3.672 w 3.432 x (therefore handles)3.672 w 3.432 x(addresses in)3.672 w( RFC 822 domain) 3.432 w 12.24 snl nl 24 x(format only)6.072 w -0.715 x(. It)5.832 w 6.072 x (cannot handle)5.832 w 6.072 x(`bang paths',)5.832 w 6.072 x(though simple) 5.832 w 6.072 x(two-component bang)5.832 w 6.072 x(paths can)5.832 w( be) 6.072 w nl 24 x(converted by)5.352 w 5.112 x(a straightforward)5.352 w ( rewriting con\256guration.)5.112 w 5.352 x(This does not)5.112 w 5.352 x (prevent Exim from)5.112 w( being)5.352 w nl 24 x(interfaced to UUCP) 3.432 w -1.221 x(, provided domain addresses are used.)3.432 w cr 6.6 18.24 r(\267 Exim)13.55 w ( insists that every address it handles has a domain attached. For incoming ) 4.872 w (local messages,)4.872 w 12 snl nl 24 x(domainless addresses) 5.112 w 5.352 x(are automatically quali\256ed)5.112 w 5.352 x (with a con\256gured)5.112 w 5.352 x(domain value. Con\256guration)5.112 w 12.24 snl nl 24 x(options specify)4.632 w 4.392 x(from which)4.632 w ( remote systems)4.392 w 4.632 x(unquali\256ed addresses)4.392 w 4.632 x (are acceptable. They)4.392 w 4.632 x(are quali-)4.392 w cr 24 12.24 r (\256ed on receipt.)3.432 w cr 6.6 18.24 r(\267 The)13.55 w ( only external transport currently implemented is an SMTP transport over a ) 4.632 w (TCP/IP network)4.632 w 12 snl nl 24 x(\(using sockets\),)4.392 w 4.152 x(suitable for)4.392 w 4.152 x(machines on)4.392 w 4.152 x (the Internet. However)4.392 w -0.44 x(, a)4.152 w 4.392 x(pipe transport) 4.152 w 4.392 x(is available,)4.152 w( and)4.392 w 12.24 snl nl 24 x (there are facilities for)4.632 w 4.392 x(writing messages to \256les) 4.632 w 4.392 x(in `batched SMTP')4.632 w 4.392 x(format; both of these) 4.632 w 4.392 x(can be)4.632 w nl 24 x (used to send messages to some other transport mechanism such as UUCP) 3.912 w -1.221 x(. Batched SMTP input is)3.912 w 12 snl nl 24 x (also catered for)3.432 w -0.605 x(.)s cr 6.6 18.48 r(\267 Exim)13.55 w 3.432 x(is not)3.672 w 3.432 x(designed for)3.672 w( storing mail)3.432 w 3.672 x(for dial-in hosts.)3.432 w 3.672 x(When the)3.432 w 3.672 x (volumes of such)3.432 w 3.672 x(mail are lar)3.432 w -0.198 x(ge, it) 3.432 w nl 24 x(is better)5.352 w( to get the messages `delivered')5.112 w 5.352 x(into \256les \(that is, of)5.112 w -0.198 x(f Exim')5.112 w -0.605 x (s queue\))5.112 w 5.352 x(and subsequently)5.112 w 12.24 snl nl 24 x (passed on to the dial-in hosts by other means.)3.432 w 3 f cr 30.48 y (4. Main featur)3.432 w -0.198 x(es)s 0 f cr 15.36 y (Exim follows the same general approach of decentralized control that Smail ) 3.912 w (3 does. There is no central)3.912 w 12 snl nl(process doing overall) 4.152 w 3.912 x(management of mail)4.152 w( delivery)3.912 w -0.715 x (. However)4.152 w -0.44 x(, the)3.912 w( independent delivery)4.152 w 3.912 x(processes share)4.152 w 12.24 snl nl(data in)4.152 w 3.912 x (the form of `hints',)4.152 w 3.912 x(which makes delivery more)4.152 w( ef) 3.912 w -0.198 x(\256cient in some cases.)4.152 w 3.912 x(The hints are kept) 4.152 w 3.912 x(in a)4.152 w nl(number of)4.392 w ( DBM \256les. If any of these \256les are lost, the only ef)4.152 w -0.198 x(fect is to change the pattern of delivery)4.152 w cr 12 y (attempts and retries.)3.432 w cr 18.24 y(Here is a summary of Exim') 3.432 w -0.605 x (s main features. More details are given in the sections which follow) 3.432 w -0.715 x(.)s cr 6.6 18.24 r(\267 Many)13.55 w ( con\256guration options can be given)4.632 w 4.872 x (as expansion strings, which are transformed in various)4.632 w nl 24 x (ways when)5.112 w 4.872 x(they are)5.112 w 4.872 x(used. As)5.112 w 4.872 x(these can)5.112 w 4.872 x(include \256le)5.112 w 4.872 x (lookups, much)5.112 w 4.872 x(of Exim')5.112 w -0.605 x(s operation) 4.872 w 5.112 x(can be)4.872 w nl 24 x(made table-driven)5.112 w 5.352 x (if desired.)5.112 w 5.352 x(For example,)5.112 w 5.352 x(it is possible) 5.112 w 5.352 x(to do)5.112 w 5.352 x(local delivery)5.112 w 5.352 x (on a machine)5.112 w( on)5.352 w 12 snl nl 24 x(which the users do not have) 5.352 w 5.112 x(accounts. The ultimate \257exibility can be)5.352 w 5.112 x (obtained \(at a price\) by)5.352 w 12.24 snl nl 24 x (running a Perl interpreter while expanding a string.)3.432 w cr 6.6 18.24 r(\267 Regular)13.55 w 3.672 x(expressions, compatible with Perl) 3.432 w 3.672 x(5, are available in a number of con\256guration parameters.) 3.432 w cr 6.6 18.24 r(\267 Domain)13.55 w ( lists can include \256le lookups, making it possible to support a lar) 5.832 w -0.198 x(ge number of local)5.832 w nl 24 x(domains, for example.) 3.432 w cr 6.6 18.24 r(\267 Exim)13.55 w ( has \257exible retry algorithms, applicable to mail routing as well as to ) 3.432 w (delivery)3.432 w -0.715 x(.)s cr 6.6 18.24 r(\267 Exim)13.55 w ( contains header and envelope rewriting facilities.)3.432 w cr 6.6 18.24 r(\267 Unquali\256ed)13.55 w ( addresses are accepted only from speci\256ed hosts or networks.)3.432 w cr 6.6 18.24 r(\267 Exim)13.55 w ( can perform multiple deliveries down the same SMTP channel)3.672 w 3.432 x(after deliveries to a host)3.672 w( have)3.432 w nl 24 x (been delayed.)3.432 w cr 6.6 18.24 r(\267 Exim)13.55 w 4.152 x (can be con\256gured)3.912 w 4.152 x(to do local deliveries)3.912 w 4.152 x (immediately but to leave)3.912 w 4.152 x(remote deliveries until the) 3.912 w nl 24 x(message is)4.392 w 4.632 x(picked up)4.392 w 4.632 x(by a) 4.392 w 4.632 x(queue-runner process.)4.392 w 4.632 x(This increases the) 4.392 w 4.632 x(likelihood of)4.392 w 4.632 x(multiple mess-)4.392 w cr 24 12 r(ages being sent down a single SMTP connection.)3.432 w cr 222.25 24.24 r(2)s pagesave restore xpage %%Page: 3 3 /ppend true def /pagesave save def lmr ptop 0 f 6.6 x 0 Sg(\267 When)13.55 w 4.152 x(copies of)3.912 w 4.152 x (a message have)3.912 w 4.152 x(to be)3.912 w 4.152 x(delivered to more) 3.912 w 4.152 x(than one)3.912 w 4.152 x(remote host, up)3.912 w 4.152 x (to a)3.912 w( con\256gured)4.152 w 12.48 snl nl 24 x (maximum number of remote deliveries can be done in parallel.)3.432 w cr 6.6 18.72 r(\267 Exim)13.55 w ( has support for the SMTP AUTH extension for authenticating clients.) 3.432 w cr 6.6 18.48 r(\267 Exim)13.55 w ( has support for encrypted connections using the SMTP ST)3.432 w -0.88 x(AR) s -0.66 x(TTLS extension.)3.432 w cr 6.6 18.72 r(\267 Exim)13.55 w 4.632 x (supports optional checking of incoming return path \(sender\) and receiver ) 4.392 w (addresses as they)4.392 w nl 24 x(are received by SMTP)3.432 w -1.221 x(.)s cr 6.6 18.72 r(\267 SMTP)13.55 w 4.632 x (calls from speci\256c hosts and networks, optionally from speci\256c idents) 4.392 w (, can be locked out,)4.392 w nl 24 x(and incoming)3.912 w 3.672 x (SMTP messages from)3.912 w 3.672 x(speci\256c senders can)3.912 w 3.672 x (also be locked)3.912 w 3.672 x(out. Blocked hosts)3.912 w 3.672 x(can be) 3.912 w nl 24 x(identi\256ed explicitly)3.432 w -0.715 x (, or via RBL lists, or the SMTP AUTH and TLS mechanisms can be used.) 3.432 w cr 6.6 18.48 r(\267 It)13.55 w 3.912 x(is possible)4.152 w 3.912 x (to control)4.152 w 3.912 x(which hosts)4.152 w 3.912 x(may use)4.152 w 3.912 x(the Exim)4.152 w( host as)3.912 w 4.152 x(a relay)3.912 w 4.152 x (for onward)3.912 w 4.152 x(transmission of)3.912 w nl 24 x (mail. Again, the SMTP AUTH and TLS mechanisms can be used in this connectio) 3.432 w (n.)3.432 w cr 6.6 18.72 r(\267 Messages)13.55 w ( on the queue can be `frozen' and `thawed' by the administrator)3.432 w -0.605 x(.)s cr 6.6 18.72 r(\267 The)13.55 w ( maximum size of messages can be speci\256ed.)3.432 w cr 6.6 18.72 r(\267 E) 13.55 w (xim)13.55 w 4.152 x(can handle)4.392 w( a number of)4.152 w 4.392 x(independent local domains)4.152 w 4.392 x(on the same machine;) 4.152 w 4.392 x(each domain can)4.152 w nl 24 x (have its own alias \256les, etc. These are commonly called )3.432 w 1 f (virtual domains)3.432 w 0 f(.)s cr 6.6 18.48 r(\267 Simple)13.55 w 4.872 x (mailing lists)5.112 w 4.872 x(can be)5.112 w 4.872 x(handled directly) 5.112 w 4.872 x(by Exim)5.112 w 4.872 x(itself \(but)5.112 w 4.872 x (for `serious')5.112 w 4.872 x(mailing list)5.112 w( oper-)4.872 w nl 24 x (ations, it is best to use it in conjunction with specialist mailing list so) 3.432 w (ftware\).)3.432 w cr 6.6 18.72 r(\267 Exim)13.55 w 3.432 x(stats a) 3.672 w 3.432 x(user ')0.407 w -0.605 x(s home)3.672 w( directory before) 3.432 w 3.672 x(looking for)3.432 w 3.672 x(a )3.432 w 3 f(.forward ) 3.432 w 0 f(\256le, in)3.672 w 3.432 x(order to)3.672 w( detect the) 3.432 w 3.672 x(case of)3.432 w nl 24 x(a missing NFS mount.)3.432 w cr 6.6 18.72 r(\267 Exim)13.55 w ( contains an optional built-in mail \256ltering facility)3.432 w -0.715 x (. This enables users to set up their own mail)3.432 w 12.24 snl nl 24 x (\256ltering in)3.672 w 3.432 x(a straightfoward)3.672 w( manner without) 3.432 w 3.672 x(the need to)3.432 w 3.672 x(run an external)3.432 w 3.672 x (program. There can also be)3.432 w 12.48 snl nl 24 x (a system \256lter \256le that applies to all messages.)3.432 w cr 6.6 18.72 r(\267 There)13.55 w ( is support for multiple user mailboxes controlled by pre\256xes or suf) 4.392 w -0.198 x(\256xes on)4.392 w 4.152 x(the user name,)4.392 w nl 24 x(either via the \256lter mechanism or through multiple )3.432 w 3 f (.forward )3.432 w 0 f(\256les.)s cr 6.6 18.72 r(\267 Periodic)13.55 w 3.912 x(warnings are automatically sent to messages' senders when)3.672 w 3.912 x(delivery is delayed \261)3.672 w 4.772 x(the time)3.432 w nl 24 x(between warnings is con\256gurable.)3.432 w cr 6.6 18.48 r(\267 A) 13.55 w( queue run)5.112 w 4.872 x(can be)5.112 w 4.872 x(manually started) 5.112 w 4.872 x(to deliver)5.112 w 4.872 x(just a)5.112 w 4.872 x (particular portion)5.112 w 4.872 x(of the)5.112 w 4.872 x(queue, or) 5.112 w( those)4.872 w nl 24 x(messages with)4.152 w 3.912 x(a recipient) 4.152 w 3.912 x(or sender whose)4.152 w 3.912 x(address contains)4.152 w 3.912 x(a given string)4.152 w 3.912 x(or matches)4.152 w 3.912 x (a particular)4.152 w nl 24 x(regular expression.)3.432 w cr 6.6 18.72 r (\267 Exim)13.55 w ( can be con\256gured to run as root only when needed; in particular) 4.872 w -0.44 x(, it need not)4.872 w 5.112 x(run as root)4.872 w nl 24 x(when receiving)5.592 w 5.352 x(incoming messages)5.592 w 5.352 x (or when)5.592 w( sending out)5.352 w 5.592 x(messages over)5.352 w( SMTP) 5.592 w -1.221 x(. It)5.352 w 5.592 x(always uses)5.352 w 1 f nl 24 x (setuid\(\) )3.432 w 0 f(when doing local deliveries.)3.432 w cr 6.6 18.48 r(\267 I)13.55 w ( have tried to make the wording of delivery failure messages clearer and si) 3.432 w (mpler)3.432 w -0.44 x(, for the bene\256t of)3.432 w nl 24 x (those less-experienced)3.912 w 4.152 x(people who)3.912 w 4.152 x (are now using)3.912 w 4.152 x(email. However)3.912 w -0.44 x(, the) 4.152 w( wording can)3.912 w 4.152 x(be completely)3.912 w nl 24 x (replaced by customized paragraphs supplied in a \256le if necessary) 3.432 w -0.715 x(.)s cr 6.6 18.72 r(\267 Exim)13.55 w ( contains support for IPv6.)3.432 w cr 6.6 18.72 r(\267 The)13.55 w ( Exim Monitor)4.632 w 4.392 x(is an optional)4.632 w 4.392 x(extra; it) 4.632 w 4.392 x(displays information about)4.632 w( Exim')4.392 w -0.605 x (s processing in)4.632 w 4.392 x(an X)4.632 w nl( window)24 w -0.715 x(, and) 3.672 w 3.912 x(an administrator)3.672 w 3.912 x(can perform)3.672 w 3.912 x(a number)3.672 w 3.912 x(of control)3.672 w 3.912 x(actions from) 3.672 w 3.912 x(the window)3.672 w( interface.)3.912 w 12.24 snl nl 24 x (This does not, however)3.432 w -0.44 x (, supplant command-line access to all the control functions.)3.432 w 3 f cr 31.2 y(5. Performance)3.432 w 0 f cr 15.6 y(Although I)4.392 w ( did not speci\256cally set)4.152 w 4.392 x(out to write a high-performance) 4.152 w( MT)4.392 w -0.88 x(A, Exim does seem to be)4.152 w( fairly) 4.392 w 12.48 snl nl(ef)s -0.198 x(\256cient. One site I)3.672 w 3.912 x (heard of was a mailing list)3.672 w 3.912 x (exploder that sometimes handles over 100,000)3.672 w( deliveries)3.912 w nl (a day on)3.672 w 3.432 x(a big)3.672 w 3.432 x(Linux box,)3.672 w 3.432 x (the record)3.672 w 3.432 x(being 177,000)3.672 w 3.432 x(deliveries \(791MB) 3.672 w 3.432 x(in total\).)3.672 w 3.432 x(Up to)3.672 w( 13,000 deliveries) 3.432 w nl(in an hour have been reported. On lar)3.432 w -0.198 x (ger systems, up to 800,000 messages a day have been reported.)3.432 w cr 222.25 24.48 r(3)s pagesave restore xpage %%Page: 4 4 /ppend true def /pagesave save def lmv ptop 3 f 0 Sg(6. Interface)3.432 w 0 f cr 15.84 y(Like many)4.152 w( MT) 3.912 w -0.88 x(As, Exim has adopted the Sendmail)3.912 w 4.152 x (interface so that it can be a)3.912 w 4.152 x(straight replacement for) 3.912 w 3 f 12.72 snl nl(usr/sbin/sendmail )4.392 w 0 f(or )4.392 w 3 f (/usr/lib/sendmail)s 0 f(. All the relevant)4.392 w 4.152 x (Sendmail options are implemented. There are)4.392 w 12.48 snl nl(also some) 3.912 w( additional options)3.672 w 3.912 x(that are compatible)3.672 w 3.912 x(with Smail 3,)3.672 w 3.912 x(and some further)3.672 w 3.912 x (options that are)3.672 w 3.912 x(new to)3.432 w 12.72 snl nl(Exim.)s cr 18.96 y(The runtime)5.352 w 5.112 x(con\256guration interface)5.352 w( is a) 5.112 w 5.352 x(single \256le)5.112 w 5.352 x(which is divided)5.112 w 5.352 x(into a)5.112 w 5.352 x(number of sections.)5.112 w( The)5.352 w cr 12.48 y (entries in this \256le consist of keywords and values, in the style of Smai) 3.432 w (l 3 con\256guration \256les.)3.432 w cr 18.96 y (Control of messages on the queue can)4.632 w 4.392 x (be done via certain privileged command)4.632 w 4.392 x (line options. There is)4.632 w nl(also an)4.632 w 4.392 x (optional monitor program)4.632 w 4.392 x(called )4.632 w 3 f(eximon)s 0 f (, which)4.632 w 4.392 x(displays current information)4.632 w 4.392 x (in an X)4.632 w( window)4.392 w cr 12.48 y (and contains interfaces to the command line options.)3.432 w 3 f cr 31.68 y(7. Method of operation)3.432 w 0 f cr 15.84 y(When Exim)3.912 w 3.672 x(receives a)3.912 w 3.672 x(message, it)3.912 w( writes two)3.672 w 3.912 x(\256les in)3.672 w 3.912 x(its spool)3.672 w( directory)3.912 w -0.715 x(. The \256rst)3.672 w 3.912 x(contains the)3.672 w( envelope) 3.912 w nl(information, the)4.392 w 4.152 x(current status of the)4.392 w 4.152 x(message, and the headers,)4.392 w 4.152 x(while the second contains) 4.392 w 4.152 x(the body of)4.392 w 12.48 snl nl(the message. The)4.872 w 4.632 x(status of)4.872 w 4.632 x(the message)4.872 w 4.632 x(includes a) 4.872 w 4.632 x(complete list of)4.872 w 4.632 x(recipients and)4.872 w 4.632 x(a list)4.872 w 4.632 x(of those)4.872 w( that)4.632 w 12.72 snl nl (have already received)6.072 w 6.312 x(the message. The header)6.072 w 6.312 x(\256le gets updated during)6.072 w 6.312 x(the course of delivery if) 6.072 w 12.48 snl nl(necessary)s -0.715 x(.)s cr 18.96 y(A message remains) 3.912 w 4.152 x(in the spool directory)3.912 w 4.152 x (until it is completely delivered)3.912 w 4.152 x(to its recipients or) 3.912 w 4.152 x(to an error)3.912 w 12.72 snl nl(address, or)3.912 w ( until it is)3.672 w 3.912 x(deleted by an administrator or)3.672 w 3.912 x(by the user who)3.672 w 3.912 x(originally created it. In cases) 3.672 w( when)3.912 w 12.48 snl nl(delivery cannot)4.632 w 4.392 x(proceed ) 4.632 w (\261)4.632 w 5.492 x(for example,)4.632 w 4.392 x(when a message) 4.632 w 4.392 x(can neither)4.632 w 4.392 x(be delivered)4.632 w 4.392 x (to its recipients)4.632 w( nor)4.392 w 12.72 snl nl(returned to)6.552 w ( its sender)6.312 w -0.44 x(, the)6.312 w 6.552 x (message is marked `frozen' on)6.312 w 6.552 x(the spool, and no more) 6.312 w 6.552 x(deliveries are)6.312 w 12.48 snl nl(attempted. The)4.872 w 4.632 x(administrator can thaw)4.872 w 4.632 x(such messages when)4.872 w 4.632 x(the problem has been)4.872 w 4.632 x(corrected, and can)4.872 w 12.72 snl nl(also freeze individual messages by hand if necessary)3.432 w -0.715 x(.)s cr 18.96 y(As delivery)4.872 w 4.632 x (proceeds, Exim writes timestamped)4.872 w 4.632 x (information about each address)4.872 w 4.632 x(to a per-message log) 4.872 w 12.48 snl nl(\256le; this)3.912 w( includes any delivery)3.672 w 3.912 x(error messages. This log)3.672 w 3.912 x(is solely for the)3.672 w 3.912 x(bene\256t of the administrator)3.672 w -0.605 x(. All)3.912 w 12.72 snl nl(the information Exim itself)4.392 w 4.152 x (needs for delivery is kept in)4.392 w 4.152 x (the header spool \256le. The message log)4.392 w 4.152 x(\256le is) 4.392 w nl(deleted with the)3.672 w 3.432 x(spool \256les.)3.672 w 3.432 x (If a)3.672 w 3.432 x(message is)3.672 w 3.432 x(delayed for)3.672 w 3.432 x(more than)3.672 w 3.432 x(a con\256gured)3.672 w 3.432 x(time, a) 3.672 w( warning message)3.432 w 12.48 snl nl(is sent to the sender) 3.432 w -0.605 x(.)s cr 18.96 y(The main)3.912 w 3.672 x(delivery processing) 3.912 w 3.672 x(elements of)3.912 w( Exim are)3.672 w 3.912 x(called ) 3.672 w 1 f(dir)s -0.407 x(ectors)s 0 f(, )3.912 w 1 f(r)s -0.407 x(outers)s 0 f(, and)3.672 w 1 f( transports)3.912 w 0 f(. Code for)3.672 w( a) 3.912 w 12.72 snl nl(number of these)4.152 w 4.392 x (is provided, and compile-time)4.152 w 4.392 x(options specify which ones) 4.152 w 4.392 x(are actually included in)4.152 w( the)4.392 w 12.48 snl nl (binary)s -0.715 x(. Directors)7.032 w 6.792 x(handle addresses)7.032 w 6.792 x(that include)7.032 w 6.792 x(one of)7.032 w 6.792 x(the local) 7.032 w 6.792 x(domains, routers)7.032 w 6.792 x(handle remote)7.032 w cr 12.72 y(addresses, and transports do actual deliveries.)3.432 w cr 18.96 y (When a message is to be delivered, the sequence of events is roughly as fol) 3.432 w (lows:)3.432 w cr 6.6 18.72 r(\267 If)13.55 w( there is)4.152 w 3.912 x(a system \256lter \256le, it is)4.152 w 3.912 x (obeyed. This can check on the)4.152 w 3.912 x(contents of the message and) 4.152 w( its)3.912 w 12.72 snl nl 24 x(headers, and)3.912 w ( cause delivery to be abandoned or directed to alternative or additional) 3.672 w 3.912 x(addresses, or)3.672 w( it)3.432 w nl 24 x(can freeze) 4.632 w 4.872 x(the message)4.632 w 4.872 x(for human attention.)4.632 w 4.872 x(It can)4.632 w 4.872 x(also add)4.632 w 4.872 x(headers to the) 4.632 w 4.872 x(message, and)4.632 w 4.872 x(set up)4.632 w cr 24 12.48 r (`scores' which can be used in local recipients' \256lter \256les.)3.432 w cr 6.6 18.96 r(\267 Each)13.55 w 4.152 x(address is)4.392 w( parsed and a) 4.152 w 4.392 x(check is made to)4.152 w 4.392 x(see if it)4.152 w 4.392 x (is local or not,)4.152 w 4.392 x(by comparing the domain)4.152 w nl 24 x(with the list)4.152 w 3.912 x(of local domains,)4.152 w 3.912 x (which can)4.152 w 3.912 x(be wildcarded, or)4.152 w 3.912 x(even held in) 4.152 w 3.912 x(a \256le)4.152 w 3.912 x(if there are)4.152 w 3.912 x(a lar) 4.152 w -0.198 x(ge)s cr 24 12.48 r(number of them.)3.432 w cr 6.6 18.96 r (\267 If)13.55 w ( an address is local, it is passed to each con\256gured director in turn un) 3.912 w (til)3.912 w 3.672 x(one is able to handle it.)3.912 w nl 24 x (There are)3.912 w 4.152 x(directors for handling)3.912 w 4.152 x (aliases, for handling)3.912 w 3 f 4.152 x(.forward )3.912 w 0 f(\256les, fo) 4.152 w (r)4.152 w( checking on)3.912 w 4.152 x(login names,)3.912 w 12.48 snl nl 24 x(and so on.)3.912 w 3.672 x(If no director)3.912 w 3.672 x (can handle)3.912 w 3.672 x(it, the address)3.912 w 3.672 x(is failed.) 3.912 w 3.672 x(Directors can be)3.912 w( tar)3.672 w -0.198 x(geted at) 3.912 w( particular)3.432 w 12.72 snl nl 24 x (local domains, so several local domains can be processed independently of e) 3.432 w (ach other)3.432 w -0.605 x(.)s cr 6.6 18.96 r(\267 A)13.55 w ( director that accepts an)5.592 w 5.352 x(address may set up)5.592 w 5.352 x(a local or a)5.592 w 5.352 x(remote transport for it,)5.592 w 5.352 x(or it may)5.592 w 12.48 snl nl 24 x(generate one or)3.912 w 4.152 x (more new addresses \(typically from)3.912 w 4.152 x (alias or forward \256les\). New addresses)3.912 w 4.152 x(are fed)3.912 w 12.72 snl nl 24 x(back into)4.152 w ( this process from the top, but in order to avoid loops, a director will ig) 3.912 w (nore any address)3.912 w cr 24 12.48 r (which has an identically-named ancestor that was processed by itself.) 3.432 w cr 222.25 24.72 r(4)s pagesave restore xpage %%Page: 5 5 /ppend true def /pagesave save def lmr ptop 0 f 6.6 x 0 Sg(\267 If)13.55 w( an address is not local,)3.672 w 3.432 x (it is passed to each)3.672 w 3.432 x(router in turn until one)3.672 w 3.432 x(is able to handle it.)3.672 w( There are)3.432 w 12.24 snl nl 24 x(routers for)5.352 w 5.112 x(looking up)5.352 w 5.112 x(the domain) 5.352 w 5.112 x(in a)5.352 w 5.112 x(local list,)5.352 w 5.112 x (for doing DNS)5.352 w 5.112 x(or host)5.352 w 5.112 x(\256le lookups,) 5.352 w 5.112 x(and for)5.352 w nl 24 x (running external routing programs. If no router can handle it, the address ) 3.432 w (is failed.)3.432 w cr 6.6 18.48 r(\267 A)13.55 w 4.632 x (router that accepts an)4.392 w 4.632 x(address may set up a)4.392 w 4.632 x(transport for it, or may)4.392 w 4.632 x(pass an altered address to) 4.392 w nl 24 x(subsequent routers,)4.632 w 4.392 x(or it)4.632 w 4.392 x (may discover)4.632 w 4.392 x(that the)4.632 w 4.392 x(address is a) 4.632 w 4.392 x(local address)4.632 w 4.392 x(after all.)4.632 w 4.392 x (This typically)4.632 w nl 24 x(happens when)4.392 w 4.152 x(a partial) 4.392 w 4.152 x(domain name)4.392 w 4.152 x(is used)4.392 w 4.152 x(and \(fo) 4.392 w (r)4.392 w( example\) the)4.152 w 4.392 x(DNS lookup)4.152 w 4.392 x(is con\256gured)4.152 w( to)4.392 w cr 24 12.24 r (try to extend such names. In this case, the address is passed back to the d) 3.432 w (irectors.)3.432 w cr 6.6 18.48 r(\267 Routers)13.55 w 3.912 x (normally set)3.672 w 3.912 x(up remote)3.672 w 3.912 x(transports for) 3.672 w 3.912 x(messages that)3.672 w 3.912 x(are to)3.672 w 3.912 x (be delivered)3.672 w 3.912 x(to other)3.672 w( machines.)3.912 w nl( Howeve) 24 w (r)24 w -0.44 x(, a)3.912 w 3.672 x(router can)3.912 w 3.672 x (pass a message)3.912 w 3.672 x(to a local)3.912 w 3.672 x(transport, and) 3.912 w 3.672 x(by this means)3.912 w 3.672 x(messages for remote)3.912 w cr 24 12.24 r (hosts can be routed to other transport mechanisms such as UUCP via a \256le) 3.432 w ( or a pipe.)3.432 w cr 6.6 18.48 r(\267 When)13.55 w 5.352 x (all the)5.592 w 5.352 x(directing and)5.592 w 5.352 x(routing is)5.592 w 5.352 x(done, addresses)5.592 w( that have)5.352 w 5.592 x(been successfully) 5.352 w 5.592 x(handled are)5.352 w nl 24 x (passed to their assigned transports. Local transports normally handle only) 4.632 w 4.392 x(one address at a time,)4.632 w 12.48 snl nl 24 x(but remote) 3.672 w 3.912 x(ones can)3.672 w 3.912 x(handle more)3.672 w 3.912 x (than one.)3.672 w 3.912 x(Each local transport)3.672 w 3.912 x(runs in) 3.672 w 3.912 x(a separate)3.672 w 3.912 x(process under)3.672 w( a) 3.912 w 12.24 snl nl 24 x(non-privileged uid.)3.432 w cr 6.6 18.24 r(\267 If) 13.55 w( there were any)6.072 w 5.832 x (errors, a message is returned to an appropriate)6.072 w 5.832 x (address \(the sender in the)6.072 w cr 24 12.48 r(common case\).)3.432 w cr 6.6 18.24 r(\267 If)13.55 w 3.672 x(one or)3.912 w 3.672 x(more addresses) 3.912 w( suf)3.672 w -0.198 x(fered a)3.672 w 3.912 x(temporary failure,) 3.672 w 3.912 x(the message is)3.672 w 3.912 x(left on the)3.672 w 3.912 x (queue, to)3.672 w 3.912 x(be tried)3.672 w nl 24 x(again later)3.432 w -0.605 x(. Otherwise the spool \256les and message log are deleted.) 3.432 w 3 f cr 30.72 y(8. Mail \256ltering)3.432 w 0 f cr 15.6 y (Exim can be con\256gured to allow users to)4.152 w 3.912 x (set up \256lter \256les as an alternative)4.152 w 3.912 x (to the traditional )4.152 w 3 f(.forward)s 0 f nl(\256les. A)3.672 w 3.912 x(\256lter \256le)3.672 w 3.912 x(can test various)3.672 w 3.912 x (characteristics of)3.672 w 3.912 x(a message, including)3.672 w 3.912 x (the contents)3.672 w 3.912 x(of the headers)3.672 w( and)3.912 w nl (the start of the body)3.672 w -0.715 x (, and direct delivery to speci\256ed addresses, \256les, or pipes according) 3.672 w ( to what it)3.672 w( \256nds.)3.432 w nl (The system-wide \256lter \256le uses the same control syntax.)3.432 w 3 f cr 30.72 y(9. Dir)3.432 w -0.198 x(ectors)s 0 f cr 15.6 y(The existing) 4.392 w 4.632 x(directors are)4.392 w 4.632 x(listed below)4.392 w -0.715 x (. I)4.392 w 4.632 x(use the RFC)4.392 w 4.632 x(822 term)4.392 w 1 f 4.632 x(local part )4.392 w 0 f(to mean)4.632 w 4.392 x(that portion) 4.632 w( of an)4.392 w nl(address that comes before the @ character) 3.432 w -0.605 x(.)s cr 6.6 18.24 r(\267 )13.55 w 3 f(alias\256le)s 0 f (: This)3.672 w 3.912 x(director handles)3.672 w 3.912 x(local part) 3.672 w 3.912 x(expansion via)3.672 w 3.912 x(a traditional)3.672 w 3.912 x (alias \256le. The)3.672 w 3.912 x(name of)3.672 w 3.912 x(the \256le) 3.672 w 12.48 snl nl 24 x(is obtained)6.312 w ( by string expansion, and may therefore depend on the local part)6.072 w 6.312 x(or the domain.)6.072 w 12.24 snl nl 24 x (Generated pipe and \256le addresses can be \(independently\) locked out.) 3.432 w cr 24 18.24 r(The )3.912 w 3 f(alias\256le )3.672 w 0 f (director can also be used to test a list of local parts and direct any mess) 3.672 w (ages for)3.672 w( them)3.432 w 12.48 snl nl 24 x(to a)3.672 w 3.912 x(speci\256c transport.)3.672 w 3.912 x(In this)3.672 w 3.912 x (case the)3.672 w 3.912 x(data associated)3.672 w 3.912 x(with the)3.672 w 3.912 x(local part)3.672 w 3.912 x(in the)3.672 w 3.912 x(\256le is) 3.672 w 3.912 x(not used)3.672 w( for)3.912 w 12.24 snl nl 24 x (address expansion, but is)3.912 w 3.672 x(available for other)3.912 w 3.672 x(purposes. For example, \256les)3.912 w 3.672 x(containing records of) 3.912 w( the)3.672 w nl( form)24 w 6 f cr 37.2 18.48 r (foo: uid=1234 gid=5678 mailbox=/home_1/foo/inbox)6.6 w 0 f cr 24 18.24 r (could be used)5.832 w 5.592 x(on a system)5.832 w 5.592 x(that did local) 5.832 w 5.592 x(deliveries without)5.832 w 5.592 x(consulting its password) 5.832 w 5.592 x(\256le. The)5.832 w 3 f nl 24 x(alias\256le )4.152 w 0 f (director could)3.912 w 4.152 x(use the)3.912 w( \256le to)4.152 w 3.912 x (verify that the)4.152 w 3.912 x(local part)4.152 w 3.912 x(was valid, and) 4.152 w 3.912 x(then the )4.152 w 3 f(append\256le)s 0 f 12.48 snl nl 24 x(transport could use it to get a uid, gid, and mailbox for the delivery) 3.432 w -0.715 x(.)s cr 24 18.24 r(The )4.632 w 3 f(alias\256le )4.392 w 0 f (director can also be)4.632 w 4.392 x(con\256gured to include)4.632 w 4.392 x(the domain in the)4.632 w 4.392 x(key that is looked)4.632 w( up,) 4.392 w 12.24 snl nl 24 x(making it)3.912 w( possible to hold aliases) 3.672 w 3.912 x(for several dif)3.672 w -0.198 x(ferent local domains in) 3.672 w 3.912 x(the same \256le. It is)3.672 w( possible)3.432 w cr 24 12.48 r (to specify a default address to be used if nothing in the alias \256le matc) 3.432 w (hes the incoming address.)3.432 w cr 6.6 18.24 r(\267 )13.55 w 3 f (forward\256le)s 0 f(: This director handles local part expansion)5.832 w 5.592 x(via a traditional forward \256le or)5.832 w -0.44 x(, if)5.592 w( so) 5.832 w 12.48 snl nl 24 x(con\256gured, by)4.632 w 4.392 x(a user)4.632 w( ') 0.407 w -0.605 x(s \256lter)4.392 w( \256le. The)4.632 w 4.392 x(name of the) 4.632 w 4.392 x(\256le is)4.632 w 4.392 x(obtained by string)4.632 w 4.392 x(expansion, and may)4.632 w 12.24 snl nl 24 x(therefore depend) 6.312 w( on the)6.072 w 6.312 x(local part or)6.072 w 6.312 x (the domain, though)6.072 w 6.312 x(if it is not)6.072 w 6.312 x (an absolute path)6.072 w 6.312 x(it is)6.072 w nl 24 x (automatically assumed to)3.912 w 4.152 x(be in the home directory of) 3.912 w 4.152 x(the user whose login name)3.912 w 4.152 x(is the local part.) 3.912 w nl 24 x(Mailing lists can be handled by \256le names of the form) 3.432 w 6 f cr 37.2 18.48 r(/some/list/directory/${local_part})s 0 f cr 222.25 24.24 r(5)s pagesave restore xpage %%Page: 6 6 /ppend true def /pagesave save def lmv ptop 0 f 24 x 0 Sg(and it)3.912 w 3.672 x(is possible)3.912 w 3.672 x(to specify) 3.912 w 3.672 x(an error)3.912 w 3.672 x(address for)3.912 w 3.672 x (each list that)3.912 w 3.672 x(depends on)3.912 w 3.672 x(the list) 3.912 w 3.672 x(name. Generated)3.912 w 12.24 snl nl 24 x (pipe and \256le addresses can be \(independently\) locked out.)3.432 w cr 6.6 18.24 r(\267 )13.55 w 3 f(localuser)s 0 f (: This director matches the local)4.152 w 3.912 x(part of an address to a) 4.152 w 3.912 x(user of the machine. It can)4.152 w( also)3.912 w nl 24 x(be con\256gured)4.152 w 3.912 x(to do)4.152 w 3.912 x(a pattern) 4.152 w 3.912 x(match on)4.152 w 3.912 x(the user)4.152 w( ')0.407 w -0.605 x(s home)3.912 w 4.152 x(directory name.)3.912 w 4.152 x(This makes) 3.912 w 4.152 x(it possible)3.912 w( to)4.152 w nl 24 x (partition the set of local users according to their home directories.) 3.432 w cr 6.6 18.48 r(\267 )13.55 w 3 f(smartuser)s 0 f(: This)4.872 w 5.112 x(director matches)4.872 w 5.112 x(any local)4.872 w 5.112 x (part. It can)4.872 w 5.112 x(be used)4.872 w 5.112 x(to pass messages) 4.872 w 5.112 x(for unknown)4.872 w 12 snl nl 24 x(users to)3.912 w 3.672 x (a script)3.912 w( that generates)3.672 w 3.912 x(a helpful)3.672 w 3.912 x (error message, or)3.672 w 3.912 x(it can)3.672 w 3.912 x(be used to) 3.672 w 3.912 x(send such)3.672 w 3.912 x(messages to)3.432 w 12.24 snl nl 24 x(another host, optionally changing the envelope address in the process.) 3.432 w cr 18.48 y(The con\256guration \256le determines)3.912 w 3.672 x (which directors are actually)3.912 w 3.672 x(used, and in which)3.912 w ( order)3.672 w -0.605 x(. It is possible)3.912 w( to)3.432 w nl (use the same director more than once, with dif)3.432 w -0.198 x (ferent options.)3.432 w cr 18.24 y (The addresses a director handles can be constrained in the following ways:) 3.432 w cr 6.6 18.48 r(\267 A)13.55 w ( speci\256c set of local domains may be speci\256ed, in which case the dire) 5.112 w (ctor is called only for)5.112 w cr 24 12 r (addresses that contain one of those domains.)3.432 w cr 6.6 18.48 r(\267 A) 13.55 w( speci\256c set of)6.072 w 5.832 x (local parts may be speci\256ed, in which case)6.072 w 5.832 x (the director is called only for)6.072 w nl 24 x(addresses that)6.552 w ( contain one of those local parts. This could be used, for example, to hand) 6.312 w (le)6.312 w nl 24 x(`postmaster ')0.407 w ( independently of the particular local domain.)3.432 w cr 6.6 18.24 r(\267 ) 13.55 w (A)13.55 w 3.912 x(speci\256c set of)3.672 w 3.912 x (sender addresses may)3.672 w 3.912 x(be speci\256ed. This can)3.672 w 3.912 x(be used to)3.672 w 3.912 x(implement closed)3.672 w( mailing) 3.432 w nl( lists.)24 w cr 6.6 18.24 r(\267 A)13.55 w( director may) 3.672 w 3.432 x(be con\256gured to)3.672 w 3.432 x(handle local parts) 3.672 w 3.432 x(that start)3.672 w 3.432 x(with a certain)3.672 w 3.432 x (pre\256x and/or end)3.672 w( with a)3.432 w nl 24 x(certain suf)5.352 w -0.198 x(\256x. For)5.112 w 5.352 x(example, a)5.112 w 5.352 x(director can) 5.112 w 5.352 x(be set)5.112 w 5.352 x(up to)5.112 w( handle local)5.352 w 5.112 x(parts of)5.352 w 5.112 x(the form)5.352 w 6 f( xxxx-)5.112 w nl 24 x(request )3.432 w 0 f(only)s -0.715 x(.)s cr 6.6 18.48 r(\267 A) 13.55 w 5.352 x(\257ag controls)5.112 w 5.352 x(whether a)5.112 w ( director is)5.352 w 5.112 x(called when)5.352 w 5.112 x(an address) 5.352 w 5.112 x(is being veri\256ed)5.352 w 5.112 x(on an)5.352 w( incoming) 5.112 w nl 24 x (message \(during the SMTP dialogue\), as opposed to being directed for deli) 3.432 w (very)3.432 w -0.715 x(.)s cr 18.24 y (In addition, certain \256les can be required to exist or not exist for a gi) 3.432 w (ven director to be run.)3.432 w 3 f cr 30.48 y(10. Routers) 3.432 w 0 f cr 15.36 y(The existing routers are:)3.432 w cr 6.6 18.48 r(\267) 13.55 w ( )13.55 w 3 f(domainlist: )4.632 w 0 f(This router)4.632 w 4.392 x (searches a)4.632 w 4.392 x(list of)4.632 w 4.392 x(domains for)4.632 w 4.392 x(the one)4.632 w 4.392 x(it is)4.632 w 4.392 x(trying to)4.632 w 4.392 x(route. The)4.632 w 4.392 x(list may)4.632 w nl 24 x(either be) 3.912 w 4.152 x(a string)3.912 w 4.152 x(in the)3.912 w 4.152 x (con\256guration \256le, possibly)3.912 w 4.152 x(including wild)3.912 w 4.152 x(cards or regular)3.912 w 4.152 x(expressions, or)3.912 w nl 24 x (it may)7.512 w ( be in a \256le, or both may be provided. In the case of a \256le, keys of ) 7.272 w (the form)7.272 w 6 f nl 24 x(*.foo.bar.com )3.432 w 0 f (can be used for simple wildcarding.)3.432 w cr 24 18.24 r(If the)5.592 w 5.352 x(domain is)5.592 w 5.352 x(found, its)5.592 w 5.352 x(entry can) 5.592 w 5.352 x(either specify)5.592 w 5.352 x(a single)5.592 w 5.352 x (replacement domain)5.592 w( name that)5.352 w( is)5.592 w nl 24 x(passed on) 3.672 w 3.432 x(to subsequent)3.672 w 3.432 x(routers, or)3.672 w 3.432 x (it can specify)3.672 w 3.432 x(a list)3.672 w 3.432 x(of domain)3.672 w 3.432 x(names that are)3.672 w 3.432 x(looked up)3.672 w( by this)3.432 w nl ( router)24 w -0.605 x(. The lookup can be done by the )4.632 w 1 f (gethostbyname\(\) )4.632 w 0 f(function, or by DNS lookup, and in the) 4.632 w nl 24 x (latter case it is con\256gurable whether MX or A records or both are used. ) 5.112 w (As well as providing)5.112 w nl 24 x(explicit routing for)5.592 w 5.352 x(certain domains, the)5.592 w 5.352 x(domainlist router)5.592 w 5.352 x(can be used)5.592 w 5.352 x(to set up)5.592 w 5.352 x(gateways for) 5.592 w nl 24 x(partial domains \(for example, for)3.432 w 6 f( *.uucp) 3.672 w 0 f(\) and it can also be used as)3.432 w 3.672 x (a `smarthost' router by using)3.432 w nl 24 x(the all-inclusive wild card.) 3.432 w cr 6.6 18.24 r(\267 )13.55 w 3 f(lookuphost: )3.672 w 0 f (This router)3.912 w( looks up)3.672 w 3.912 x(domain names)3.672 w 3.912 x (either by calling)3.672 w 3.912 x(the )3.672 w 1 f(gethostbyname\(\) ) 3.672 w 0 f(function, or)3.912 w nl 24 x(by using)5.112 w 4.872 x(the DNS.) 5.112 w 4.872 x(In the)5.112 w 4.872 x(latter case,)5.112 w( it can) 4.872 w 5.112 x(be con\256gured)4.872 w 5.112 x(to use)4.872 w 5.112 x (the DNS resolver)4.872 w 5.112 x(options for)4.872 w nl 24 x (qualifying single-component)3.672 w 3.912 x(names and for)3.672 w 3.912 x (searching parent)3.672 w 3.912 x(domains. It is)3.672 w 3.912 x (also possible to)3.672 w( specify)3.912 w nl 24 x(explicit text strings for) 3.912 w 3.672 x(widening domains that are)3.912 w 3.672 x (not found initially)3.912 w -0.715 x(. It)3.912 w 3.672 x (is possible to insist)3.912 w 3.672 x(on the)3.912 w nl 24 x(presence of) 4.392 w 4.632 x(MX records for certain)4.392 w 4.632 x(sets of domains. A) 4.392 w 4.632 x(con\256guration option controls whether)4.392 w( the) 4.632 w nl( message')24 w -0.605 x (s headers are rewritten when a domain name is changed.)3.432 w cr 6.6 18.24 r(\267 )13.55 w 3 f(querypr)s -0.198 x(ogram: )3.672 w 0 f (This router passes the address to a command that runs in)3.672 w 3.432 x (a separate process under)3.672 w nl 24 x (an unprivileged uid and gid. The command returns a line of text specifying ) 3.672 w (whether it matched)3.672 w( the)3.432 w nl 24 x(domain or not. If) 3.672 w 3.432 x(it did match, it may specify)3.672 w 3.432 x (a transport name, or it may specify)3.672 w 3.432 x(that the transport) 3.672 w nl 24 x(speci\256ed for)4.152 w( the router is used.)3.912 w 4.152 x(The command may also send)3.912 w 4.152 x(back a new domain name to) 3.912 w( replace)4.152 w cr 222.25 24.24 r(6)s pagesave restore xpage %%Page: 7 7 /ppend true def /pagesave save def lmr ptop 0 f 24 x 0 Sg(the current)3.912 w 4.152 x(one, and)3.912 w 4.152 x (specify a method)3.912 w 4.152 x(of looking)3.912 w 4.152 x(this name) 3.912 w 4.152 x(up \()3.912 w 1 f(gethostbyname\(\))s 0 f(, DNS,)3.912 w 4.152 x(or pass)3.912 w( to)4.152 w 12 snl nl 24 x(next router\).)3.432 w cr 18 y(The con\256guration \256le determines which routers)4.392 w 4.152 x (are actually used, and in)4.392 w 4.152 x(which order)4.392 w -0.605 x (. It is possible)4.392 w( to)4.152 w nl (use the same router more than once, with dif)3.432 w -0.198 x (ferent options.)3.432 w cr 18 y(Like directors,)3.912 w ( routers can be constrained to handle only certain domains or certain local) 3.672 w ( parts \(though)3.672 w( I)3.432 w nl(haven')s -0.198 x(t seen) 3.912 w 3.672 x(a good use for)3.912 w 3.672 x(that yet\), or messages) 3.912 w 3.672 x(from certain senders. If)3.912 w 3.672 x(a router times out,) 3.912 w 3.672 x(either the)3.912 w nl (delivery can be deferred, or the address can be passed on to the next route) 3.432 w (r)3.432 w -0.605 x(.)s cr 18 y(A \257ag controls whether)3.672 w 3.912 x(a router is called when an)3.672 w 3.912 x (address is being veri\256ed on an)3.672 w 3.912 x(incoming message, as) 3.672 w nl(opposed to being routed for delivery)3.432 w -0.715 x(.)s 3 f cr 30 y(1)s -0.605 x(1. T)3.432 w -0.814 x(ransports)s 0 f cr 15.12 y(Local and) 3.672 w 3.432 x(remote transports)3.672 w 3.432 x(are handled)3.672 w( dif) 3.432 w -0.198 x(ferently)s -0.715 x(. A)3.672 w 3.432 x(local transport) 3.672 w 3.432 x(is always)3.672 w 3.432 x(run in)3.672 w( a separate process) 3.432 w nl(with an)4.632 w 4.392 x(appropriate real)4.632 w 4.392 x (uid and gid.)4.632 w 4.392 x(Their values)4.632 w 4.392 x(can be speci\256e) 4.632 w (d)4.632 w 4.392 x(in the transport')4.632 w -0.605 x (s con\256guration,)4.392 w( or)4.632 w 12.24 snl nl (passed over from the director that handled)4.632 w 4.392 x (the address. Remote transports run under Exim')4.632 w -0.605 x(s own) 4.392 w( uid.)4.632 w 12 snl nl(The existing transports are:)3.432 w cr 6.6 18 r(\267 )13.55 w 3 f(append\256le: )4.152 w 0 f (This local transport appends the)3.912 w 4.152 x (message to a \256le whose name)3.912 w 4.152 x(is speci\256ed as a string) 3.912 w nl 24 x(containing variable expansions. The)4.392 w 4.632 x (current local part can be inserted via the)4.392 w 4.632 x (expansion mechan-)4.392 w nl 24 x(ism, and \256le names such as)3.432 w 6 f cr 24 18 r(/home/${local_part}/inbox)s nl( /var/mail/${local_part})24 w 0 f cr 24 18 r(are typical)3.672 w( examples. However)3.432 w -0.44 x (, it is possible to look up each individual user)3.432 w( ')0.407 w -0.605 x(s inbox name in a \256le,)3.432 w nl 24 x(should that be required.) 3.432 w cr 24 18 r(Exclusive access)3.912 w 3.672 x(to the)3.912 w 3.672 x (\256le is)3.912 w( ensured by)3.672 w 3.912 x(using the)3.672 w 3.912 x (traditional mailbox locking)3.672 w 3.912 x(strategy of)3.672 w( creating) 3.912 w nl 24 x(a lock)3.672 w 3.432 x(\256le. The)3.672 w 3.432 x (lock creation)3.672 w 3.432 x(process uses)3.672 w 3.432 x(a `hitching) 3.672 w 3.432 x(post' algorithm)3.672 w 3.432 x(\(similar to)3.672 w 3.432 x(that used)3.672 w 3.432 x(by Pine\))3.672 w nl 24 x(which is robust) 4.872 w 4.632 x(when the)4.872 w 4.632 x(mailbox \256le is)4.872 w 4.632 x (NFS-mounted. The)4.872 w 4.632 x(\256le is)4.872 w 4.632 x (also locked using)4.872 w 4.632 x(the )4.872 w 1 f(fcntl\(\))s 0 f nl 24 x(function, but either one of the locking mechanisms can be turned of) 3.432 w -0.198 x(f if necessary)3.432 w -0.715 x(.)s cr 24 18 r(The ) 4.392 w 3 f(append\256le )4.392 w 0 f (transport can also be con\256gured to deliver each message into a separate ) 4.392 w (\256le)4.392 w 4.152 x(in a)4.392 w nl 24 x(given directory) 3.432 w -0.715 x(, optionally in `maildir)3.432 w 0.407 x (' format. In this case, no locking is needed.)3.432 w cr 24 18 r (Options on this)3.912 w 3.672 x(transport allow)3.912 w 3.672 x(for the) 3.912 w 3.672 x(insertion of)3.912 w 3.672 x(a pre\256x)3.912 w 3.672 x (line \(for)3.912 w 3.672 x(example, `From)3.912 w 3.672 x(xxx...'\) and) 3.912 w( a)3.432 w nl( suf)24 w -0.198 x(\256x line,)4.392 w 4.152 x (special processing of)4.392 w 4.152 x(message lines starting)4.392 w 4.152 x(with `From', and)4.392 w 4.152 x(the addition of)4.392 w 3 f( Return) 4.152 w (-)4.152 w nl( path:)24 w 0 f(, )4.392 w 3 f(Delivery-date:)s 0 f (, and )4.152 w 3 f(Envelope-to: )4.392 w 0 f(headers. If the mailbox) 4.152 w 4.392 x(\256le is not)4.152 w 4.392 x(a regular \256le, or)4.152 w ( does)4.392 w nl 24 x(not have)3.912 w 4.152 x(the correct owner)3.912 w -0.44 x(, group,)4.152 w( or permissions, no)3.912 w 4.152 x (delivery takes place;)3.912 w 4.152 x(the address is)3.912 w( deferred) 4.152 w nl 24 x(and the postmaster)6.552 w 6.312 x(is informed, except) 6.552 w 6.312 x(that, if the)6.552 w( \256le')6.312 w -0.605 x (s permissions are)6.552 w 1 f( gr)6.312 w -0.407 x(eater )6.552 w 0 f (than those)6.552 w nl 24 x (required, Exim reduces the permissions and carries on. There are additional) 4.392 w ( checks to reduce the)4.392 w nl 24 x (possibility of security exposures caused by race conditions.)3.432 w cr 6.6 18 r(\267 )13.55 w 3 f(pipe)s 0 f(: This)5.592 w 5.352 x(local transport) 5.592 w 5.352 x(passes the)5.592 w 5.352 x(message via)5.592 w 5.352 x (a pipe)5.592 w 5.352 x(to a)5.592 w 5.352 x(speci\256ed command)5.592 w 5.352 x(\(program or)5.592 w nl 24 x (script\) which is run in a separate process under a given uid and gid. V) 4.872 w -1.221 x(arious parameters)4.632 w( of the)4.872 w nl 24 x (message are)3.672 w 3.912 x(passed as)3.672 w 3.912 x (environment variables,)3.672 w 3.912 x(and there)3.672 w 3.912 x(are the) 3.672 w 3.912 x(same options)3.672 w 3.912 x(as for)3.672 w 3 f 3.912 x (append\256le )3.672 w 0 f(for)s nl 24 x (controlling the form of the message.)3.432 w cr 24 18.24 r (The returned status)5.112 w 4.872 x(of the command may be used)5.112 w 4.872 x(to determine success or failure, or)5.112 w 4.872 x(it can be) 5.112 w nl 24 x(ignored. A con\256guration)4.392 w 4.152 x(option speci\256e) 4.392 w (s)4.392 w 4.152 x(whether any)4.392 w 4.152 x(standard output) 4.392 w 4.152 x(generated by)4.392 w 4.152 x(the command)4.392 w nl 24 x (is to)6.312 w 6.072 x(be returned)6.312 w 6.072 x(to the)6.312 w 6.072 x (sender \(either)6.312 w 6.072 x(always, or)6.312 w 6.072 x(only if) 6.312 w 6.072 x(the command)6.312 w 6.072 x(fails\). If)6.312 w 6.072 x (this is)6.312 w( set)6.072 w nl 24 x(unconditionally and)4.632 w 4.392 x (output is)4.632 w 4.392 x(actually generated,)4.632 w( the delivery) 4.392 w 4.632 x(is deemed)4.392 w 4.632 x(to have failed,)4.392 w( whatever) 4.632 w nl 24 x(the returned status of the)4.392 w 4.152 x (command. The maximum amount of output generated by the)4.392 w( command) 4.152 w nl 24 x(can be controlled, and a timeout may be set for it.) 3.432 w cr 6.6 18 r(\267 )13.55 w 3 f(smtp)s 0 f(: This)5.112 w 4.872 x (remote transport)5.112 w 4.872 x(delivers a message)5.112 w 4.872 x (using SMTP over)5.112 w( TCP/IP)4.872 w -1.221 x(. All)5.112 w 4.872 x (addresses in the)5.112 w nl 24 x(message that)5.112 w( route to)4.872 w 5.112 x(the same set)4.872 w 5.112 x(of hosts, and)4.872 w 5.112 x (have the same)4.872 w 5.112 x(error address \(return path\),)4.872 w( are) 5.112 w nl 24 x(normally sent in a single transaction.)3.672 w 3.432 x (An explicit list of hosts can be set for the transport,)3.672 w 3.432 x (or a host)3.672 w nl 24 x(list may)4.152 w 3.912 x(be attached)4.152 w 3.912 x(to an)4.152 w 3.912 x(address by)4.152 w 3.912 x(one of)4.152 w 3.912 x(the routers.)4.152 w( If all)3.912 w 4.152 x(the hosts)3.912 w 4.152 x(are temporarily)3.912 w 4.152 x(unable to)3.912 w nl 24 x (accept the message, it is delivered to one of a list of fallback hosts, if ) 3.432 w (con\256gured.)3.432 w cr 222.25 24 r(7)s pagesave restore xpage %%Page: 8 8 /ppend true def /pagesave save def lmv ptop 3 f 0 Sg(12. Exim logs)3.432 w 0 f cr 15.36 y(Exim writes to three dif) 3.432 w -0.198 x(ferent log \256les:)3.432 w cr 6.6 18 r(\267 The)13.55 w ( main log)5.112 w 5.352 x(records the arrival of each)5.112 w 5.352 x (message and the result of)5.112 w 5.352 x(each delivery attempt in) 5.112 w( a)5.352 w 12.24 snl nl 24 x(single line)3.912 w ( in each case. The format is as compact as possible, in an attempt to keep ) 3.672 w (down the)3.672 w( size)3.432 w cr 24 12 r (of log \256les. A number of other events are also recorded in the main log.) 3.432 w cr 6.6 18.24 r(\267 The)13.55 w 4.632 x (reject log records information from)4.392 w 4.632 x (messages that are rejected because)4.392 w 4.632 x(their return paths are) 4.392 w 12 snl nl 24 x(invalid \(a con\256gurable option\), or)5.832 w 5.592 x(the sender or sending host appears in a blocking)5.832 w 5.592 x (list. The)5.832 w 12.24 snl nl 24 x(headers are written)4.632 w 4.392 x (to this)4.632 w 4.392 x(log if they)4.632 w 4.392 x(have been)4.632 w 4.392 x(read, following)4.632 w 4.392 x(a copy of)4.632 w 4.392 x (the one-line)4.632 w( message)4.392 w cr 24 12 r (that is also written to the main log.)3.432 w cr 6.6 18.24 r(\267 The) 13.55 w( panic log is written to when Exim suf)3.432 w -0.198 x (fers a disaster and has to bomb out.)3.432 w cr 18.24 y (A utility script for)3.672 w 3.432 x (renaming and compressing the main and reject logs)3.672 w 3.432 x (each night is provided. There)3.672 w( are)3.432 w 12 snl nl (also scripts for extracting statistics from log \256les and)4.872 w 4.632 x(for searching log \256les for message entries that)4.872 w 12.24 snl nl(match a)4.152 w 4.392 x(given pattern.)4.152 w 4.392 x(For example,) 4.152 w 4.392 x(one can)4.152 w 4.392 x(pull out)4.152 w 4.392 x(all entries) 4.152 w 4.392 x(relating to)4.152 w 4.392 x(messages for)4.152 w 4.392 x (a given)4.152 w( local)4.392 w 12 snl nl(part.)s cr 18.24 y(It is)3.432 w 3.672 x(possible to)3.432 w 3.672 x(con\256gure Exim to)3.432 w 3.672 x (write its)3.432 w 3.672 x(logging data to)3.432 w 3.672 x(syslog instead) 3.432 w 3.672 x(of, or as)3.432 w 3.672 x(well as,)3.432 w 3.672 x (to local \256les.)3.432 w 3 f cr 30.24 y(13. Exim databases)3.432 w 0 f cr 15.12 y(Exim maintains)3.672 w 3.912 x(a number of)3.672 w 3.912 x (databases in)3.672 w 3.912 x(DBM \256les to)3.672 w 3.912 x(help it perform) 3.672 w( ef)3.912 w -0.198 x(\256cient mail)3.672 w( delivery)3.912 w -0.715 x(. In ef)3.672 w -0.198 x(fect,)s 12.24 snl nl(the \256les)4.632 w ( contain hints, and if they are lost it is not a disaster \261)4.392 w ( Exim')5.732 w -0.605 x(s performance just suf)4.392 w -0.198 x(fers a bit.) 4.392 w cr 12 y(The databases are:)3.432 w cr 6.6 18.24 r(\267 )13.55 w 3 f (r)s -0.198 x(etry)s 0 f(: This)6.792 w( contains information)6.552 w 6.792 x(about each failing remote)6.552 w 6.792 x(host and temporary failing) 6.552 w( local)6.792 w 12 snl nl 24 x(delivery \261)3.912 w 5.012 x(when the) 3.912 w 4.152 x(\256rst failure was detected, when the delivery \(or) 3.912 w 4.152 x(directing or routing\) was last)3.912 w 12.24 snl nl 24 x (tried, and when it should next be tried. More details about retry algorithm) 3.432 w (s are given below)3.432 w -0.715 x(.)s cr 6.6 18.24 r(\267 ) 13.55 w 3 f(wait-smtp)s 0 f(: This)3.912 w 4.152 x(contains information) 3.912 w 4.152 x(about messages)3.912 w 4.152 x(that are)3.912 w 4.152 x (waiting for)3.912 w 4.152 x(particular hosts after)3.912 w( an)4.152 w cr 24 12 r(SMTP delivery failure \(see the next section\).)3.432 w cr 6.6 18.24 r(\267 )13.55 w 3 f(r)s -0.198 x(eject)s 0 f (: This contains information about SMTP message rejections \(see below\).) 3.432 w cr 6.6 18 r(\267 )13.55 w 3 f(serialize-<)s 1 f(xxx)s 3 f(>)s 0 f (: Exim can be con\256gured to serialize connections to certain hosts and so) 4.392 w (me)4.392 w( kinds)4.152 w nl 24 x(of queue run,)3.432 w 3.672 x (in other words, do only)3.432 w 3.672 x(one of them at)3.432 w 3.672 x (a time. The data for)3.432 w 3.672 x(implementing this is kept)3.432 w 12 snl nl 24 x(in database \256les whose names begin with )3.432 w 6 f (serialize-)s 0 f(.)s cr 18.24 y(There is a)5.352 w 5.112 x (utility program that lists)5.352 w 5.112 x(the contents of one)5.352 w 5.112 x(of these databases, and)5.352 w 5.112 x(another that allows) 5.352 w 12.24 snl nl(manual modi\256cations to)5.112 w 4.872 x(be applied) 5.112 w 4.872 x(in some)5.112 w 4.872 x(cases. Database)5.112 w 4.872 x (records are timestamped,)5.112 w 4.872 x(and there)5.112 w 4.872 x(is a) 5.112 w 12 snl nl(utility that)4.632 w 4.872 x(removes records)4.632 w 4.872 x(that are)4.632 w 4.872 x(older than)4.632 w 4.872 x(a given) 4.632 w 4.872 x(period, and)4.632 w 4.872 x(also cleans)4.632 w 4.872 x(up ) 4.632 w 3 f(wait-smtp )4.872 w 0 f(records)s nl(containing references to) 3.672 w 3.432 x(messages that)3.672 w 3.432 x(no longer)3.672 w 3.432 x (exist. Running this)3.672 w 3.432 x(daily or)3.672 w 3.432 x(weekly should) 3.672 w( be suf)3.432 w -0.198 x(\256cient)s 12.24 snl nl (to keep the \256les reasonably tidy)3.432 w -0.715 x(.)s cr 18.24 y (Exim can use any one of the following)3.672 w 3.432 x(DBM libraries: ) 3.672 w 3 f(ndbm)s 0 f(, )3.672 w 3 f(gdbm)s 0 f(, )3.672 w 3 f(DB 1.85) 3.672 w 0 f(, )3.672 w 3 f(DB 2.)3.672 w 1 f(x)s 0 f(, )3.432 w 3 f(DB 3.) 3.672 w 1 f(x)s 0 f(, or)3.672 w 3 f( tdb)3.432 w 0 f(.)s 3 f cr 30.24 y (14. SMTP batching)3.432 w 0 f cr 15.12 y(When an)5.112 w( SMTP delivery) 4.872 w 5.112 x(attempt fails, causing)4.872 w 5.112 x(the message to) 4.872 w 5.112 x(be deferred till)4.872 w( later)5.112 w -0.44 x (, Exim updates a)4.872 w nl(DBM database that contains records keyed by) 4.632 w 4.392 x(host name plus IP address. Each record holds a list of) 4.632 w cr 12 y(messages that are waiting for that host and address.) 3.432 w cr 18.24 y(When an)4.632 w 4.392 x(SMTP delivery)4.632 w 4.392 x (succeeds, Exim)4.632 w 4.392 x(consults the)4.632 w 4.392 x(database to) 4.632 w 4.392 x(see if)4.632 w 4.392 x(there are)4.632 w 4.392 x (any other messages)4.632 w 12 snl nl(waiting for the same host)4.392 w 4.152 x(and address. If it)4.392 w 4.152 x(\256nds any)4.392 w -0.715 x (, it creates a)4.392 w 4.152 x(new Exim process and)4.392 w 4.152 x (passes it the)4.392 w 12.24 snl nl(open SMTP)4.392 w 4.632 x(channel and a) 4.392 w 4.632 x(message identi\256cation. The new)4.392 w 4.632 x (process then delivers)4.392 w 4.632 x(the waiting message)4.392 w 12 snl nl (down the)3.912 w 3.672 x(existing channel)3.912 w 3.672 x(and may)3.912 w 3.672 x(in turn)3.912 w 3.672 x(cause the)3.912 w 3.672 x(creation of) 3.912 w 3.672 x(yet another)3.912 w 3.672 x(process. Any)3.912 w 3.672 x (other waiting)3.912 w 12.24 snl nl(addresses in)3.912 w 4.152 x(the message) 3.912 w 4.152 x(are skipped. The)3.912 w 4.152 x(maximum number)3.912 w 4.152 x(of messages sent)3.912 w 4.152 x(down one connection)3.912 w( is) 4.152 w cr 12 y(con\256gurable.)s cr 18.24 y(This scheme achieves)4.392 w 4.632 x(some SMTP ef)4.392 w -0.198 x(\256ciency when a)4.392 w 4.632 x (number of messages have been queued)4.392 w 4.632 x(up for a)4.392 w cr 12 y(given host, without the overhead of a heavyweight queueing apparatus.) 3.432 w cr 222.25 24.24 r(8)s pagesave restore xpage %%Page: 9 9 /ppend true def /pagesave save def lmr ptop 3 f 0 Sg(15. Retries)3.432 w 0 f cr 15.36 y(When a)5.352 w 5.112 x (message cannot immediately)5.352 w 5.112 x(be directed, routed,)5.352 w 5.112 x(or delivered, it)5.352 w 5.112 x(remains on the)5.352 w 5.112 x (queue and)5.352 w 12.24 snl nl(another delivery attempt)4.632 w 4.392 x (occurs at a)4.632 w 4.392 x(later time.)4.632 w 4.392 x(While failures to) 4.632 w 4.392 x(deliver to remote)4.632 w 4.392 x(hosts are)4.632 w 4.392 x (the most)4.632 w 12 snl nl(common cause of)4.632 w 4.872 x (this, it is also possible for)4.632 w 4.872 x(a message to be deferred as) 4.632 w 4.872 x(a result of temporary local)4.632 w 12.24 snl nl (delivery failure, or following)4.872 w 4.632 x(directing or routing.) 4.872 w 4.632 x(A local delivery)4.872 w 4.632 x(can fail if)4.872 w 4.632 x(the user is)4.872 w 4.632 x(over quota,)4.872 w nl(while directing) 4.152 w 3.912 x(can be delayed if)4.152 w 3.912 x(a user)4.152 w( ') 0.407 w -0.605 x(s home directory)4.152 w 3.912 x(is not available)4.152 w 3.912 x(\(for example, a missing)4.152 w( NFS)3.912 w 12 snl nl (mount\), and therefore the)3.672 w 3.432 x(existence of a )3.672 w 3 f (.forward )3.432 w 0 f(\256le cannot be tested.)3.672 w 3.432 x (Routing can be)3.672 w 3.432 x(delayed by)3.672 w( DNS)3.432 w 12.24 snl nl (timeouts.)s cr 18.24 y(Exim can)3.912 w 3.672 x(be given)3.912 w 3.672 x (a set)3.912 w 3.672 x(of rules)3.912 w( which specify)3.672 w 3.912 x (how often)3.672 w 3.912 x(to retry)3.672 w 3.912 x(deferred addresses, and) 3.672 w 3.912 x(when to)3.672 w( give)3.912 w nl(up. These rules apply) 3.912 w 3.672 x(to directing and routing as well as)3.912 w 3.672 x (to transporting, and are keyed by \(wildcarded\))3.912 w 12 snl nl (domain name or)3.432 w -0.44 x (, for local users, by local part and domain name, either of which can be wi) 3.432 w (ldcarded.)3.432 w cr 18.48 y(Each rule)5.112 w 4.872 x (is actually a)5.112 w 4.872 x(sequential list of)5.112 w 4.872 x (subrules, which are)5.112 w 4.872 x(applied successively as time)5.112 w 4.872 x(passes. At)5.112 w nl(present there are two kinds of subrule: \256xe) 6.792 w (d)6.792 w 6.552 x (interval, and geometrically increasing interval. For)6.792 w 12.24 snl nl (example, it)4.392 w 4.152 x(is possible)4.392 w 4.152 x(to specify) 4.392 w 4.152 x(a rule such)4.392 w 4.152 x(as `retry)4.392 w 4.152 x (every 15)4.392 w 4.152 x(minutes for)4.392 w 4.152 x(2 hours; then) 4.392 w 4.152 x(increase the)4.392 w nl(interval between retries)3.912 w 3.672 x(by a)3.912 w 3.672 x(factor of)3.912 w 3.672 x(1.5 each time) 3.912 w 3.672 x(until 8)3.912 w 3.672 x(hours have)3.912 w 3.672 x (passed; then)3.912 w 3.672 x(retry every 8)3.912 w( hours)3.432 w 12 snl nl (until 4)3.912 w 4.152 x(days have passed; then)3.912 w 4.152 x (give up'. The)3.912 w 4.152 x(times are measured)3.912 w 4.152 x (from when the address)3.912 w 4.152 x(\256rst failed, so,)3.912 w 12.24 snl nl(for example,)3.912 w 3.672 x(if a)3.912 w( host has)3.672 w 3.912 x (been down for)3.672 w 3.912 x(two days, new)3.672 w 3.912 x (messages will immediately)3.672 w 3.912 x(go on)3.672 w 3.912 x(to the) 3.672 w( 8-hour)3.432 w cr 12.24 y(retry schedule.)3.432 w cr 18.24 y (Exim does not have an elaborate series of alarm clocks to cause retries to ) 3.432 w (happen exactly on schedule. A)3.432 w 12 snl nl (queue-runner process is started periodically)5.112 w -0.715 x (, to attempt delivery)5.112 w -0.715 x(, one by one, of messages containing) 5.112 w 12.24 snl nl(addresses that)5.352 w( have passed)5.112 w 5.352 x (their next retry)5.112 w 5.352 x(time. If such)5.112 w 5.352 x (an address fails)5.112 w 5.352 x(again, a new)5.112 w 5.352 x(retry time is) 5.112 w nl(computed, and so subsequent messages queued for)5.352 w 5.592 x (the same address get skipped. The queue is not)5.352 w nl (processed sequentially)4.872 w -0.715 x(, but in a `random' order)4.872 w -0.44 x(, to)4.872 w 4.632 x(prevent one rogue message that causes a) 4.872 w( problem)4.632 w 12 snl nl (blocking other messages to the same destination for ever)3.432 w -0.605 x(.) s cr 18.24 y(When the)3.672 w 3.432 x(maximum time)3.672 w( for retrying) 3.432 w 3.672 x(has passed, pending)3.432 w 3.672 x(addresses are failed.) 3.432 w( However)3.672 w -0.44 x(, a next try time)3.432 w 12.24 snl nl (is still)3.432 w 3.672 x(computed from)3.432 w 3.672 x(the \256nal subrule.) 3.432 w 3.672 x(Until that time)3.432 w 3.672 x(is reached,)3.432 w 3.672 x (any new messages)3.432 w 3.672 x(for the address are)3.432 w nl (immediately failed. When the next)3.912 w 3.672 x(try time is passed,) 3.912 w 3.672 x(one further delivery attempt)3.912 w 3.672 x (is made; if this fails,)3.912 w cr 12 y (a new next try time is computed, and so on.)3.432 w cr 18.24 y (The increasing number)5.112 w 4.872 x(of small computers)5.112 w 4.872 x (on the Internet)5.112 w 4.872 x(has caused there)5.112 w 4.872 x(to be a) 5.112 w 4.872 x(lot of)5.112 w( messages)4.872 w nl (addressed to hosts that are never going)5.112 w 5.352 x (to listen. The retry logic described above should reduce the)5.112 w nl (amount of)5.352 w 5.112 x(wasted time)5.352 w 5.112 x(spent on)5.352 w 5.112 x(trying to)5.352 w( deliver such)5.112 w 5.352 x(messages. However) 5.112 w -0.44 x(, some)5.352 w 5.112 x(administrators are)5.352 w 12 snl nl (unhappy about)5.112 w 5.352 x(this rather draconian)5.112 w 5.352 x (approach, which can)5.112 w 5.352 x(cause an address)5.112 w 5.352 x (to be failed without)5.112 w( any)5.352 w 12.24 snl nl (deliveries being attempted.)4.152 w 3.912 x(Exim can)4.152 w 3.912 x (alternatively be)4.152 w 3.912 x(con\256gured always to)4.152 w 3.912 x (try at)4.152 w 3.912 x(least once)4.152 w 3.912 x(those hosts)4.152 w nl (whose last)3.432 w 3.672 x(failure was before the)3.432 w 3.672 x (arrival of the)3.432 w 3.672 x(message. This option increases)3.432 w 3.672 x(the number of attempts to)3.432 w cr 12.24 y(deliver to dead hosts.) 3.432 w cr 18.24 y(Retry rules)3.672 w 3.912 x(can be predicated)3.672 w 3.912 x(on particular errors as)3.672 w 3.912 x(well as on)3.672 w 3.912 x (domain names, and)3.672 w 3.912 x(for domains that)3.672 w( are)3.912 w 12 snl nl(looked up in the)3.912 w 3.672 x(DNS, further discrimination) 3.912 w 3.672 x(on whether MX)3.912 w 3.672 x(records were used or)3.912 w 3.672 x(not is also)3.912 w( possible.)3.432 w 12.24 snl nl (Thus it is possible to)3.912 w 4.152 x (treat `connection refused' and `connection timed out' dif)3.912 w -0.198 x (ferently)s -0.715 x(, or)4.152 w( to distinguish)3.912 w nl (between `connection)5.592 w( refused and)5.352 w 5.592 x(there was only an) 5.352 w 5.592 x(A record' and `connection)5.352 w 5.592 x (refused from a host)5.352 w cr 12 y(pointed to by an MX record'.)3.432 w cr 18.24 y(When a local)4.152 w 3.912 x(delivery fails because)4.152 w 3.912 x (a user is)4.152 w 3.912 x(over quota, the)4.152 w 3.912 x(retry rule) 4.152 w 3.912 x(can be predicated)4.152 w 3.912 x(on the length)4.152 w nl (of time)3.432 w 3.672 x(since the mailbox)3.432 w 3.672 x(was last read.) 3.432 w 3.672 x(For example, if the)3.432 w 3.672 x(mailbox has been) 3.432 w 3.672 x(recently read, the delivery)3.432 w nl (can be retried for a while; otherwise it can be failed quickly)3.432 w -0.715 x(.)s 3 f cr 30.48 y(16. Header r)3.432 w -0.198 x(ewriting)s 0 f cr 15.12 y(There are)3.912 w( those who ar)3.672 w -0.198 x(gue that header) 3.672 w 3.912 x(rewriting is a totally Bad Thing; there)3.672 w 3.912 x (are others who swear)3.672 w( they)3.432 w nl (cannot live without it. Exim provides the facility \261)3.432 w 4.532 x (you do not have to use it!)3.432 w cr 18.24 y(Exim can be con\256gured) 4.632 w 4.392 x(to rewrite the)4.632 w 4.392 x(address portions of)4.632 w 4.392 x(headers when a message)4.632 w 4.392 x(is received. From)4.632 w nl (release 3.20, Exim can also be con\256gured to)6.312 w 6.552 x (rewrite addresses in header lines at transport time.)6.312 w nl (Rewriting rules can be tar)3.672 w -0.198 x(geted at individual)3.672 w 3.432 x(headers and the envelope \256elds; it)3.672 w 3.432 x (is possible, for)3.672 w( example,)3.432 w cr 12 y (just to rewrite the `From' header and no others.)3.432 w cr 222.25 24.24 r(9)s pagesave restore xpage %%Page: 10 10 /ppend true def /pagesave save def lmv ptop 0 f 0 Sg(Rewriting rules)6.312 w( are keyed by local part and)6.072 w 6.312 x(domain, either of which can be wildcarded,)6.072 w 6.312 x(and the) 6.072 w cr 12.72 y (replacement text is a general expansion string which can contain \256le loo) 3.912 w (kups. This makes it possible to)3.912 w 12.48 snl nl (replace login names)4.872 w 4.632 x(by `friendly')4.872 w 4.632 x(names in) 4.872 w 4.632 x(outgoing addresses)4.872 w 4.632 x(via a)4.872 w 4.632 x (DBM lookup,)4.872 w 4.632 x(for example.)4.872 w( The)4.632 w 12.72 snl nl (other most common rewriting requirement)5.832 w 5.592 x(of replacing ) 5.832 w 6 f(*.foo.bar )5.832 w 0 f(with )5.832 w 6 f(foo.bar )5.832 w 0 f (is also easily)5.832 w cr 12.48 y(handled.)s cr 18.96 y (Headers are also automatically rewritten by Exim in two cases:)3.432 w cr 6.6 18.96 r(\267 If)13.55 w 3.672 x(a locally-generated)3.432 w 3.672 x (message contains)3.432 w 3.672 x(addresses without)3.432 w 3.672 x (domains, a)3.432 w 3.672 x(con\256gured qualifying domain)3.432 w 12.48 snl nl 24 x(is added)3.912 w( to each of them. It is also)3.672 w 3.912 x (possible to specify which remote systems are permitted)3.672 w 3.912 x (to send)3.432 w cr 24 12.72 r (messages containing unquali\256ed addresses. These too get quali\256ed on r) 3.432 w (eception.)3.432 w cr 6.6 18.96 r(\267 Routing)13.55 w 4.392 x(of a) 4.152 w 4.392 x(domain may reveal)4.152 w 4.392 x(that it)4.152 w 4.392 x (was only a)4.152 w 4.392 x(partial domain,)4.152 w 4.392 x(in which case) 4.152 w 4.392 x(the headers are)4.152 w nl 24 x(rewritten to)5.832 w 5.592 x(contain the full domain.)5.832 w 5.592 x(For example, as a)5.832 w 5.592 x(result of routing, an)5.832 w 5.592 x(address such as)5.832 w 6 f 12.72 snl nl 24 x(xxx@foo )3.432 w 0 f(may turn into )3.432 w 6 f (xxx@foo.bar.ac.uk)s 0 f(.)s cr 18.96 y(In addition)4.152 w 3.912 x (to the rewriting)4.152 w 3.912 x(rules, Exim can)4.152 w 3.912 x (be con\256gured to)4.152 w 3.912 x(add or delete)4.152 w 3.912 x (speci\256c headers at)4.152 w( transport)3.912 w 12.48 snl nl (time. The con\256guration)5.352 w 5.112 x(can either)5.352 w 5.112 x (be on the)5.352 w 5.112 x(transport, in)5.352 w 5.112 x(which case it) 5.352 w 5.112 x(applies to)5.352 w 5.112 x(all copies of)5.352 w( the) 5.112 w 12.72 snl nl(message sent)3.912 w 4.152 x(by that transport,) 3.912 w 4.152 x(or on a)3.912 w 4.152 x(director or router)3.912 w -0.44 x (, in)4.152 w( which case it)3.912 w 4.152 x(applies only to)3.912 w 4.152 x(copies of the)3.912 w cr 12.48 y (message that are associated with the addresses that the router or director ) 3.432 w (handled.)3.432 w 3 f cr 31.68 y(17. Host veri\256cation)3.432 w 0 f cr 15.84 y(Exim can)3.912 w 3.672 x(be con\256gured)3.912 w 3.672 x (to accept)3.912 w 3.672 x(incoming SMTP)3.912 w 3.672 x(calls from) 3.912 w 3.672 x(certain hosts)3.912 w( only)3.672 w -0.715 x(, or)3.912 w 3.672 x(it can)3.912 w 3.672 x(be con\256gured)3.912 w 12.48 snl nl (to reject calls)3.912 w 4.152 x(from certain hosts. In)3.912 w 4.152 x (both cases, the test may)3.912 w 4.152 x(include an RFC 1413)3.912 w 4.152 x(identi\256cation check.)3.912 w 12.72 snl nl(A system that)4.392 w 4.152 x(gets all its)4.392 w 4.152 x(mail via a)4.392 w 4.152 x (central hub might)4.392 w 4.152 x(want to lock)4.392 w 4.152 x(out the rest) 4.392 w 4.152 x(of the world,)4.392 w 4.152 x(while a)4.392 w nl (number of systems under one management might want to exchange mail only via) 4.392 w ( the)4.392 w 4.632 x(standard mailer)4.392 w -0.44 x(,)s cr 12.48 y (and hence reject mail from all but certain speci\256ed ids within the group) 3.432 w (.)3.432 w cr 18.96 y(Hosts for rejection)3.912 w 3.672 x (can be identi\256ed explicitly)3.912 w -0.715 x(, or)3.672 w( via the RBL) 3.912 w 3.672 x(DNS databases. Alternatively)3.912 w -0.715 x(, the) 3.912 w( SMTP)3.672 w cr 12.72 y (AUTH extension mechanism may be used for authenticating hosts.)3.432 w cr 18.72 y(When a)3.912 w 3.672 x(host fails)3.912 w 3.672 x(an acceptance) 3.912 w 3.672 x(test, Exim)3.912 w 3.672 x(can either give)3.912 w 3.672 x (an error)3.912 w 3.672 x(code immediately)3.912 w 3.672 x(on connection,) 3.912 w( or)3.672 w nl(allow the)5.112 w( connection to)4.872 w 5.112 x (proceed and then give)4.872 w 5.112 x(error codes to)4.872 w 5.112 x (all the message')4.872 w -0.605 x(s recipients.)4.872 w 5.112 x(The latter) 4.872 w 12.48 snl nl(approach is)3.672 w 3.432 x(useful when)3.672 w 3.432 x(using the)3.672 w 3.432 x(mechanism to)3.672 w 3.432 x (reject unsolicited)3.672 w 3.432 x(junk mail and)3.672 w 3.432 x (mail bombs,)3.672 w( because it)3.432 w 12.72 snl nl (normally prevents the sender from trying again with the same message.) 3.432 w 3 f cr 31.44 y(18. SMTP port r)3.432 w -0.198 x(eservation)s 0 f cr 16.08 y(The maximum)4.392 w( number of simultaneous incoming SMTP)4.152 w 4.392 x(calls can be set, and in)4.152 w 4.392 x(addition, a number of) 4.152 w 12.48 snl nl(them can be)5.352 w 5.592 x (reserved for particular hosts)5.352 w 5.592 x(or particular IP networks. It) 5.352 w 5.592 x(is also possible to specify)5.352 w( a)5.592 w cr 12.72 y (system load value above which only calls from the reserved hosts are accept) 3.432 w (ed.)3.432 w 3 f cr 31.44 y(19. Contr)3.432 w -0.198 x(ol of r) 3.432 w -0.198 x(elaying)s 0 f cr 15.84 y(A host)3.672 w 3.432 x(is said) 3.672 w( to act)3.432 w 3.672 x(as a relay)3.432 w 3.672 x(if it)3.432 w 3.672 x(accepts an incoming)3.432 w 3.672 x(message from an)3.432 w 3.672 x (external host)3.432 w 3.672 x(and delivers it to)3.432 w 12.72 snl nl (an external host. Unscrupulous)5.352 w 5.592 x (persons have been known to use)5.352 w 5.592 x (unsuspecting hosts as relays in an)5.352 w 12.48 snl nl(attempt to) 4.872 w ( disguise the origin of messages. An Exim host can be con\256gured to accep) 4.632 w (t mail from)4.632 w( any)4.872 w 12.72 snl nl (host for onward transmission to)3.912 w 3.672 x (a limited set of domains only)3.912 w -0.715 x(, and to accept)3.912 w 3.672 x(mail only from a speci\256ed)3.912 w 12.48 snl nl(list of)4.392 w ( hosts or networks for onward transmission to any)4.152 w 4.392 x (domain. Such hosts may also be identi\256ed by)4.152 w 12.72 snl nl (means of)3.672 w 3.912 x(the SMTP)3.672 w 3.912 x(AUTH mechanism.)3.672 w 3.912 x(It is)3.672 w 3.912 x(also possible)3.672 w 3.912 x(to enable) 3.672 w 3.912 x(relaying to)3.672 w 3.912 x(any domain whose)3.672 w( MX) 3.912 w nl (records point to the local host, without having to list the domains explici) 3.432 w (tly)3.432 w -0.715 x(.)s 3 f cr 31.44 y(20. Sender veri\256cation) 3.432 w 0 f cr 15.84 y(The return path of a message \(also known)3.672 w 3.432 x(as the `envelope sender)3.672 w 0.407 x('\) is used when Exim) 3.672 w 3.432 x(has to return)3.672 w( an)3.432 w nl(error message.) 3.672 w 3.912 x(If this is)3.672 w 3.912 x(a bad address, the)3.672 w 3.912 x(error message cannot)3.672 w 3.912 x(be delivered, and)3.672 w 3.912 x(the postmaster has)3.672 w( to)3.912 w cr 12.48 y(sort things out.) 3.432 w cr 219.5 24.72 r(10)s pagesave restore xpage %%Page: 11 11 /ppend true def /pagesave save def lmr ptop 0 f 0 Sg(Sender veri\256cation \(a)3.672 w 3.912 x (con\256gurable option that applies)3.672 w 3.912 x(to SMTP input\) is) 3.672 w 3.912 x(intended to pass this)3.672 w 3.912 x(work to a)3.672 w 12.72 snl nl(foreign postmaster)3.912 w -0.44 x(, by)3.672 w 3.912 x (refusing to accept)3.672 w 3.912 x(the message in)3.672 w 3.912 x (the \256rst place.)3.672 w 3.912 x(There is)3.672 w 3.912 x (an exception list)3.672 w( which)3.912 w cr 12.96 y (can specify certain hosts \(with optional RFC 1413 identi\256cations\) that) 3.432 w ( are allowed to bypass the check.)3.432 w cr 19.2 y(A certain) 5.352 w 5.112 x(amount of SP)5.352 w -1.012 x(AM mail)5.352 w 5.112 x (contains invalid return paths.)5.352 w 5.112 x(Apart from this, there) 5.352 w 5.112 x(are two main)5.352 w nl (causes: miscon\256gured mailers \(gateways in particular\), and)5.832 w 5.592 x(users fooling around with mail. Sender)5.832 w nl (veri\256cation catches)4.632 w 4.872 x(both of)4.632 w 4.872 x(them. It) 4.632 w 4.872 x(operates by)4.632 w 4.872 x(passing the sender)4.632 w 4.872 x(address through)4.632 w 4.872 x(the directors)4.632 w( and)4.872 w cr 12.72 y (routers in veri\256cation mode; if this fails, the message is not accepted.) 3.432 w cr 19.2 y(The \256rst thing foreign)3.912 w 3.672 x (postmasters ask when they learn about an)3.912 w 3.672 x (apparently legitimate rejected message)3.912 w 12.96 snl nl (is `What were the headers?'. For)3.672 w 3.432 x(this reason, and also to) 3.672 w 3.432 x(collect evidence in cases of mail)3.672 w( for)3.432 w -0.198 x(gery)s -0.715 x(, Exim)3.432 w 12.72 snl nl(does not)5.352 w 5.112 x(initially reject)5.352 w 5.112 x(a message)5.352 w 5.112 x (after the )5.352 w 8 f(MAIL FROM)3.696 w 0 f 5.352 x(command in)5.112 w 5.352 x(the SMTP)5.112 w( session. It)5.352 w 5.112 x(reads the)5.352 w nl (message, so as to be able to)3.912 w 3.672 x (write the headers to the rejection log,)3.912 w 3.672 x (and then gives a hard error)3.912 w( response)3.672 w cr 12.96 y (to the sending host.)3.432 w cr 19.2 y(Unfortunately)s -0.715 x(, several) 3.912 w 3.672 x(mailers believe)3.912 w( that any)3.672 w 3.912 x (error response)3.672 w 3.912 x(after the data)3.672 w 3.912 x(for a) 3.672 w 3.912 x(message has been)3.672 w( sent)3.912 w nl (indicates a temporary error)4.152 w -0.605 x(. Consequently)4.152 w -0.715 x(, such)3.912 w( mailers will continue to try to send)4.152 w 3.912 x(a message that has)4.152 w nl(been rejected)5.112 w ( as described above. T)4.872 w -0.77 x (o prevent this, whenever a message is rejected, Exim records the)4.872 w nl (time, bad address, and host in a DBM database. If the)3.912 w 3.672 x (same host sends the same bad address within 24)3.912 w 12.96 snl nl (hours, it is rejected immediately at the )3.432 w 8 f(MAIL FROM)2.496 w 0 f ( command.)3.432 w cr 19.2 y(Sadly)s -0.715 x(, even this doesn')3.912 w -0.198 x(t stop)3.672 w( some mailers from repeatedly trying)3.912 w 3.672 x(to send the message. As a last)3.912 w( resort,)3.672 w 12.72 snl nl (if the same)4.632 w 4.392 x(host sends)4.632 w 4.392 x(the same)4.632 w 4.392 x(bad address)4.632 w 4.392 x(for a)4.632 w 4.392 x(third time) 4.632 w 4.392 x(in 24)4.632 w 4.392 x(hours, the)4.632 w 8 f 4.392 x (MAIL FROM)3.216 w 0 f 4.632 x(command is)4.392 w nl(accepted, but)3.432 w 3.672 x(all subsequent)3.432 w 8 f 3.672 x(RCPT T)2.496 w -0.144 x(O ) 3.672 w 0 f(commands are)3.432 w 3.672 x(rejected. If)3.432 w 3.672 x (this does)3.432 w 3.672 x(not stop)3.432 w 3.672 x(a remote mailer) 3.432 w 3.672 x(then it)3.432 w cr 12.96 y(is badly broken.)3.432 w cr 19.2 y(If the)4.392 w 4.632 x(attempt to)4.392 w 4.632 x(verify the) 4.392 w 4.632 x(sender address)4.392 w 4.632 x(cannot be)4.392 w 4.632 x (completed \(typically because)4.392 w 4.632 x(of a)4.392 w 4.632 x (DNS timeout\))4.392 w nl(Exim returns a)5.352 w 5.112 x (temporary error code)5.352 w 5.112 x(after the)5.352 w 8 f 5.112 x (MAIL FROM)3.936 w 0 f 5.352 x(command, which)5.112 w( should cause) 5.352 w 5.112 x(the remote)5.352 w nl(mailer to)5.352 w 5.592 x(try again) 5.352 w( later)5.592 w -0.605 x(. However)5.352 w -0.44 x(, it)5.352 w 5.592 x(is possible)5.352 w 5.592 x(to con\256gure Exim)5.352 w 5.592 x (to accept the)5.352 w 5.592 x(message in)5.352 w( these)5.592 w cr 12.72 y (circumstances.)s cr 19.2 y(Many messages with)4.152 w 4.392 x (bad return paths in)4.152 w 4.392 x(fact contain perfectly valid)4.152 w 4.392 x(`From' or `Reply-to' headers.)4.152 w( For)4.392 w 12.96 snl nl (administrators that want)3.912 w 3.672 x(a quieter)3.912 w 3.672 x (life, there)3.912 w 3.672 x(is a)3.912 w 3.672 x(con\256guration option) 3.912 w 3.672 x(which causes)3.912 w 3.672 x(Exim to)3.912 w 3.672 x (check these)3.912 w 12.72 snl nl(headers if the return path)3.672 w 3.432 x(is bad, and if a good address is found, to)3.672 w 3.432 x (use it to replace the return path.)3.672 w( The)3.432 w cr 12.72 y (old value is retained in an header whose name begins with `X-'.)3.432 w 3 f cr 32.16 y(21. Sender lock out)3.432 w 0 f cr 16.08 y(More and)4.152 w ( more unsolicited junk)3.912 w 4.152 x(mail is being seen on)3.912 w 4.152 x(the Internet. It is)3.912 w 4.152 x(sometimes useful to be able) 3.912 w( to)4.152 w nl (reject messages \(from any host\) with particular sender addresses in the e) 5.112 w (nvelope. Exim can be con-)5.112 w nl(\256gured to)3.672 w ( reject messages whose sender)3.432 w 3.672 x (addresses match certain patterns, either by failing the )3.432 w 8 f (MAIL FROM)2.496 w 0 f 12.96 snl nl (command, or \(because some mailers take no notice of that\) by failing all ) 3.432 w 8 f(RCPT T)2.496 w -0.144 x(O )3.432 w 0 f(commands.)s 3 f cr 31.92 y(22. Receiver veri\256cation)3.432 w 0 f cr 16.08 y(Exim can) 3.912 w 4.152 x(be con\256gured so that)3.912 w 4.152 x (it checks the addresses)3.912 w 4.152 x(given in incoming SMTP)3.912 w 8 f 4.152 x(RCPT T)2.736 w -0.144 x(O )4.152 w 0 f(commands as)3.912 w 12.72 snl nl(they are)4.632 w( received. A)4.392 w 4.632 x(failing address can) 4.392 w 4.632 x(be immediately rejected,)4.392 w 4.632 x(or it can)4.392 w 4.632 x(be logged and)4.392 w 4.632 x(accepted. If)4.392 w 12.96 snl nl (veri\256cation cannot)3.432 w 3.672 x(be completed)3.432 w 3.672 x (\(typically because)3.432 w 3.672 x(of a)3.432 w 3.672 x (DNS timeout\) either)3.432 w 3.672 x(a temporary)3.432 w 3.672 x (error code can)3.432 w 12.72 snl nl (be given, or the address can be logged and accepted.)3.432 w 3 f cr 31.92 y(23. The `per)3.432 w -0.198 x(cent hack')3.432 w 0 f cr 16.08 y (The so-called `percent)3.672 w 3.432 x(hack' is)3.672 w 3.432 x(the feature) 3.672 w 3.432 x(of mailers)3.672 w 3.432 x(whereby a)3.672 w 3.432 x (local part)3.672 w 3.432 x(containing a)3.672 w( percent sign gets) 3.432 w 12.96 snl nl(interpreted as an entire)5.112 w 4.872 x (new address, with the percent replaced by)5.112 w 4.872 x (@. This is used for explicit mail)5.112 w 12.72 snl nl(routing and) 3.672 w( sometimes for testing.)3.432 w 3.672 x(In Exim, it is possible) 3.432 w 3.672 x(to con\256gure which local domains, if any)3.432 w -0.715 x (, allow)3.432 w nl (the `percent hack', though this is not recommended. Such usage, if) 4.392 w 4.152 x(con\256gured, is, however)4.392 w -0.44 x(, subject to) 4.392 w cr 12.96 y(the relay controls.)3.432 w cr 219.704 24.72 r(1)s -0.407 x(1)s pagesave restore xpage %%Page: 12 12 /ppend true def /pagesave save def lmv ptop 3 f 0 Sg(24. Security)3.432 w 0 f cr 15.12 y(Exim is)4.632 w 4.392 x (written as)4.632 w 4.392 x(a single)4.632 w 4.392 x(binary that has) 4.632 w 4.392 x(to run)4.632 w 4.392 x(setuid to root.)4.632 w 4.392 x(I did) 4.632 w 4.392 x(start of)4.632 w -0.198 x(f trying)4.392 w( to write) 4.632 w 4.392 x(it as)4.632 w( a)4.392 w 12 snl nl(number of dif)3.912 w -0.198 x(ferent modules, but soon came to)3.912 w 3.672 x (the conclusion that, for this design of mailer)3.912 w -0.44 x(, it) 3.672 w( was not)3.912 w nl(worth it,)4.392 w 4.152 x(because the functions) 4.392 w( don')4.152 w -0.198 x(t decompose cleanly)4.392 w -0.715 x(. For) 4.152 w( example, if)4.392 w 4.152 x(you want to)4.392 w 4.152 x (verify addresses)4.392 w nl (while receiving mail you need all the directing and routing apparatus to be) 3.432 w ( available.)3.432 w cr 18 y(Exim runs each local)5.832 w 6.072 x (delivery in a separate process which)5.832 w 6.072 x (is setuid to the relevant local)5.832 w( user)6.072 w -0.605 x(. In) 5.832 w nl(addition, it)4.632 w( can be con\256gured to)4.392 w 4.632 x (run under a given non-root)4.392 w 4.632 x(uid \(and gid\) for much) 4.392 w 4.632 x(of the rest of the)4.392 w nl(time, and)3.912 w 3.672 x (this is the recommended)3.912 w 3.672 x(practice. In particular)3.912 w -0.44 x(, it)3.912 w 3.672 x(need not be root)3.912 w 3.672 x (while sending or)3.912 w( receiving)3.672 w nl(SMTP mail.)3.432 w cr 18 y(Exim checks the permissions and owners of)3.912 w 4.152 x (\256les to which messages are to be appended, and refuses to)3.912 w nl (proceed with the delivery if things are not right.)3.432 w cr 18 y (Delivery of)3.672 w 3.912 x(messages to)3.672 w 3.912 x(pipes or)3.672 w 3.912 x(\256les is)3.672 w 3.912 x(supported only)3.672 w 3.912 x(as a) 3.672 w 3.912 x(result of)3.672 w 3.912 x(expanding an)3.672 w 3.912 x (address via)3.672 w 3.912 x(an alias)3.672 w nl(or a forward)4.632 w 4.392 x(\256le, provided)4.632 w 4.392 x(this is permitted)4.632 w 4.392 x (by the)4.632 w 4.392 x(con\256guration. Externally)4.632 w 4.392 x (generated local addresses)4.632 w nl(cannot specify)5.112 w 4.872 x (\256les or pipes)5.112 w 4.872 x(\261 )1.1 w 5.112 x(no special)4.872 w ( action is)5.112 w 4.872 x(taken for addresses)5.112 w 4.872 x (starting with the)5.112 w 4.872 x(\256le or)5.112 w( pipe)4.872 w nl (characters, so they will usually fail.)3.432 w cr 18 y(Use of)3.912 w 4.152 x(the )3.912 w 8 f(VRFY)s 0 f(, )3.912 w 8 f(EXPN)s 0 f(, and) 4.152 w 8 f( ETRN )3.912 w 0 f(functions in)4.152 w( SMTP connections) 3.912 w 4.152 x(is controlled by)3.912 w 4.152 x(con\256guration options.) 3.912 w nl(The )3.432 w 8 f(DEBUG )3.432 w 0 f (function is not supported at all.)3.432 w 3 f cr 30 y(25. The Exim Monitor) 3.432 w 0 f cr 15.12 y(A program)4.632 w ( for monitoring Exim and displaying information in an X window is provided.) 4.392 w ( This can be)4.392 w nl (con\256gured to show stripcharts of incoming and outgoing)3.432 w 3.672 x (mail in various categories. It also shows a `tail')3.432 w nl (of the main log \256le, and information about messages on the queue.) 3.432 w cr 18 y(There is a menu of operations that)5.112 w 5.352 x (can be performed by suitably privileged users. Messages can be)5.112 w nl (frozen, thawed,)6.792 w( deleted, caused to)6.552 w 6.792 x (be delivered, modi\256ed, or)6.552 w 6.792 x(returned to their senders from) 6.552 w( this)6.792 w nl(interface. However)3.432 w -0.44 x (, all these actions can also be performed from the command line interface a) 3.432 w (s well.)3.432 w cr 214.35 18 r(* * *)6.6 w cr 219.5 345.36 r(12)s nl pagesave restore xpage ppend {showpage} if %%Trailer %%Pages: 12