various updates
authornigel <nigel>
Thu, 10 May 2001 11:24:39 +0000 (11:24 +0000)
committernigel <nigel>
Thu, 10 May 2001 11:24:39 +0000 (11:24 +0000)
29 files changed:
ChangeLog.html
FAQ.html
config.samples/C003
config.samples/C011
config.samples/C012
config.samples/C015
config.samples/C016
config.samples/C018
config.samples/C022
config.samples/C022.tar
config.samples/C032.tar
config.samples/C033
config.samples/C035 [new file with mode: 0644]
config.samples/C036 [new file with mode: 0644]
config.samples/C037 [new file with mode: 0644]
config.samples/C038 [new file with mode: 0644]
config.samples/C039 [new file with mode: 0644]
config.samples/C040 [new file with mode: 0644]
config.samples/C041 [new file with mode: 0644]
config.samples/README
filter/process_re2filtermatch.pl [new file with mode: 0644]
filter/system_filter.exim [new file with mode: 0644]
filter/test_regexp.pl [new file with mode: 0644]
filter/vb2_regexp [new file with mode: 0644]
filter/vb_regexp [new file with mode: 0644]
howto/rbl.html
howto/relay.html
maillist.html
system_filter.exim

index 0832c8660b47796010aced46b79e5c3d6b860a6f..3e36b6334fb4d2437b2ce42dd4cf85cf91a8cbc8 100644 (file)
        order</p>
 
       <hr size=3 width=400 align="center">
        order</p>
 
       <hr size=3 width=400 align="center">
-      <h3>Monday January 29th, 2000</h3>
+      <h3>Thursday May 10th, 2001</h3>
       <ul>
       <ul>
-      <li>New version (3.22).
+      <li>Fixed the year on the last changelog entry :-)</li>
+      <li>Updated filter, added filter stuff to exim-www CVS</li>
+      <li>Updated docs pointers in Howto sections - thanks to Brian Candler</li>
+      <li>Updated RBL information - thanks to David Keegel</li>
+      <li>The exim book information has also appeared</li>
+      </ul>
+
+      <hr size=3 width=400 align="center">
+      <h3>Monday January 29th, 2001</h3>
+      <ul>
+      <li>New version (3.22).</li>
       <li>Few minor changes made in the intervening period unlogged</li>
       </ul>
 
       <li>Few minor changes made in the intervening period unlogged</li>
       </ul>
 
@@ -43,6 +53,6 @@
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 13:21:52 BST 1997 -->
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 13:21:52 BST 1997 -->
-    <h4>$Id: ChangeLog.html,v 1.4 2000/11/29 21:04:17 nigel Exp $</h4>
+    <h4>$Id: ChangeLog.html,v 1.5 2001/01/29 21:18:09 nigel Exp $</h4>
   </body>
 </html>
   </body>
 </html>
index b9aca2da72a8970144bb501f78c9509c328cedff..573ea50a128de534664a80d8cd4f50271948572b 100644 (file)
--- a/FAQ.html
+++ b/FAQ.html
@@ -12,7 +12,7 @@ improvements, and additions are welcome.
 
 </P>
 <P>
 
 </P>
 <P>
-This version of the FAQ applies to Exim 3.10 and later releases. The syntax of
+This version of the FAQ applies to Exim 3.20 and later releases. The syntax of
 some of the options was altered and tidied up at release 3.00. Some of the
 examples quoted here will not work with earlier releases.
 
 some of the options was altered and tidied up at release 3.00. Some of the
 examples quoted here will not work with earlier releases.
 
@@ -24,48 +24,48 @@ files that can be found in the separately distributed directory called
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-   <A HREF="ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/config.samples.tar.gz">ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/config.samples.tar.gz</A></PRE>
+   <A HREF="ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/config.samples.tar.gz">ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/config.samples.tar.gz</A>
+   <A HREF="ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/config.samples.tar.bz2">ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/config.samples.tar.bz2</A></PRE>
 <P>
 There are brief descriptions of these files at the end of this document.
 
 </P>
 The FAQ is divided into the following sections:
 <A HREF="FAQ.html#TOC1">Debugging</A>,
 <P>
 There are brief descriptions of these files at the end of this document.
 
 </P>
 The FAQ is divided into the following sections:
 <A HREF="FAQ.html#TOC1">Debugging</A>,
-<A HREF="FAQ.html#TOC37">Building exim</A>,
-<A HREF="FAQ.html#TOC48">Mailbox locking</A>,
-<A HREF="FAQ.html#TOC51">Routing</A>,
-<A HREF="FAQ.html#TOC77">Directing</A>,
-<A HREF="FAQ.html#TOC115">Delivery</A>,
-<A HREF="FAQ.html#TOC151">UUCP</A>,
-<A HREF="FAQ.html#TOC155">Performance</A>,
-<A HREF="FAQ.html#TOC159">Policy controls</A>,
-<A HREF="FAQ.html#TOC193">Majordomo</A>,
-<A HREF="FAQ.html#TOC198">Rewriting addresses</A>,
-<A HREF="FAQ.html#TOC206">Headers</A>,
-<A HREF="FAQ.html#TOC211">Fetchmail</A>,
-<A HREF="FAQ.html#TOC215">Perl</A>,
-<A HREF="FAQ.html#TOC218">Dial-up</A>,
-<A HREF="FAQ.html#TOC223">Modifying message bodies</A>,
-<A HREF="FAQ.html#TOC226">Millennium</A>,
-<A HREF="FAQ.html#TOC228">Miscellaneous</A>,
-<A HREF="FAQ.html#TOC270">HP-UX</A>,
-<A HREF="FAQ.html#TOC272">BSDI</A>,
-<A HREF="FAQ.html#TOC274">IRIX</A>,
-<A HREF="FAQ.html#TOC277">Linux</A>,
-<A HREF="FAQ.html#TOC284">Sun systems</A>,
-<A HREF="FAQ.html#TOC294">Cookbook</A>, and
-<A HREF="FAQ.html#TOC318">List of sample configurations</A>.
+<A HREF="FAQ.html#TOC49">Building exim</A>,
+<A HREF="FAQ.html#TOC64">Mailbox locking</A>,
+<A HREF="FAQ.html#TOC67">Routing</A>,
+<A HREF="FAQ.html#TOC94">Directing</A>,
+<A HREF="FAQ.html#TOC141">Delivery</A>,
+<A HREF="FAQ.html#TOC182">UUCP</A>,
+<A HREF="FAQ.html#TOC186">Performance</A>,
+<A HREF="FAQ.html#TOC191">Policy controls</A>,
+<A HREF="FAQ.html#TOC232">Majordomo</A>,
+<A HREF="FAQ.html#TOC238">Rewriting addresses</A>,
+<A HREF="FAQ.html#TOC246">Headers</A>,
+<A HREF="FAQ.html#TOC252">Fetchmail</A>,
+<A HREF="FAQ.html#TOC256">Perl</A>,
+<A HREF="FAQ.html#TOC259">Dial-up</A>,
+<A HREF="FAQ.html#TOC264">Modifying message bodies</A>,
+<A HREF="FAQ.html#TOC267">Millennium</A>,
+<A HREF="FAQ.html#TOC269">Miscellaneous</A>,
+<A HREF="FAQ.html#TOC321">HP-UX</A>,
+<A HREF="FAQ.html#TOC323">BSDI</A>,
+<A HREF="FAQ.html#TOC325">IRIX</A>,
+<A HREF="FAQ.html#TOC328">Linux</A>,
+<A HREF="FAQ.html#TOC337">Sun systems</A>,
+<A HREF="FAQ.html#TOC347">Cookbook</A>, and
+<A HREF="FAQ.html#TOC372">List of sample configurations</A>.
 <P>
 Philip Hazel <B><B>&#60;ph10@cus.cam.ac.uk</B>&#62;</B><BR>
 <P>
 Philip Hazel <B><B>&#60;ph10@cus.cam.ac.uk</B>&#62;</B><BR>
-Last update: 13-June-2000 (addition of section 15)<BR>
-Last general update: 15-December-1999<BR>
+Last update: 23-April-2001<BR>
 <BR>
 </P>
 <HR><BR>
 <A NAME="TOC1" HREF="FAQ.html#SEC1">0. DEBUGGING</A>
 <UL>
 <LI><A NAME="TOC2" HREF="FAQ.html#SEC2">Q0001</A>: Exim is crashing. What is wrong?
 <BR>
 </P>
 <HR><BR>
 <A NAME="TOC1" HREF="FAQ.html#SEC1">0. DEBUGGING</A>
 <UL>
 <LI><A NAME="TOC2" HREF="FAQ.html#SEC2">Q0001</A>: Exim is crashing. What is wrong?
-<LI><A NAME="TOC3" HREF="FAQ.html#SEC3">Q0002</A>: Exim is not working. What is wrong?
+<LI><A NAME="TOC3" HREF="FAQ.html#SEC3">Q0002</A>: Exim is not working. What is wrong? How can I check what it is doing?
 <LI><A NAME="TOC4" HREF="FAQ.html#SEC4">Q0003</A>: What does the error "Child process of <TT>address_pipe</TT> transport returned
        69 from command <I>xxx</I>" mean?
 <LI><A NAME="TOC5" HREF="FAQ.html#SEC5">Q0004</A>: My virtual domain setup isn't working. How can I debug it?
 <LI><A NAME="TOC4" HREF="FAQ.html#SEC4">Q0003</A>: What does the error "Child process of <TT>address_pipe</TT> transport returned
        69 from command <I>xxx</I>" mean?
 <LI><A NAME="TOC5" HREF="FAQ.html#SEC5">Q0004</A>: My virtual domain setup isn't working. How can I debug it?
@@ -139,657 +139,781 @@ Last general update: 15-December-1999<BR>
        unavailable)".
 <LI><A NAME="TOC35" HREF="FAQ.html#SEC35">Q0034</A>: I'm having a problem with an Exim RPM.
 <LI><A NAME="TOC36" HREF="FAQ.html#SEC36">Q0035</A>: What does the error "Spool file is locked" mean?
        unavailable)".
 <LI><A NAME="TOC35" HREF="FAQ.html#SEC35">Q0034</A>: I'm having a problem with an Exim RPM.
 <LI><A NAME="TOC36" HREF="FAQ.html#SEC36">Q0035</A>: What does the error "Spool file is locked" mean?
+<LI><A NAME="TOC37" HREF="FAQ.html#SEC37">Q0036</A>: Exim is reporting IP addresses as 0.0.0.0 or 255.255.255.255 instead of
+       their correct values. What's going on?
+<LI><A NAME="TOC38" HREF="FAQ.html#SEC38">Q0037</A>: I can't seem to figure out why PAM support doesn't work correctly.
+<LI><A NAME="TOC39" HREF="FAQ.html#SEC39">Q0038</A>: I'm trying to use a query-style lookup for hosts that are allowed to
+       relay, but it is giving really weird errors.
+<LI><A NAME="TOC40" HREF="FAQ.html#SEC40">Q0039</A>: Exim is rejecting calls from hosts that have more than one IP address,
+       for no apparent reason.
+<LI><A NAME="TOC41" HREF="FAQ.html#SEC41">Q0040</A>: Exim is failing to find the MySQL library, even though is it present
+       within <B><B>$LD_LIBRARY_PATH.</B></B> I'm getting this error:
+<LI><A NAME="TOC42" HREF="FAQ.html#SEC42">Q0041</A>: I have a collection of Exim processes that have been around for days,
+       and are apparently stuck while trying to deliver to remote hosts. This
+       is causing the messages they are handling to get stuck.
+<LI><A NAME="TOC43" HREF="FAQ.html#SEC43">Q0042</A>: I have a message in the spool which couldn't be delivered because of a
+       timeout from the remote smtp server. When I try to deliver this message
+       in eximon, I get "Spool file is locked". How can I deliver the message?
+<LI><A NAME="TOC44" HREF="FAQ.html#SEC44">Q0043</A>: What does the error "lookup of host <B>"xx<EM>.xx</EM><EM>.xx</EM>"</B> failed in <I>yyy</I>y router"
+       mean? Any suggestions to stop this these sort of errors from being
+       frozen would be muchly appreciated.
+<LI><A NAME="TOC45" HREF="FAQ.html#SEC45">Q0044</A>: My filter isn't working. How can I test it?
+<LI><A NAME="TOC46" HREF="FAQ.html#SEC46">Q0045</A>: Exim works fine on one host, but when I copied the binary to another
+       identical host, it stopped working (it could not resolve DNS names).
+<LI><A NAME="TOC47" HREF="FAQ.html#SEC47">Q0046</A>: Once in a while, a user will send a message and immediatly get a
+       response back "No Transport Provider"  If they choose "Send Again",
+       sometimes it works, sometimes it doesn't.
+<LI><A NAME="TOC48" HREF="FAQ.html#SEC48">Q0047</A>: I set <TT>host_accept_relay</TT> to do a lookup in a file of IP addresses, but it
+       doesn't work.
 </UL>
 
 </UL>
 
-<A NAME="TOC37" HREF="FAQ.html#SEC37">1. BUILDING EXIM</A>
+<A NAME="TOC49" HREF="FAQ.html#SEC49">1. BUILDING EXIM</A>
 <UL>
 <UL>
-<LI><A NAME="TOC38" HREF="FAQ.html#SEC38">Q0101</A>: I get the error "conflicting types" when Exim is building the libident
+<LI><A NAME="TOC50" HREF="FAQ.html#SEC50">Q0101</A>: I get the error "conflicting types" when Exim is building the libident
        library.
        library.
-<LI><A NAME="TOC39" HREF="FAQ.html#SEC39">Q0102</A>: When I ran <B>make</B> I got the error "undefined reference to <TT>dbopen</TT>".
-<LI><A NAME="TOC40" HREF="FAQ.html#SEC40">Q0103</A>: I can't get Exim to compile with Berkeley DB version 2.x.
-<LI><A NAME="TOC41" HREF="FAQ.html#SEC41">Q0104</A>: I'm getting an "undefined symbol" error for <TT>hosts_ctl</TT> when I try to
+<LI><A NAME="TOC51" HREF="FAQ.html#SEC51">Q0102</A>: When I ran <B>make</B> I got the error "undefined reference to <TT>dbopen</TT>".
+<LI><A NAME="TOC52" HREF="FAQ.html#SEC52">Q0103</A>: I can't get Exim to compile with Berkeley DB version 2.x.
+<LI><A NAME="TOC53" HREF="FAQ.html#SEC53">Q0104</A>: I'm getting an "undefined symbol" error for <TT>hosts_ctl</TT> when I try to
        build Exim. (On some systems this error is "undefined reference to
        'hosts_ctl'".)
        build Exim. (On some systems this error is "undefined reference to
        'hosts_ctl'".)
-<LI><A NAME="TOC42" HREF="FAQ.html#SEC42">Q0105</A>: I'm about to upgrade to a new Exim release. Do I need to ensure the
+<LI><A NAME="TOC54" HREF="FAQ.html#SEC54">Q0105</A>: I'm about to upgrade to a new Exim release. Do I need to ensure the
        spool is empty, or take any other special action?
        spool is empty, or take any other special action?
-<LI><A NAME="TOC43" HREF="FAQ.html#SEC43">Q0106</A>: What does the error "<B>install-info</B>: command not found" mean?
-<LI><A NAME="TOC44" HREF="FAQ.html#SEC44">Q0107</A>: Exim doesn't seem to be recognizing my operating system type correctly,
+<LI><A NAME="TOC55" HREF="FAQ.html#SEC55">Q0106</A>: What does the error "<B>install-info</B>: command not found" mean?
+<LI><A NAME="TOC56" HREF="FAQ.html#SEC56">Q0107</A>: Exim doesn't seem to be recognizing my operating system type correctly,
        and so is failing to build.
        and so is failing to build.
-<LI><A NAME="TOC45" HREF="FAQ.html#SEC45">Q0108</A>: I am getting an error "`exim' undeclared here" when I compile, in the
+<LI><A NAME="TOC57" HREF="FAQ.html#SEC57">Q0108</A>: I am getting an error "`exim' undeclared here" when I compile, in the
        <B>globals.c</B> module.
        <B>globals.c</B> module.
-<LI><A NAME="TOC46" HREF="FAQ.html#SEC46">Q0109</A>: Exim fails to build, complaining about the absence of the "killpg"
+<LI><A NAME="TOC58" HREF="FAQ.html#SEC58">Q0109</A>: Exim fails to build, complaining about the absence of the "killpg"
        function.
        function.
-<LI><A NAME="TOC47" HREF="FAQ.html#SEC47">Q0110</A>: I'm getting an unresolved symbol <TT>ldap_is_ldap_url</TT> when trying to build
+<LI><A NAME="TOC59" HREF="FAQ.html#SEC59">Q0110</A>: I'm getting an unresolved symbol <TT>ldap_is_ldap_url</TT> when trying to build
        Exim.
        Exim.
+<LI><A NAME="TOC60" HREF="FAQ.html#SEC60">Q0111</A>: I'm getting an unresolved symbol <TT>mysql_close</TT> when trying to build Exim.
+<LI><A NAME="TOC61" HREF="FAQ.html#SEC61">Q0112</A>: I'm trying to build Exim with PAM support. I have included <B>-lpam</B> in
+       <TT>EXTRALIBS</TT>, but I'm still getting a linking error:
+<LI><A NAME="TOC62" HREF="FAQ.html#SEC62">Q0113</A>: I'm getting the error <B>"db.h:</B> No such file or directory" when I try to
+       build Exim.
+<LI><A NAME="TOC63" HREF="FAQ.html#SEC63">Q0114</A>: I'm getting the error "/usr/bin/ld: cannot find <B>-ldb1"</B> when I try to
+       build Exim.
 </UL>
 
 </UL>
 
-<A NAME="TOC48" HREF="FAQ.html#SEC48">2. MAILBOX LOCKING</A>
+<A NAME="TOC64" HREF="FAQ.html#SEC64">2. MAILBOX LOCKING</A>
 <UL>
 <UL>
-<LI><A NAME="TOC49" HREF="FAQ.html#SEC49">Q0201</A>: Why do I get the error "Permission denied: creating lock file hitching
+<LI><A NAME="TOC65" HREF="FAQ.html#SEC65">Q0201</A>: Why do I get the error "Permission denied: creating lock file hitching
        post" when Exim tries to do a local delivery?
        post" when Exim tries to do a local delivery?
-<LI><A NAME="TOC50" HREF="FAQ.html#SEC50">Q0202</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
+<LI><A NAME="TOC66" HREF="FAQ.html#SEC66">Q0202</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
        over a network.
 </UL>
 
        over a network.
 </UL>
 
-<A NAME="TOC51" HREF="FAQ.html#SEC51">3. ROUTING</A>
+<A NAME="TOC67" HREF="FAQ.html#SEC67">3. ROUTING</A>
 <UL>
 <UL>
-<LI><A NAME="TOC52" HREF="FAQ.html#SEC52">Q0301</A>: What does "lowest numbered MX record points to local host" mean?
-<LI><A NAME="TOC53" HREF="FAQ.html#SEC53">Q0302</A>: How do I configure Exim to send all non-local mail to a gateway host?
-<LI><A NAME="TOC54" HREF="FAQ.html#SEC54">Q0303</A>: How do I configure Exim to send all non-local mail to a central server
+<LI><A NAME="TOC68" HREF="FAQ.html#SEC68">Q0301</A>: What do "lowest numbered MX record points to local host" and "remote
+       host address is the local host" mean?
+<LI><A NAME="TOC69" HREF="FAQ.html#SEC69">Q0302</A>: How do I configure Exim to send all non-local mail to a gateway host?
+<LI><A NAME="TOC70" HREF="FAQ.html#SEC70">Q0303</A>: How do I configure Exim to send all non-local mail to a central server
        if it cannot be immediately delivered by my host? I don't want to have
        queued mail waiting on my host.
        if it cannot be immediately delivered by my host? I don't want to have
        queued mail waiting on my host.
-<LI><A NAME="TOC55" HREF="FAQ.html#SEC55">Q0304</A>: How can I arrange for messages submitted by (for example) Majordomo to
+<LI><A NAME="TOC71" HREF="FAQ.html#SEC71">Q0304</A>: How can I arrange for messages submitted by (for example) Majordomo to
        be routed specially?
        be routed specially?
-<LI><A NAME="TOC56" HREF="FAQ.html#SEC56">Q0305</A>: How do I arrange for all incoming email for <B><B>*@some.domain</B></B> to go into one
+<LI><A NAME="TOC72" HREF="FAQ.html#SEC72">Q0305</A>: How do I arrange for all incoming email for <B><B>*@some.domain</B></B> to go into one
        pop3 mail account? The customer doesn't want to add a list of specific
        local parts to the system.
        pop3 mail account? The customer doesn't want to add a list of specific
        local parts to the system.
-<LI><A NAME="TOC57" HREF="FAQ.html#SEC57">Q0306</A>: The <TT>route_list</TT> setting 
+<LI><A NAME="TOC73" HREF="FAQ.html#SEC73">Q0306</A>: The <TT>route_list</TT> setting 
          <TT>^foo$:^bar$  $domain  byname</TT> in a <B>domainlist</B>
        router does not work.
          <TT>^foo$:^bar$  $domain  byname</TT> in a <B>domainlist</B>
        router does not work.
-<LI><A NAME="TOC58" HREF="FAQ.html#SEC58">Q0307</A>: I'm getting "permission denied" when Exim attempts to check a
+<LI><A NAME="TOC74" HREF="FAQ.html#SEC74">Q0307</A>: I'm getting "permission denied" when Exim attempts to check a
        <TT>require_files</TT> option.
        <TT>require_files</TT> option.
-<LI><A NAME="TOC59" HREF="FAQ.html#SEC59">Q0308</A>: I have a domain for which some local parts must be delivered locally,
+<LI><A NAME="TOC75" HREF="FAQ.html#SEC75">Q0308</A>: I have a domain for which some local parts must be delivered locally,
        but the remainder are to be treated like any other remote addresses.
        but the remainder are to be treated like any other remote addresses.
-<LI><A NAME="TOC60" HREF="FAQ.html#SEC60">Q0309</A>: For certain domains, I don't want Exim to use MX records. Instead, I
+<LI><A NAME="TOC76" HREF="FAQ.html#SEC76">Q0309</A>: For certain domains, I don't want Exim to use MX records. Instead, I
        want it just to look up the hosts' A records. I tried using a negative
        entry in <TT>mx_domains</TT> in the smtp router, but it didn't work.
        want it just to look up the hosts' A records. I tried using a negative
        entry in <TT>mx_domains</TT> in the smtp router, but it didn't work.
-<LI><A NAME="TOC61" HREF="FAQ.html#SEC61">Q0310</A>: How can I configure Exim on a firewall machine so that if mail arrives
+<LI><A NAME="TOC77" HREF="FAQ.html#SEC77">Q0310</A>: How can I configure Exim on a firewall machine so that if mail arrives
        addressed to a domain whose MX points to the firewall, it is forwarded
        to the internal mail server, without having to have a list of all the
        domains involved?
        addressed to a domain whose MX points to the firewall, it is forwarded
        to the internal mail server, without having to have a list of all the
        domains involved?
-<LI><A NAME="TOC62" HREF="FAQ.html#SEC62">Q0311</A>: How can I arrange that messages larger than some limit are handled by
+<LI><A NAME="TOC78" HREF="FAQ.html#SEC78">Q0311</A>: How can I arrange that messages larger than some limit are handled by
        a special router?
        a special router?
-<LI><A NAME="TOC63" HREF="FAQ.html#SEC63">Q0312</A>: If a DNS lookup returns no MX records why doesn't Exim just bin the
+<LI><A NAME="TOC79" HREF="FAQ.html#SEC79">Q0312</A>: If a DNS lookup returns no MX records why doesn't Exim just bin the
        message?
        message?
-<LI><A NAME="TOC64" HREF="FAQ.html#SEC64">Q0313</A>: When a DNS lookup for MX records fails to complete, why doesn't Exim
+<LI><A NAME="TOC80" HREF="FAQ.html#SEC80">Q0313</A>: When a DNS lookup for MX records fails to complete, why doesn't Exim
        send the messsage to the host defined by the A record?
        send the messsage to the host defined by the A record?
-<LI><A NAME="TOC65" HREF="FAQ.html#SEC65">Q0314</A>: Can you specify a list of domains to explicitly reject?
-<LI><A NAME="TOC66" HREF="FAQ.html#SEC66">Q0315</A>: Is it possible to use a conditional expression for the host item in a
+<LI><A NAME="TOC81" HREF="FAQ.html#SEC81">Q0314</A>: Can you specify a list of domains to explicitly reject?
+<LI><A NAME="TOC82" HREF="FAQ.html#SEC82">Q0315</A>: Is it possible to use a conditional expression for the host item in a
        <TT>route_list</TT> for the <B>domainlist</B> router? I tried the following, but it
        doesn't work:
        <TT>route_list</TT> for the <B>domainlist</B> router? I tried the following, but it
        doesn't work:
-<LI><A NAME="TOC67" HREF="FAQ.html#SEC67">Q0316</A>: I send all external mail to a smart host, but this means that bad
+<LI><A NAME="TOC83" HREF="FAQ.html#SEC83">Q0316</A>: I send all external mail to a smart host, but this means that bad
        addresses also get passed to the smart host. Can I avoid this?
        addresses also get passed to the smart host. Can I avoid this?
-<LI><A NAME="TOC68" HREF="FAQ.html#SEC68">Q0317</A>: I have a dial-up machine, and I use the <TT>queue_smtp</TT> option so that remote
+<LI><A NAME="TOC84" HREF="FAQ.html#SEC84">Q0317</A>: I have a dial-up machine, and I use the <TT>queue_smtp</TT> option so that remote
        mail only goes out when I do a queue run. However, any email I send with
        an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15 mins saying
        'retry time exceeded', and all addresses are affected.
        mail only goes out when I do a queue run. However, any email I send with
        an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15 mins saying
        'retry time exceeded', and all addresses are affected.
-<LI><A NAME="TOC69" HREF="FAQ.html#SEC69">Q0318</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
+<LI><A NAME="TOC85" HREF="FAQ.html#SEC85">Q0318</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
        on the local host?
        on the local host?
-<LI><A NAME="TOC70" HREF="FAQ.html#SEC70">Q0319</A>: How can I arrange to do my own qualification of non-fully-qualified
+<LI><A NAME="TOC86" HREF="FAQ.html#SEC86">Q0319</A>: How can I arrange to do my own qualification of non-fully-qualified
        domains, and then pass them on to the next router?
        domains, and then pass them on to the next router?
-<LI><A NAME="TOC71" HREF="FAQ.html#SEC71">Q0320</A>: Every system has a "nobody" account under which httpd etc run. I would
+<LI><A NAME="TOC87" HREF="FAQ.html#SEC87">Q0320</A>: Every system has a "nobody" account under which httpd etc run. I would
        like to know how to restrict mail which comes from that account to users
        on that host only.
        like to know how to restrict mail which comes from that account to users
        on that host only.
-<LI><A NAME="TOC72" HREF="FAQ.html#SEC72">Q0321</A>: I have a really annoying intermittent problem where attempts to mail to
+<LI><A NAME="TOC88" HREF="FAQ.html#SEC88">Q0321</A>: I have a really annoying intermittent problem where attempts to mail to
        valid sites are rejected with "unknown mail domain". This only happens a
        few times a day and there is no particular pattern to the sites it
        rejects.  If I try to lookup the same domain a few minutes later then it
        is OK.
        valid sites are rejected with "unknown mail domain". This only happens a
        few times a day and there is no particular pattern to the sites it
        rejects.  If I try to lookup the same domain a few minutes later then it
        is OK.
-<LI><A NAME="TOC73" HREF="FAQ.html#SEC73">Q0322</A>: I'd like route all mail with unresolved addresses to a relay machine.
-<LI><A NAME="TOC74" HREF="FAQ.html#SEC74">Q0323</A>: I would like to forward all incoming email for a particular domain to
+<LI><A NAME="TOC89" HREF="FAQ.html#SEC89">Q0322</A>: I'd like route all mail with unresolved addresses to a relay machine.
+<LI><A NAME="TOC90" HREF="FAQ.html#SEC90">Q0323</A>: I would like to forward all incoming email for a particular domain to
        another machine via SMTP. Whereabouts would I configure that?
        another machine via SMTP. Whereabouts would I configure that?
-<LI><A NAME="TOC75" HREF="FAQ.html#SEC75">Q0324</A>: Why does Exim say "all relevant MX records point to non-existent hosts"
+<LI><A NAME="TOC91" HREF="FAQ.html#SEC91">Q0324</A>: Why does Exim say "all relevant MX records point to non-existent hosts"
        when MX records point to IP addresses?
        when MX records point to IP addresses?
-<LI><A NAME="TOC76" HREF="FAQ.html#SEC76">Q0325</A>: How can I arrange for mail on my local network to be delivered directly
+<LI><A NAME="TOC92" HREF="FAQ.html#SEC92">Q0325</A>: How can I arrange for mail on my local network to be delivered directly
        to the relevant hosts, but all other mail to be sent to my ISP's mail
        server? The local hosts are all DNS-registered and behave like normal
        Internet hosts.
        to the relevant hosts, but all other mail to be sent to my ISP's mail
        server? The local hosts are all DNS-registered and behave like normal
        Internet hosts.
+<LI><A NAME="TOC93" HREF="FAQ.html#SEC93">Q0326</A>: What I'd like to do is have alternative smarthosts, where the one to be
+       used is determined by which ISP I'm connected to.
 </UL>
 
 </UL>
 
-<A NAME="TOC77" HREF="FAQ.html#SEC77">4. DIRECTING</A>
+<A NAME="TOC94" HREF="FAQ.html#SEC94">4. DIRECTING</A>
 <UL>
 <UL>
-<LI><A NAME="TOC78" HREF="FAQ.html#SEC78">Q0401</A>: I need to have any mail for <B>virt.dom.ain</B> that <EM>doesn't</EM> match one of the
+<LI><A NAME="TOC95" HREF="FAQ.html#SEC95">Q0401</A>: I need to have any mail for <B>virt.dom.ain</B> that <EM>doesn't</EM> match one of the
        aliases in <B><B>/usr/lib/aliases.virt</B></B> delivered to a particular address, for
        example, <B><B>postmaster@virt.dom.ain.</B></B>
        aliases in <B><B>/usr/lib/aliases.virt</B></B> delivered to a particular address, for
        example, <B><B>postmaster@virt.dom.ain.</B></B>
-<LI><A NAME="TOC79" HREF="FAQ.html#SEC79">Q0402</A>: How do I configure Exim to send all messages to a central server?
-<LI><A NAME="TOC80" HREF="FAQ.html#SEC80">Q0403</A>: How do I configure Exim to send messages for unknown local users to a
+<LI><A NAME="TOC96" HREF="FAQ.html#SEC96">Q0402</A>: How do I configure Exim to send all messages to a central server?
+<LI><A NAME="TOC97" HREF="FAQ.html#SEC97">Q0403</A>: How do I configure Exim to send messages for unknown local users to a
        central server?
        central server?
-<LI><A NAME="TOC81" HREF="FAQ.html#SEC81">Q0404</A>: How can I arrange for messages submitted by (for example) Majordomo to
+<LI><A NAME="TOC98" HREF="FAQ.html#SEC98">Q0404</A>: How can I arrange for messages submitted by (for example) Majordomo to
        be handled specially?
        be handled specially?
-<LI><A NAME="TOC82" HREF="FAQ.html#SEC82">Q0405</A>: On a host that accepts mail for several domains, do I have to use fully
+<LI><A NAME="TOC99" HREF="FAQ.html#SEC99">Q0405</A>: On a host that accepts mail for several domains, do I have to use fully
        qualified names in <B>/etc/aliases</B> or do I have to set up an alias file for
        each domain?
        qualified names in <B>/etc/aliases</B> or do I have to set up an alias file for
        each domain?
-<LI><A NAME="TOC83" HREF="FAQ.html#SEC83">Q0406</A>: Some of my users are using the <B>.forward</B> to pipe to a shell command which
+<LI><A NAME="TOC100" HREF="FAQ.html#SEC100">Q0406</A>: Some of my users are using the <B>.forward</B> to pipe to a shell command which
        appends to the user's INBOX. How can I forbid this?
        appends to the user's INBOX. How can I forbid this?
-<LI><A NAME="TOC84" HREF="FAQ.html#SEC84">Q0407</A>: How can I arrange for a default value when using a query-style lookup
+<LI><A NAME="TOC101" HREF="FAQ.html#SEC101">Q0407</A>: How can I arrange for a default value when using a query-style lookup
        such as LDAP or NIS+ to handle aliases?
        such as LDAP or NIS+ to handle aliases?
-<LI><A NAME="TOC85" HREF="FAQ.html#SEC85">Q0408</A>: If I don't fully qualify the addresses in a virtual domain's alias file
+<LI><A NAME="TOC102" HREF="FAQ.html#SEC102">Q0408</A>: If I don't fully qualify the addresses in a virtual domain's alias file
        then mail to aliases which also match the local domain get delivered to
        the local domain.
        then mail to aliases which also match the local domain get delivered to
        the local domain.
-<LI><A NAME="TOC86" HREF="FAQ.html#SEC86">Q0409</A>: We've got users who chmod their home to 750, and home is NFS-mounted
+<LI><A NAME="TOC103" HREF="FAQ.html#SEC103">Q0409</A>: We've got users who chmod their home to 750, and home is NFS-mounted
        without root privilege, so Exim cannot access <B>~user/.forward.</B>
        without root privilege, so Exim cannot access <B>~user/.forward.</B>
-<LI><A NAME="TOC87" HREF="FAQ.html#SEC87">Q0410</A>: I'm getting "permission denied" when Exim tries to check a for the
+<LI><A NAME="TOC104" HREF="FAQ.html#SEC104">Q0410</A>: I'm getting "permission denied" when Exim tries to check a for the
        existence of a user's <B>.procmailrc</B> file using <TT>require_files</TT>.
        existence of a user's <B>.procmailrc</B> file using <TT>require_files</TT>.
-<LI><A NAME="TOC88" HREF="FAQ.html#SEC88">Q0411</A>: How can I deliver mail into different directories for each virtual
+<LI><A NAME="TOC105" HREF="FAQ.html#SEC105">Q0411</A>: How can I deliver mail into different directories for each virtual
        domain, doing user lookups not against <B>/etc/passwd</B> but against
        <B><B>/etc/passwd.domain</B>?</B>
        domain, doing user lookups not against <B>/etc/passwd</B> but against
        <B><B>/etc/passwd.domain</B>?</B>
-<LI><A NAME="TOC89" HREF="FAQ.html#SEC89">Q0412</A>: I want mail for <EM>any</EM> local part at certain virtual domains to go
+<LI><A NAME="TOC106" HREF="FAQ.html#SEC106">Q0412</A>: I want mail for <EM>any</EM> local part at certain virtual domains to go
        to a single address for each domain.
        to a single address for each domain.
-<LI><A NAME="TOC90" HREF="FAQ.html#SEC90">Q0413</A>: How can I make Exim look in the alias NIS map instead of <B>/etc/aliases</B>?
-<LI><A NAME="TOC91" HREF="FAQ.html#SEC91">Q0414</A>: What does the error message "error in forward file (filtering not
+<LI><A NAME="TOC107" HREF="FAQ.html#SEC107">Q0413</A>: How can I make Exim look in the alias NIS map instead of <B>/etc/aliases</B>?
+<LI><A NAME="TOC108" HREF="FAQ.html#SEC108">Q0414</A>: What does the error message "error in forward file (filtering not
        enabled): missing or malformed local part ..." mean?
        enabled): missing or malformed local part ..." mean?
-<LI><A NAME="TOC92" HREF="FAQ.html#SEC92">Q0415</A>: Exim isn't recognizing certain forms of local address.
-<LI><A NAME="TOC93" HREF="FAQ.html#SEC93">Q0416</A>: I have a domain for which some local parts must be delivered locally,
+<LI><A NAME="TOC109" HREF="FAQ.html#SEC109">Q0415</A>: Exim isn't recognizing certain forms of local address.
+<LI><A NAME="TOC110" HREF="FAQ.html#SEC110">Q0416</A>: I have a domain for which some local parts must be delivered locally,
        but the remainder are to be treated like any other remote addresses.
        but the remainder are to be treated like any other remote addresses.
-<LI><A NAME="TOC94" HREF="FAQ.html#SEC94">Q0417</A>: What I really need is the ability to obtain the result of a pipe
+<LI><A NAME="TOC111" HREF="FAQ.html#SEC111">Q0417</A>: What I really need is the ability to obtain the result of a pipe
        command so that I can filter externally and redirect internally. Is
        this possible?
        command so that I can filter externally and redirect internally. Is
        this possible?
-<LI><A NAME="TOC95" HREF="FAQ.html#SEC95">Q0418</A>: When I set a suffix on one of my directors, it doesn't get stripped when
+<LI><A NAME="TOC112" HREF="FAQ.html#SEC112">Q0418</A>: When I set a suffix on one of my directors, it doesn't get stripped when
        checking the <TT>local_parts</TT> option. Why is this?
        checking the <TT>local_parts</TT> option. Why is this?
-<LI><A NAME="TOC96" HREF="FAQ.html#SEC96">Q0419</A>: Why will Exim deliver a message locally to any username that is longer
+<LI><A NAME="TOC113" HREF="FAQ.html#SEC113">Q0419</A>: Why will Exim deliver a message locally to any username that is longer
        than 8 characters as long as the first 8 characters match one of the
        local usernames?
        than 8 characters as long as the first 8 characters match one of the
        local usernames?
-<LI><A NAME="TOC97" HREF="FAQ.html#SEC97">Q0420</A>: Why am I seeing the error "bad mode (100664) for <B><B>/home/test/.forward</B></B>
+<LI><A NAME="TOC114" HREF="FAQ.html#SEC114">Q0420</A>: Why am I seeing the error "bad mode (100664) for <B><B>/home/test/.forward</B></B>
        (userforward director)"? I've looked through the documentation but can't
        see anything to suggest that exim has to do anything other than read the
        <B>.forward</B> file.
        (userforward director)"? I've looked through the documentation but can't
        see anything to suggest that exim has to do anything other than read the
        <B>.forward</B> file.
-<LI><A NAME="TOC98" HREF="FAQ.html#SEC98">Q0421</A>: How can I arrange that messages larger than some limit are handled by
+<LI><A NAME="TOC115" HREF="FAQ.html#SEC115">Q0421</A>: How can I arrange that messages larger than some limit are handled by
        a special director?
        a special director?
-<LI><A NAME="TOC99" HREF="FAQ.html#SEC99">Q0422</A>: When a user's <B>.forward</B> file is syntactially invalid, Exim defers
+<LI><A NAME="TOC116" HREF="FAQ.html#SEC116">Q0422</A>: When a user's <B>.forward</B> file is syntactially invalid, Exim defers
        delivery of all messages to that user, which sometimes include the
        user's own test messages. Can it be told to ignore the <B>.forward</B> file
        and/or inform the user of the error?
        delivery of all messages to that user, which sometimes include the
        user's own test messages. Can it be told to ignore the <B>.forward</B> file
        and/or inform the user of the error?
-<LI><A NAME="TOC100" HREF="FAQ.html#SEC100">Q0423</A>: I have some users on my system with upper case letters in their login
+<LI><A NAME="TOC117" HREF="FAQ.html#SEC117">Q0423</A>: I have some users on my system with upper case letters in their login
        names, but these are not recognized.
        names, but these are not recognized.
-<LI><A NAME="TOC101" HREF="FAQ.html#SEC101">Q0424</A>: I have unset <TT>locally_caseless</TT> because my users have upper case letters
+<LI><A NAME="TOC118" HREF="FAQ.html#SEC118">Q0424</A>: I have unset <TT>locally_caseless</TT> because my users have upper case letters
        in their login names, but incoming mail now has to use the correct case.
        Can I relax this somehow?
        in their login names, but incoming mail now has to use the correct case.
        Can I relax this somehow?
-<LI><A NAME="TOC102" HREF="FAQ.html#SEC102">Q0425</A>: I want to look up local users in an SQL database instead of looking in
+<LI><A NAME="TOC119" HREF="FAQ.html#SEC119">Q0425</A>: I want to look up local users in an SQL database instead of looking in
        the passwd file.
        the passwd file.
-<LI><A NAME="TOC103" HREF="FAQ.html#SEC103">Q0426</A>: Is it possible for Exim to use a SQL database like MySQL for its lists
+<LI><A NAME="TOC120" HREF="FAQ.html#SEC120">Q0426</A>: Is it possible for Exim to use a SQL database like MySQL for its lists
        of virtual domains and explicit aliases?
        of virtual domains and explicit aliases?
-<LI><A NAME="TOC104" HREF="FAQ.html#SEC104">Q0427</A>: Can I use my existing alias files and forward files as well as procmail
+<LI><A NAME="TOC121" HREF="FAQ.html#SEC121">Q0427</A>: Can I use my existing alias files and forward files as well as procmail
        and effectively drop in exim in place of Sendmail ?
        and effectively drop in exim in place of Sendmail ?
-<LI><A NAME="TOC105" HREF="FAQ.html#SEC105">Q0428</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
+<LI><A NAME="TOC122" HREF="FAQ.html#SEC122">Q0428</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
        on the local host?
        on the local host?
-<LI><A NAME="TOC106" HREF="FAQ.html#SEC106">Q0429</A>: What is quickest way to set up Exim so any message sent to a non-
+<LI><A NAME="TOC123" HREF="FAQ.html#SEC123">Q0429</A>: What is quickest way to set up Exim so any message sent to a non-
        existing user would bounce back with a different message, based
        on the name of non-existing user?
        existing user would bounce back with a different message, based
        on the name of non-existing user?
-<LI><A NAME="TOC107" HREF="FAQ.html#SEC107">Q0430</A>: I am building some largish mailing lists with Majordomo, and was
+<LI><A NAME="TOC124" HREF="FAQ.html#SEC124">Q0430</A>: I am building some largish mailing lists with Majordomo, and was
        wondering if it worth leaving the actually list expansion to the
        <B>aliasfile</B> :include: mechanism or should I consider using the <B>forwardfile</B>
        transport? Is there any real difference in terms of facilities and/or
        performance, and are the expansions basically the same code anyway?
        wondering if it worth leaving the actually list expansion to the
        <B>aliasfile</B> :include: mechanism or should I consider using the <B>forwardfile</B>
        transport? Is there any real difference in terms of facilities and/or
        performance, and are the expansions basically the same code anyway?
-<LI><A NAME="TOC108" HREF="FAQ.html#SEC108">Q0431</A>: What do I need to do to make Exim handle <B>/usr/ucb/vacation</B> processing
+<LI><A NAME="TOC125" HREF="FAQ.html#SEC125">Q0431</A>: What do I need to do to make Exim handle <B>/usr/ucb/vacation</B> processing
        automatically, so that people could just create a .<B>vacation.msg</B> file in
        their home directory and not have to edit their <B>.forward</B> file?
        automatically, so that people could just create a .<B>vacation.msg</B> file in
        their home directory and not have to edit their <B>.forward</B> file?
-<LI><A NAME="TOC109" HREF="FAQ.html#SEC109">Q0432</A>: I want to use a default entry in my alias file, but it picks up the
+<LI><A NAME="TOC126" HREF="FAQ.html#SEC126">Q0432</A>: I want to use a default entry in my alias file, but it picks up the
        local parts that the aliases generate. For example, if the alias file
        is
        local parts that the aliases generate. For example, if the alias file
        is
-<LI><A NAME="TOC110" HREF="FAQ.html#SEC110">Q0433</A>: I have some obsolete domains which people have been warned not to use
+<LI><A NAME="TOC127" HREF="FAQ.html#SEC127">Q0433</A>: I have some obsolete domains which people have been warned not to use
        any more. How can I arrange to delete any mail that is sent to them?
        any more. How can I arrange to delete any mail that is sent to them?
-<LI><A NAME="TOC111" HREF="FAQ.html#SEC111">Q0434</A>: How can I arrange that mail addressed to <B><B>anything@something.mydomain.com</B></B>
+<LI><A NAME="TOC128" HREF="FAQ.html#SEC128">Q0434</A>: How can I arrange that mail addressed to <B><B>anything@something.mydomain.com</B></B>
        gets delivered to <B><B>something@mydomain.com</B>?</B>
        gets delivered to <B><B>something@mydomain.com</B>?</B>
-<LI><A NAME="TOC112" HREF="FAQ.html#SEC112">Q0435</A>: I can't get a regular expression to work in this <TT>local_parts</TT> option on
+<LI><A NAME="TOC129" HREF="FAQ.html#SEC129">Q0435</A>: I can't get a regular expression to work in this <TT>local_parts</TT> option on
        one of my directors:
        one of my directors:
-<LI><A NAME="TOC113" HREF="FAQ.html#SEC113">Q0436</A>: How can I arrange for all addresses in a group of domains <B>*.example.com</B>
+<LI><A NAME="TOC130" HREF="FAQ.html#SEC130">Q0436</A>: How can I arrange for all addresses in a group of domains <B>*.example.com</B>
        to share the same alias file? I have a number of such groups.
        to share the same alias file? I have a number of such groups.
-<LI><A NAME="TOC114" HREF="FAQ.html#SEC114">Q0437</A>: When Exim tries to read <B><B>/usr/lib/majordomo/lists/lists.aliases</B></B> it is
+<LI><A NAME="TOC131" HREF="FAQ.html#SEC131">Q0437</A>: When Exim tries to read <B><B>/usr/lib/majordomo/lists/lists.aliases</B></B> it is
        giving "Permission denied", but that file is world-readable!
        giving "Permission denied", but that file is world-readable!
+<LI><A NAME="TOC132" HREF="FAQ.html#SEC132">Q0438</A>: Some of our users have no home directories; the field in the password
+       file contains <B>/no/home/dir</B>. This causes the error "failed to stat
+       <B>/no/home/dir</B> (No such file or directory)" when Exim tries to look for a
+       <B>.forward</B> file, and the delivery is deferred.
+<LI><A NAME="TOC133" HREF="FAQ.html#SEC133">Q0439</A>: How can I disable Exim's de-duplication features? I want it to do two
+       deliveries if two different aliases expand to the same address.
+<LI><A NAME="TOC134" HREF="FAQ.html#SEC134">Q0440</A>: I set up an <B>aliasfile</B> director using MySQL, but it doesn't use the new
+       addresses. This it my director:
+<LI><A NAME="TOC135" HREF="FAQ.html#SEC135">Q0441</A>: I received a message with a Subject: line that contained a non-printing
+       character (a carriage return). This messed up my filter file. Is there a
+       way to get round it?
+<LI><A NAME="TOC136" HREF="FAQ.html#SEC136">Q0442</A>: My users' mailboxes are distributed between several servers according to
+       the first letter of the user name. All the servers receive incoming mail
+       at random. I would like to have the same configuration file for all the
+       servers, which does local delivery for the mailboxes it holds, and sends
+       other addresses to the correct other server. Is this possible?
+<LI><A NAME="TOC137" HREF="FAQ.html#SEC137">Q0443</A>: I want to search for '$' in the subject line, but I can't seem to get
+       the syntax. The obvious choice, '\$' doesn't work. Any help?
+<LI><A NAME="TOC138" HREF="FAQ.html#SEC138">Q0444</A>: One of the things I want to set up is for <B>anything@onedomain</B> to forward
+       to <B><B>anything@anotherdomain.</B></B> I tried adding <B>$local_part@anotherdomain</B> to
+       my aliases but it did not expand - it sent it to that literal address.
+<LI><A NAME="TOC139" HREF="FAQ.html#SEC139">Q0445</A>: How can I have an address looked up in two different alias files, and
+       delivered to all the addresses that are found?
+<LI><A NAME="TOC140" HREF="FAQ.html#SEC140">Q0446</A>: I've converted from Sendmail, and I notice that Exim doesn't make use
+       of the "owner-" entries in my alias file to change the sender address in
+       outgoing messages to a mailing list.
 </UL>
 
 </UL>
 
-<A NAME="TOC115" HREF="FAQ.html#SEC115">5. DELIVERY</A>
+<A NAME="TOC141" HREF="FAQ.html#SEC141">5. DELIVERY</A>
 <UL>
 <UL>
-<LI><A NAME="TOC116" HREF="FAQ.html#SEC116">Q0501</A>: What does the error "Neither the <I>xxx</I> director nor the <I>yyy</I> transport set
+<LI><A NAME="TOC142" HREF="FAQ.html#SEC142">Q0501</A>: What does the error "Neither the <I>xxx</I> director nor the <I>yyy</I> transport set
        a uid for local delivery of..." mean?
        a uid for local delivery of..." mean?
-<LI><A NAME="TOC117" HREF="FAQ.html#SEC117">Q0502</A>: Exim won't deliver to a host with no MX record.
-<LI><A NAME="TOC118" HREF="FAQ.html#SEC118">Q0503</A>: How should Exim be configured when it is acting as a temporary storage
+<LI><A NAME="TOC143" HREF="FAQ.html#SEC143">Q0502</A>: Exim won't deliver to a host with no MX record.
+<LI><A NAME="TOC144" HREF="FAQ.html#SEC144">Q0503</A>: How should Exim be configured when it is acting as a temporary storage
        system for a domain on a dial-up host?
        system for a domain on a dial-up host?
-<LI><A NAME="TOC119" HREF="FAQ.html#SEC119">Q0504</A>: I would like to deliver mail addressed to a given domain normally, but
+<LI><A NAME="TOC145" HREF="FAQ.html#SEC145">Q0504</A>: I would like to deliver mail addressed to a given domain normally, but
        also to generate a message to the envelope sender.
        also to generate a message to the envelope sender.
-<LI><A NAME="TOC120" HREF="FAQ.html#SEC120">Q0505</A>: Exim keeps crashing with segmentation errors (signal 11 or 139) during
+<LI><A NAME="TOC146" HREF="FAQ.html#SEC146">Q0505</A>: Exim keeps crashing with segmentation errors (signal 11 or 139) during
        delivery. This seems to happen when it is about to contact a remote
        host or when a delivery is deferred.
        delivery. This seems to happen when it is about to contact a remote
        host or when a delivery is deferred.
-<LI><A NAME="TOC121" HREF="FAQ.html#SEC121">Q0506</A>: Whenever Exim tries to do a local delivery, it gives a permission denied
+<LI><A NAME="TOC147" HREF="FAQ.html#SEC147">Q0506</A>: Whenever Exim tries to do a local delivery, it gives a permission denied
        error for the <B>.forward</B> file, like this:
        error for the <B>.forward</B> file, like this:
-<LI><A NAME="TOC122" HREF="FAQ.html#SEC122">Q0507</A>: I have installed Exim, but now I can't mail to root any more. Why is
+<LI><A NAME="TOC148" HREF="FAQ.html#SEC148">Q0507</A>: I have installed Exim, but now I can't mail to root any more. Why is
        this?
        this?
-<LI><A NAME="TOC123" HREF="FAQ.html#SEC123">Q0508</A>: How can I stop undeliverable bounce messages (e.g. to routeable, but
+<LI><A NAME="TOC149" HREF="FAQ.html#SEC149">Q0508</A>: How can I stop undeliverable bounce messages (e.g. to routeable, but
        undeliverable, spammer senders) from clogging up the queue for days?
        undeliverable, spammer senders) from clogging up the queue for days?
-<LI><A NAME="TOC124" HREF="FAQ.html#SEC124">Q0509</A>: How can mails that are being routed through directors other than
+<LI><A NAME="TOC150" HREF="FAQ.html#SEC150">Q0509</A>: How can mails that are being routed through directors other than
        localuser be delivered under the uid of the recipient?
        localuser be delivered under the uid of the recipient?
-<LI><A NAME="TOC125" HREF="FAQ.html#SEC125">Q0510</A>: I want to use MMDF-style mailboxes. How can I get Exim to append the
+<LI><A NAME="TOC151" HREF="FAQ.html#SEC151">Q0510</A>: I want to use MMDF-style mailboxes. How can I get Exim to append the
        ctrl-A characters that separate indvidual emails?
        ctrl-A characters that separate indvidual emails?
-<LI><A NAME="TOC126" HREF="FAQ.html#SEC126">Q0511</A>: I have an ISDN connection and would like a way of running the queue
+<LI><A NAME="TOC152" HREF="FAQ.html#SEC152">Q0511</A>: I have an ISDN connection and would like a way of running the queue
        automatically when it is up.
        automatically when it is up.
-<LI><A NAME="TOC127" HREF="FAQ.html#SEC127">Q0512</A>: If a user's mailbox is over quota, is there a way for me to set it up so
+<LI><A NAME="TOC153" HREF="FAQ.html#SEC153">Q0512</A>: If a user's mailbox is over quota, is there a way for me to set it up so
        that the mail bounces to the sender and is NOT stored in the mail queue?
        that the mail bounces to the sender and is NOT stored in the mail queue?
-<LI><A NAME="TOC128" HREF="FAQ.html#SEC128">Q0513</A>: I'm using tmail to do local deliveries, but when I turned on the
+<LI><A NAME="TOC154" HREF="FAQ.html#SEC154">Q0513</A>: I'm using tmail to do local deliveries, but when I turned on the
        <TT>use_crlf</TT> option on the pipe transport (tmail prefers \r\n terminations)
        message bodies started to vanish.
        <TT>use_crlf</TT> option on the pipe transport (tmail prefers \r\n terminations)
        message bodies started to vanish.
-<LI><A NAME="TOC129" HREF="FAQ.html#SEC129">Q0514</A>: What does the message "Unable to get root to set uid and gid
+<LI><A NAME="TOC155" HREF="FAQ.html#SEC155">Q0514</A>: What does the message "Unable to get root to set uid and gid
        for local delivery to <I>xxx</I>: uid=<I>yyy</I> euid=<I>zzz</I>" mean?
        for local delivery to <I>xxx</I>: uid=<I>yyy</I> euid=<I>zzz</I>" mean?
-<LI><A NAME="TOC130" HREF="FAQ.html#SEC130">Q0515</A>: I upgraded to 2.04 and now my Envelope-To: header for my virtual domains
+<LI><A NAME="TOC156" HREF="FAQ.html#SEC156">Q0515</A>: I upgraded to 2.04 and now my Envelope-To: header for my virtual domains
        is gone. Any idea how to get it back?
        is gone. Any idea how to get it back?
-<LI><A NAME="TOC131" HREF="FAQ.html#SEC131">Q0516</A>: The Exim log records the arrival of a message, and then "Completed",
+<LI><A NAME="TOC157" HREF="FAQ.html#SEC157">Q0516</A>: The Exim log records the arrival of a message, and then "Completed",
        without logging any deliveries. What's going on?
        without logging any deliveries. What's going on?
-<LI><A NAME="TOC132" HREF="FAQ.html#SEC132">Q0517</A>: When I activate "return receipt" for example in Netscape Mailbox
+<LI><A NAME="TOC158" HREF="FAQ.html#SEC158">Q0517</A>: When I activate "return receipt" for example in Netscape Mailbox
        sending options, then I get an error message from Exim... something
        like "not supported". Can I activate delivery confirmations?
        sending options, then I get an error message from Exim... something
        like "not supported". Can I activate delivery confirmations?
-<LI><A NAME="TOC133" HREF="FAQ.html#SEC133">Q0518</A>: When I dial up to collect mail from my ISP, only the first 10 messages
+<LI><A NAME="TOC159" HREF="FAQ.html#SEC159">Q0518</A>: When I dial up to collect mail from my ISP, only the first 10 messages
        get delivered immediately; the remainder just sit on the queue until a
        queue runner process finds them.
        get delivered immediately; the remainder just sit on the queue until a
        queue runner process finds them.
-<LI><A NAME="TOC134" HREF="FAQ.html#SEC134">Q0519</A>: My ISP's mail server is rejecting bounce messages from Exim, complaining
+<LI><A NAME="TOC160" HREF="FAQ.html#SEC160">Q0519</A>: My ISP's mail server is rejecting bounce messages from Exim, complaining
        that they have no sender. The SMTP trace does indeed show that the
        sender address is "&#60;&#62;". Why is the Sender on the bounce message empty?
        that they have no sender. The SMTP trace does indeed show that the
        sender address is "&#60;&#62;". Why is the Sender on the bounce message empty?
-<LI><A NAME="TOC135" HREF="FAQ.html#SEC135">Q0520</A>: What does the message "retry time not reached [for any host]" on the log
+<LI><A NAME="TOC161" HREF="FAQ.html#SEC161">Q0520</A>: What does the message "retry time not reached [for any host]" on the log
        mean? Why won't Exim try to deliver the message?
        mean? Why won't Exim try to deliver the message?
-<LI><A NAME="TOC136" HREF="FAQ.html#SEC136">Q0521</A>: RFC 1985 specifies that the SMTP command "ETRN <B>host.domain"</B> causes all
+<LI><A NAME="TOC162" HREF="FAQ.html#SEC162">Q0521</A>: RFC 1985 specifies that the SMTP command "ETRN <B>host.domain"</B> causes all
        mail queued for that host, no matter what domain it's for, to be
        dequeued. Why doesn't Exim support this?
        mail queued for that host, no matter what domain it's for, to be
        dequeued. Why doesn't Exim support this?
-<LI><A NAME="TOC137" HREF="FAQ.html#SEC137">Q0522</A>: If email has been deferred to a member on a local mailing list
+<LI><A NAME="TOC163" HREF="FAQ.html#SEC163">Q0522</A>: If email has been deferred to a member on a local mailing list
        (implemented through forward files), and one of our ETRN clients is on
        this mailing list, the <B>-R</B> won't "flush" the mailing list message for
        that client.
        (implemented through forward files), and one of our ETRN clients is on
        this mailing list, the <B>-R</B> won't "flush" the mailing list message for
        that client.
-<LI><A NAME="TOC138" HREF="FAQ.html#SEC138">Q0523</A>: Exim seems to be sending the same message twice, according to the log,
+<LI><A NAME="TOC164" HREF="FAQ.html#SEC164">Q0523</A>: Exim seems to be sending the same message twice, according to the log,
        although there is a difference in capitalization of the local part of
        the address.
        although there is a difference in capitalization of the local part of
        the address.
-<LI><A NAME="TOC139" HREF="FAQ.html#SEC139">Q0524</A>: How can I force the next retry time for a host to be now?
-<LI><A NAME="TOC140" HREF="FAQ.html#SEC140">Q0525</A>: I set up "|/bin/grep Subject|/usr/bin/smbclient <B>-M</B> &#60;netbiosname&#62;" as an
+<LI><A NAME="TOC165" HREF="FAQ.html#SEC165">Q0524</A>: How can I force the next retry time for a host to be now?
+<LI><A NAME="TOC166" HREF="FAQ.html#SEC166">Q0525</A>: I set up "|/bin/grep Subject|/usr/bin/smbclient <B>-M</B> &#60;netbiosname&#62;" as an
        alias but it doesn't work.
        alias but it doesn't work.
-<LI><A NAME="TOC141" HREF="FAQ.html#SEC141">Q0526</A>: Why does the pipe transport add a line starting with "&#62;From" to
+<LI><A NAME="TOC167" HREF="FAQ.html#SEC167">Q0526</A>: Why does the pipe transport add a line starting with "&#62;From" to
        messages?
        messages?
-<LI><A NAME="TOC142" HREF="FAQ.html#SEC142">Q0527</A>: I have set <TT>fallback_hosts</TT> on my smtp transport, but after the error
+<LI><A NAME="TOC168" HREF="FAQ.html#SEC168">Q0527</A>: I have set <TT>fallback_hosts</TT> on my smtp transport, but after the error
        <B>"sem@chat.ru</B> cannot be resolved at this time" Exim isn't using them.
        <B>"sem@chat.ru</B> cannot be resolved at this time" Exim isn't using them.
-<LI><A NAME="TOC143" HREF="FAQ.html#SEC143">Q0528</A>: After the holidays my ISP has always hundreds of e-mails waiting for me.
+<LI><A NAME="TOC169" HREF="FAQ.html#SEC169">Q0528</A>: After the holidays my ISP has always hundreds of e-mails waiting for me.
        These are forced down Exim's throat in one go. Exim spawns a lot of
        kids, but is there some limit to the number of processes it creates?
        These are forced down Exim's throat in one go. Exim spawns a lot of
        kids, but is there some limit to the number of processes it creates?
-<LI><A NAME="TOC144" HREF="FAQ.html#SEC144">Q0529</A>: When a message in the queue got to 12h old, Exim wrote 'retry timeout
+<LI><A NAME="TOC170" HREF="FAQ.html#SEC170">Q0529</A>: When a message in the queue got to 12h old, Exim wrote 'retry timeout
        exceeded' and removed <EM>all</EM> messages in the queue to this host - even
        recent messages. How I can avoid this behaviour? I only want to remove
        messages that have exceeded the maximum retry time.
        exceeded' and removed <EM>all</EM> messages in the queue to this host - even
        recent messages. How I can avoid this behaviour? I only want to remove
        messages that have exceeded the maximum retry time.
-<LI><A NAME="TOC145" HREF="FAQ.html#SEC145">Q0530</A>: Can Exim add a Content-Length: header to messages it delivers?
-<LI><A NAME="TOC146" HREF="FAQ.html#SEC146">Q0531</A>: Exim seems to be trying to deliver a message every 10 minutes, though
+<LI><A NAME="TOC171" HREF="FAQ.html#SEC171">Q0530</A>: Can Exim add a Content-Length: header to messages it delivers?
+<LI><A NAME="TOC172" HREF="FAQ.html#SEC172">Q0531</A>: Exim seems to be trying to deliver a message every 10 minutes, though
        the retry rules specify longer times after a while, because it is
        writing a log entry every time, like this:
        the retry rules specify longer times after a while, because it is
        writing a log entry every time, like this:
-<LI><A NAME="TOC147" HREF="FAQ.html#SEC147">Q0532</A>: I am trying to set exim up to have a automatic failover if it sees that
+<LI><A NAME="TOC173" HREF="FAQ.html#SEC173">Q0532</A>: I am trying to set exim up to have a automatic failover if it sees that
        the system that it is sending all mail to is down.
        the system that it is sending all mail to is down.
-<LI><A NAME="TOC148" HREF="FAQ.html#SEC148">Q0533</A>: I can't get Exim to deliver over NFS. I get the error "fcntl() failed:
+<LI><A NAME="TOC174" HREF="FAQ.html#SEC174">Q0533</A>: I can't get Exim to deliver over NFS. I get the error "fcntl() failed:
        No locks available", though the lock daemon is running on the NFS server
        and other hosts are able to access it.
        No locks available", though the lock daemon is running on the NFS server
        and other hosts are able to access it.
-<LI><A NAME="TOC149" HREF="FAQ.html#SEC149">Q0534</A>: Why does Exim bounce messages without even attempting delivery, giving
+<LI><A NAME="TOC175" HREF="FAQ.html#SEC175">Q0534</A>: Why does Exim bounce messages without even attempting delivery, giving
        the error "retry time not reached for any host after a long failure
        period"?
        the error "retry time not reached for any host after a long failure
        period"?
-<LI><A NAME="TOC150" HREF="FAQ.html#SEC150">Q0535</A>: My <B>.forward</B> file is "|/usr/bin/procmail <B>-f-"</B> and mail gets delivered,
+<LI><A NAME="TOC176" HREF="FAQ.html#SEC176">Q0535</A>: My <B>.forward</B> file is "|/usr/bin/procmail <B>-f-"</B> and mail gets delivered,
        but there was a bounce to the sender, sending him the output of procmail.
        How can I prevent this?
        but there was a bounce to the sender, sending him the output of procmail.
        How can I prevent this?
+<LI><A NAME="TOC177" HREF="FAQ.html#SEC177">Q0536</A>: Can I write an ordinary file when I running a perl script as a transport
+       filter for <TT>remote_smtp</TT> and <TT>address_pipe</TT> transports?
+<LI><A NAME="TOC178" HREF="FAQ.html#SEC178">Q0537</A>: I have some mails on my queues that are sticking around longer than
+       the retry time indicates they should. They are all getting frozen
+       because some remote admin has set their MX record to 127.0.0.1.
+<LI><A NAME="TOC179" HREF="FAQ.html#SEC179">Q0538</A>: My <B>/var/spool/mail</B> has grown drastically. Is there any possibility of
+       using two files in <B>exim.cfg</B> ?
+<LI><A NAME="TOC180" HREF="FAQ.html#SEC180">Q0539</A>: Sendmail has a program called smrsh that restricts what binaries
+       can be run from sendmail aliases. Is there someting like this in Exim ?
+<LI><A NAME="TOC181" HREF="FAQ.html#SEC181">Q0540</A>: I wish to have large emails go out one at a time.
 </UL>
 
 </UL>
 
-<A NAME="TOC151" HREF="FAQ.html#SEC151">6. UUCP</A>
+<A NAME="TOC182" HREF="FAQ.html#SEC182">6. UUCP</A>
 <UL>
 <UL>
-<LI><A NAME="TOC152" HREF="FAQ.html#SEC152">Q0601</A>: The MX records for some UUCP domains point to my local host. How do I
+<LI><A NAME="TOC183" HREF="FAQ.html#SEC183">Q0601</A>: The MX records for some UUCP domains point to my local host. How do I
        get it to pass the messages on to UUCP?
        get it to pass the messages on to UUCP?
-<LI><A NAME="TOC153" HREF="FAQ.html#SEC153">Q0602</A>: How can I get Exim to handle "bang path" addresses?
-<LI><A NAME="TOC154" HREF="FAQ.html#SEC154">Q0603</A>: We see something strange on our system in regards to mail comming in via
+<LI><A NAME="TOC184" HREF="FAQ.html#SEC184">Q0602</A>: How can I get Exim to handle "bang path" addresses?
+<LI><A NAME="TOC185" HREF="FAQ.html#SEC185">Q0603</A>: We see something strange on our system in regards to mail comming in via
        rmail from a UUCP link. The sender is being set to mailmaster instead of
        the real sender, and a Sender: header is being added to the message.
 </UL>
 
        rmail from a UUCP link. The sender is being set to mailmaster instead of
        the real sender, and a Sender: header is being added to the message.
 </UL>
 
-<A NAME="TOC155" HREF="FAQ.html#SEC155">7. PERFORMANCE</A>
+<A NAME="TOC186" HREF="FAQ.html#SEC186">7. PERFORMANCE</A>
 <UL>
 <UL>
-<LI><A NAME="TOC156" HREF="FAQ.html#SEC156">Q0701</A>: I'm running a large mail server. Should I set <TT>split_spool_directory</TT> to
+<LI><A NAME="TOC187" HREF="FAQ.html#SEC187">Q0701</A>: I'm running a large mail server. Should I set <TT>split_spool_directory</TT> to
        improve performance?
        improve performance?
-<LI><A NAME="TOC157" HREF="FAQ.html#SEC157">Q0702</A>: How well does Exim scale?
-<LI><A NAME="TOC158" HREF="FAQ.html#SEC158">Q0703</A>: We have a large password file. Can Exim use alternative lookups during
+<LI><A NAME="TOC188" HREF="FAQ.html#SEC188">Q0702</A>: How well does Exim scale?
+<LI><A NAME="TOC189" HREF="FAQ.html#SEC189">Q0703</A>: We have a large password file. Can Exim use alternative lookups during
        delivery to speed things up?
        delivery to speed things up?
+<LI><A NAME="TOC190" HREF="FAQ.html#SEC190">Q0704</A>: I just wondered if it might be helpful to put the hints database on a
+       RAM disk during regular operation. Did anybody try that yet?
 </UL>
 
 </UL>
 
-<A NAME="TOC159" HREF="FAQ.html#SEC159">8. POLICY CONTROLS</A>
+<A NAME="TOC191" HREF="FAQ.html#SEC191">8. POLICY CONTROLS</A>
 <UL>
 <UL>
-<LI><A NAME="TOC160" HREF="FAQ.html#SEC160">Q0801</A>: How do I block unwanted messages from outside my host?
-<LI><A NAME="TOC161" HREF="FAQ.html#SEC161">Q0802</A>: I don't want to block spam entirely; how can I inspect each message
+<LI><A NAME="TOC192" HREF="FAQ.html#SEC192">Q0801</A>: How do I block unwanted messages from outside my host?
+<LI><A NAME="TOC193" HREF="FAQ.html#SEC193">Q0802</A>: I don't want to block spam entirely; how can I inspect each message
        before deciding whether to deliver it or not?
        before deciding whether to deliver it or not?
-<LI><A NAME="TOC162" HREF="FAQ.html#SEC162">Q0803</A>: How can I test that my spam blocks are working?
-<LI><A NAME="TOC163" HREF="FAQ.html#SEC163">Q0804</A>: How can I test that Exim is correctly configured to use the Realtime
+<LI><A NAME="TOC194" HREF="FAQ.html#SEC194">Q0803</A>: How can I test that my spam blocks are working?
+<LI><A NAME="TOC195" HREF="FAQ.html#SEC195">Q0804</A>: How can I test that Exim is correctly configured to use the Realtime
        Blocking List (RBL)?
        Blocking List (RBL)?
-<LI><A NAME="TOC164" HREF="FAQ.html#SEC164">Q0805</A>: How can I use <B>tcpwrappers</B> in conjunction with Exim?
-<LI><A NAME="TOC165" HREF="FAQ.html#SEC165">Q0806</A>: How can I get POP-auth-before-relay support in Exim?
-<LI><A NAME="TOC166" HREF="FAQ.html#SEC166">Q0807</A>: I have one or two cases where my machine correctly rejects messages, but
+<LI><A NAME="TOC196" HREF="FAQ.html#SEC196">Q0805</A>: How can I use <B>tcpwrappers</B> in conjunction with Exim?
+<LI><A NAME="TOC197" HREF="FAQ.html#SEC197">Q0806</A>: How can I get POP-auth-before-relay support in Exim?
+<LI><A NAME="TOC198" HREF="FAQ.html#SEC198">Q0807</A>: I have one or two cases where my machine correctly rejects messages, but
        the remote machine is quite persistent, and keeps trying over and over.
        the remote machine is quite persistent, and keeps trying over and over.
-<LI><A NAME="TOC167" HREF="FAQ.html#SEC167">Q0808</A>: I am seeing the error "no valid sender in message headers: return path
+<LI><A NAME="TOC199" HREF="FAQ.html#SEC199">Q0808</A>: I am seeing the error "no valid sender in message headers: return path
        is &#60;&#62;" in the reject log. Isn't &#60;&#62; a valid return path for error
        messages?
        is &#60;&#62;" in the reject log. Isn't &#60;&#62; a valid return path for error
        messages?
-<LI><A NAME="TOC168" HREF="FAQ.html#SEC168">Q0809</A>: Let's say that we want to run a mail server that does not care if you
+<LI><A NAME="TOC200" HREF="FAQ.html#SEC200">Q0809</A>: Let's say that we want to run a mail server that does not care if you
        have proper reverse DNS. If you include <TT>host_reject</TT> lines in your
        config file, Exim will always reject connections from such hosts. How
        can this be avoided?
        have proper reverse DNS. If you include <TT>host_reject</TT> lines in your
        config file, Exim will always reject connections from such hosts. How
        can this be avoided?
-<LI><A NAME="TOC169" HREF="FAQ.html#SEC169">Q0810</A>: Is there a way to prevent lookups in the RBL for local hosts?
-<LI><A NAME="TOC170" HREF="FAQ.html#SEC170">Q0811</A>: How can I set up the <TT>sender_reject</TT> option in my config file so I can
+<LI><A NAME="TOC201" HREF="FAQ.html#SEC201">Q0810</A>: Is there a way to prevent lookups in the RBL for local hosts?
+<LI><A NAME="TOC202" HREF="FAQ.html#SEC202">Q0811</A>: How can I set up the <TT>sender_reject</TT> option in my config file so I can
        reject mail by matching regular expressions?
        reject mail by matching regular expressions?
-<LI><A NAME="TOC171" HREF="FAQ.html#SEC171">Q0812</A>: Normally <TT>sender_reject_recipients</TT> works fine, but addresses that have
+<LI><A NAME="TOC203" HREF="FAQ.html#SEC203">Q0812</A>: Normally <TT>sender_reject_recipients</TT> works fine, but addresses that have
        some uppercase letters in them seem to come through.
        some uppercase letters in them seem to come through.
-<LI><A NAME="TOC172" HREF="FAQ.html#SEC172">Q0813</A>: I want to accept some sender addresses, even though they do not verify.
+<LI><A NAME="TOC204" HREF="FAQ.html#SEC204">Q0813</A>: I want to accept some sender addresses, even though they do not verify.
        There doesn't seem to be an option for verification exceptions, so how
        can I do this?
        There doesn't seem to be an option for verification exceptions, so how
        can I do this?
-<LI><A NAME="TOC173" HREF="FAQ.html#SEC173">Q0814</A>: We are being plagued by forged mail coming from a number of different
+<LI><A NAME="TOC205" HREF="FAQ.html#SEC205">Q0814</A>: We are being plagued by forged mail coming from a number of different
        hosts and sender addresses. The guy however leaves a fingerprint. The
        first received line always contains 'Received: from baby'. What is the
        best suggested way for eliminiating him from our systems?
        hosts and sender addresses. The guy however leaves a fingerprint. The
        first received line always contains 'Received: from baby'. What is the
        best suggested way for eliminiating him from our systems?
-<LI><A NAME="TOC174" HREF="FAQ.html#SEC174">Q0815</A>: I have set <TT>host_accept_relay</TT>, but my host still refuses to relay from
+<LI><A NAME="TOC206" HREF="FAQ.html#SEC206">Q0815</A>: I have set <TT>host_accept_relay</TT>, but my host still refuses to relay from
        matching hosts.
        matching hosts.
-<LI><A NAME="TOC175" HREF="FAQ.html#SEC175">Q0816</A>: How can I run customized verification checks on incoming addresses?
-<LI><A NAME="TOC176" HREF="FAQ.html#SEC176">Q0817</A>: Does Exim apply RBL checks to error messages, those with an envelope
+<LI><A NAME="TOC207" HREF="FAQ.html#SEC207">Q0816</A>: How can I run customized verification checks on incoming addresses?
+<LI><A NAME="TOC208" HREF="FAQ.html#SEC208">Q0817</A>: Does Exim apply RBL checks to error messages, those with an envelope
        sender of "&#60;&#62;" ?
        sender of "&#60;&#62;" ?
-<LI><A NAME="TOC177" HREF="FAQ.html#SEC177">Q0818</A>: I want to be able to set up a list, similar to <TT>sender_reject_recipients</TT>,
+<LI><A NAME="TOC209" HREF="FAQ.html#SEC209">Q0818</A>: I want to be able to set up a list, similar to <TT>sender_reject_recipients</TT>,
        but with a user-defined message. I believe I have to use a director for
        this.
        but with a user-defined message. I believe I have to use a director for
        this.
-<LI><A NAME="TOC178" HREF="FAQ.html#SEC178">Q0819</A>: I want to reject certain sender-recipient combinations, with a specific
+<LI><A NAME="TOC210" HREF="FAQ.html#SEC210">Q0819</A>: I want to reject certain sender-recipient combinations, with a specific
        message for each such combination.
        message for each such combination.
-<LI><A NAME="TOC179" HREF="FAQ.html#SEC179">Q0820</A>: Will Exim allow me to create a file of regexs and match incoming
+<LI><A NAME="TOC211" HREF="FAQ.html#SEC211">Q0820</A>: Will Exim allow me to create a file of regexs and match incoming
        external email to the list - and if a match is found file the offending
        message into a special location? Also is it possible to make exim only
        filter parts of an incoming email - e.g. ignore large MIME attachments
        for example and only process text/plain?
        external email to the list - and if a match is found file the offending
        message into a special location? Also is it possible to make exim only
        filter parts of an incoming email - e.g. ignore large MIME attachments
        for example and only process text/plain?
-<LI><A NAME="TOC180" HREF="FAQ.html#SEC180">Q0821</A>: I've hacked sendmail to make an ioctl call at the time of the SMTP RCPT
+<LI><A NAME="TOC212" HREF="FAQ.html#SEC212">Q0821</A>: I've hacked sendmail to make an ioctl call at the time of the SMTP RCPT
        command, to check if a user has exceeded their email quota. If they have
        I issue a temporary failure and a message - can I do this with Exim?
        command, to check if a user has exceeded their email quota. If they have
        I issue a temporary failure and a message - can I do this with Exim?
-<LI><A NAME="TOC181" HREF="FAQ.html#SEC181">Q0822</A>: I'm looking for a rule to reject special unknown recipients.
-<LI><A NAME="TOC182" HREF="FAQ.html#SEC182">Q0823</A>: I'd like to pass all messages through a virus-scanning system before
+<LI><A NAME="TOC213" HREF="FAQ.html#SEC213">Q0822</A>: I'm looking for a rule to reject special unknown recipients.
+<LI><A NAME="TOC214" HREF="FAQ.html#SEC214">Q0823</A>: I'd like to pass all messages through a virus-scanning system before
        delivery. Can Exim do this?
        delivery. Can Exim do this?
-<LI><A NAME="TOC183" HREF="FAQ.html#SEC183">Q0824</A>: How can I accomplish this: a message sent from any host must either be
+<LI><A NAME="TOC215" HREF="FAQ.html#SEC215">Q0824</A>: How can I accomplish this: a message sent from any host must either be
        sending to a domain in a list (a dbm file) or the sender's address
        domain must be in the list.
        sending to a domain in a list (a dbm file) or the sender's address
        domain must be in the list.
-<LI><A NAME="TOC184" HREF="FAQ.html#SEC184">Q0825</A>: I've set <TT>relay_domains</TT> and <TT>sender_address_relay</TT>, but if <B>user@mydomain</B>
+<LI><A NAME="TOC216" HREF="FAQ.html#SEC216">Q0825</A>: I've set <TT>relay_domains</TT> and <TT>sender_address_relay</TT>, but if <B>user@mydomain</B>
        tries sending to an arbitrary domain, Exim rejects it.
        tries sending to an arbitrary domain, Exim rejects it.
-<LI><A NAME="TOC185" HREF="FAQ.html#SEC185">Q0826</A>: I set <TT>sender_reject_recipients</TT>, but Exim is not rejecting those
+<LI><A NAME="TOC217" HREF="FAQ.html#SEC217">Q0826</A>: I set <TT>sender_reject_recipients</TT>, but Exim is not rejecting those
        recipients.
        recipients.
-<LI><A NAME="TOC186" HREF="FAQ.html#SEC186">Q0827</A>: I can't find an option to deny "RCPT TO:" addresses.
-<LI><A NAME="TOC187" HREF="FAQ.html#SEC187">Q0828</A>: My problem is that Exim replaces <B>$local_part</B> with an empty string in the
+<LI><A NAME="TOC218" HREF="FAQ.html#SEC218">Q0827</A>: I can't find an option to deny "RCPT TO:" addresses.
+<LI><A NAME="TOC219" HREF="FAQ.html#SEC219">Q0828</A>: My problem is that Exim replaces <B>$local_part</B> with an empty string in the
        system filtering. What's wrong or what did I miss?
        system filtering. What's wrong or what did I miss?
-<LI><A NAME="TOC188" HREF="FAQ.html#SEC188">Q0829</A>: Using <B>$recipients</B> in a system filter gives me another problem: how can
+<LI><A NAME="TOC220" HREF="FAQ.html#SEC220">Q0829</A>: Using <B>$recipients</B> in a system filter gives me another problem: how can
        I do a string lookup if <B>$recipients</B> is a list of addresses?
        I do a string lookup if <B>$recipients</B> is a list of addresses?
-<LI><A NAME="TOC189" HREF="FAQ.html#SEC189">Q0830</A>: Is there a way to configure Exim to reject mail to a certain local host?
-<LI><A NAME="TOC190" HREF="FAQ.html#SEC190">Q0831</A>: Exim sometimes rejects messages with bad senders after the DATA and
+<LI><A NAME="TOC221" HREF="FAQ.html#SEC221">Q0830</A>: Is there a way to configure Exim to reject mail to a certain local host?
+<LI><A NAME="TOC222" HREF="FAQ.html#SEC222">Q0831</A>: Exim sometimes rejects messages with bad senders after the DATA and
        sometimes after the MAIL command. What is the difference?
        sometimes after the MAIL command. What is the difference?
-<LI><A NAME="TOC191" HREF="FAQ.html#SEC191">Q0832</A>: How can I get Exim to remove attachments from messages?
-<LI><A NAME="TOC192" HREF="FAQ.html#SEC192">Q0833</A>: I ran a relay test against my host and it failed with an address
+<LI><A NAME="TOC223" HREF="FAQ.html#SEC223">Q0832</A>: How can I get Exim to remove attachments from messages?
+<LI><A NAME="TOC224" HREF="FAQ.html#SEC224">Q0833</A>: I ran a relay test against my host and it failed with an address
        containing a %, though I don't have <TT>percent_hack_domains</TT> set. Is Exim
        broken? This is what the tester said:
        containing a %, though I don't have <TT>percent_hack_domains</TT> set. Is Exim
        broken? This is what the tester said:
+<LI><A NAME="TOC225" HREF="FAQ.html#SEC225">Q0834</A>: How can I arrange for each user to have a file listing the only sender
+       addresses from which she will accept mail? I want to do this so my
+       family members don't get any spam (or other inappropriate mail).
+<LI><A NAME="TOC226" HREF="FAQ.html#SEC226">Q0835</A>: I have the POP-auth-before-relay support in, but I see that Exim still
+       does an RBL lookup before checking the POP authorisation file. How can I
+       prevent it doing an RBL check if the caller is authorized by virtue of a
+       recent POP authentication?
+<LI><A NAME="TOC227" HREF="FAQ.html#SEC227">Q0836</A>: When using Nessus on a system that runs exim, a number of security
+       issues are raised. Nessus complains that exim answers to EXPN and/or
+       VRFY; sometimes it even complains that exim allows relaying.
+<LI><A NAME="TOC228" HREF="FAQ.html#SEC228">Q0837</A>: Could anyone points me to right rules to prevent sending/receiving
+       messages to/for domains which have one MX to localhost or only have
+       address 127.0.0.1 ?
+<LI><A NAME="TOC229" HREF="FAQ.html#SEC229">Q0838</A>: How can I lock out domains that do not have any MX records?
+<LI><A NAME="TOC230" HREF="FAQ.html#SEC230">Q0839</A>: I would like to have a per-user limit for the maximum size of messages
+       that can be sent.
+<LI><A NAME="TOC231" HREF="FAQ.html#SEC231">Q0840</A>: I have set up a DBM (or cdb, or lsearch, or MySQL or whatever) file
+       containing a list of IP addresses for the hosts I want to allow to
+       relay, but when I set <TT>host_accept_relay</TT> to do a lookup on that data, it
+       doesn't work.
 </UL>
 
 </UL>
 
-<A NAME="TOC193" HREF="FAQ.html#SEC193">9. MAJORDOMO</A>
+<A NAME="TOC232" HREF="FAQ.html#SEC232">9. MAJORDOMO</A>
 <UL>
 <UL>
-<LI><A NAME="TOC194" HREF="FAQ.html#SEC194">Q0901</A>: How do I set up Majordomo to work with Exim?
-<LI><A NAME="TOC195" HREF="FAQ.html#SEC195">Q0902</A>: I have set <B>$mailer</B> in <B>majordomo.cf,</B> but it still isn't setting the
+<LI><A NAME="TOC233" HREF="FAQ.html#SEC233">Q0901</A>: How do I set up Majordomo to work with Exim?
+<LI><A NAME="TOC234" HREF="FAQ.html#SEC234">Q0902</A>: I have set <B>$mailer</B> in <B>majordomo.cf,</B> but it still isn't setting the
        sender correctly in the messages it sends.
        sender correctly in the messages it sends.
-<LI><A NAME="TOC196" HREF="FAQ.html#SEC196">Q0903</A>: I'm trying to set up majordomo, but I'm getting a "wrong mode" error
+<LI><A NAME="TOC235" HREF="FAQ.html#SEC235">Q0903</A>: I'm trying to set up majordomo, but I'm getting a "wrong mode" error
        when I try to send it mail. The panic log entry reads:
        when I try to send it mail. The panic log entry reads:
-<LI><A NAME="TOC197" HREF="FAQ.html#SEC197">Q0904</A>: I'm getting return code 9 from <B><B>/home/majordomo/majordomo-1.94.4/wrapper</B></B>
+<LI><A NAME="TOC236" HREF="FAQ.html#SEC236">Q0904</A>: I'm getting return code 9 from <B><B>/home/majordomo/majordomo-1.94.4/wrapper</B></B>
        when it is passed a message from Exim.
        when it is passed a message from Exim.
+<LI><A NAME="TOC237" HREF="FAQ.html#SEC237">Q0905</A>: Exim is complaining about an invalid command line when Majordomo tries
+       to send it a message for delivery.
 </UL>
 
 </UL>
 
-<A NAME="TOC198" HREF="FAQ.html#SEC198">10. REWRITING ADDRESSES</A>
+<A NAME="TOC238" HREF="FAQ.html#SEC238">10. REWRITING ADDRESSES</A>
 <UL>
 <UL>
-<LI><A NAME="TOC199" HREF="FAQ.html#SEC199">Q1001</A>: How can I get Exim to strip the hostname from the sender's address?
-<LI><A NAME="TOC200" HREF="FAQ.html#SEC200">Q1002</A>: I have Exim configured to remove the hostname portion of the domain on
+<LI><A NAME="TOC239" HREF="FAQ.html#SEC239">Q1001</A>: How can I get Exim to strip the hostname from the sender's address?
+<LI><A NAME="TOC240" HREF="FAQ.html#SEC240">Q1002</A>: I have Exim configured to remove the hostname portion of the domain on
        outgoing mail, and yet the hostname is present when the mail gets
        delivered.
        outgoing mail, and yet the hostname is present when the mail gets
        delivered.
-<LI><A NAME="TOC201" HREF="FAQ.html#SEC201">Q1003</A>: I want to rewrite local addresses in mail that goes to the outside
+<LI><A NAME="TOC241" HREF="FAQ.html#SEC241">Q1003</A>: I want to rewrite local addresses in mail that goes to the outside
        world, but not for messages that remain within the local intranet.
        world, but not for messages that remain within the local intranet.
-<LI><A NAME="TOC202" HREF="FAQ.html#SEC202">Q1004</A>: I'm using this rewriting rule to change login names into "friendly"
+<LI><A NAME="TOC242" HREF="FAQ.html#SEC242">Q1004</A>: I'm using this rewriting rule to change login names into "friendly"
        names, but if mail comes in for an upper case login name, it doesn't
        get rewritten.
        names, but if mail comes in for an upper case login name, it doesn't
        get rewritten.
-<LI><A NAME="TOC203" HREF="FAQ.html#SEC203">Q1005</A>: Is it possible to completely fail a message if the rewrite rules fail?
-<LI><A NAME="TOC204" HREF="FAQ.html#SEC204">Q1006</A>: I'm using <B>$domain</B> as the key for a lookup in a rewriting rule, but its
+<LI><A NAME="TOC243" HREF="FAQ.html#SEC243">Q1005</A>: Is it possible to completely fail a message if the rewrite rules fail?
+<LI><A NAME="TOC244" HREF="FAQ.html#SEC244">Q1006</A>: I'm using <B>$domain</B> as the key for a lookup in a rewriting rule, but its
        contents are not being lowercased. Aren't domains supposed to be handled
        caselessly?
        contents are not being lowercased. Aren't domains supposed to be handled
        caselessly?
-<LI><A NAME="TOC205" HREF="FAQ.html#SEC205">Q1007</A>: I want to rewrite local sender addresses depending on the domain of the
+<LI><A NAME="TOC245" HREF="FAQ.html#SEC245">Q1007</A>: I want to rewrite local sender addresses depending on the domain of the
        recipient.
 </UL>
 
        recipient.
 </UL>
 
-<A NAME="TOC206" HREF="FAQ.html#SEC206">11. HEADERS</A>
+<A NAME="TOC246" HREF="FAQ.html#SEC246">11. HEADERS</A>
 <UL>
 <UL>
-<LI><A NAME="TOC207" HREF="FAQ.html#SEC207">Q1101</A>: I would like add some custom headers to selected outgoing mail based on
+<LI><A NAME="TOC247" HREF="FAQ.html#SEC247">Q1101</A>: I would like add some custom headers to selected outgoing mail based on
        a specific domain and the subject line.
        a specific domain and the subject line.
-<LI><A NAME="TOC208" HREF="FAQ.html#SEC208">Q1102</A>: Is it possible to have Exim add a header to only certain <TT>local_parts</TT> of
+<LI><A NAME="TOC248" HREF="FAQ.html#SEC248">Q1102</A>: Is it possible to have Exim add a header to only certain <TT>local_parts</TT> of
        outgoing mail?
        outgoing mail?
-<LI><A NAME="TOC209" HREF="FAQ.html#SEC209">Q1103</A>: How can I remove some part of the Received: header?
-<LI><A NAME="TOC210" HREF="FAQ.html#SEC210">Q1104</A>: How I can insert the PGP header line using exim filters?
+<LI><A NAME="TOC249" HREF="FAQ.html#SEC249">Q1103</A>: How can I remove some part of the Received: header?
+<LI><A NAME="TOC250" HREF="FAQ.html#SEC250">Q1104</A>: How I can insert the PGP header line using exim filters?
+<LI><A NAME="TOC251" HREF="FAQ.html#SEC251">Q1105</A>: I know I can use a system filter to replace certain headers in messages,
+       but how can I add text to existing headers? I want to add [SPAM] to
+       the subject line of messages that appear to be spam.
 </UL>
 
 </UL>
 
-<A NAME="TOC211" HREF="FAQ.html#SEC211">12. FETCHMAIL</A>
+<A NAME="TOC252" HREF="FAQ.html#SEC252">12. FETCHMAIL</A>
 <UL>
 <UL>
-<LI><A NAME="TOC212" HREF="FAQ.html#SEC212">Q1201</A>: When I run fetchmail, I get the error "SMTP listener doesn't like
+<LI><A NAME="TOC253" HREF="FAQ.html#SEC253">Q1201</A>: When I run fetchmail, I get the error "SMTP listener doesn't like
        recipient address <B><I>xxx</I>@localhost</B>".
        recipient address <B><I>xxx</I>@localhost</B>".
-<LI><A NAME="TOC213" HREF="FAQ.html#SEC213">Q1202</A>: Fetchmail is passing on bounce messages to Exim with the sender address
+<LI><A NAME="TOC254" HREF="FAQ.html#SEC254">Q1202</A>: Fetchmail is passing on bounce messages to Exim with the sender address
        set to <B><B>&#60;@some.domain</B>&#62;</B> which causes Exim to complain, because there is no
        local part.
        set to <B><B>&#60;@some.domain</B>&#62;</B> which causes Exim to complain, because there is no
        local part.
-<LI><A NAME="TOC214" HREF="FAQ.html#SEC214">Q1203</A>: I'm currently using Exim with fetchmail and I'd like to use the RBL on
+<LI><A NAME="TOC255" HREF="FAQ.html#SEC255">Q1203</A>: I'm currently using Exim with fetchmail and I'd like to use the RBL on
        Exim, but will it work? Do I need to configure fetchmail any particular
        way? As far as Exim knows, all mail is coming from 127.0.01. Will it
        check the source address against RBL? Or will it check the From: header?
 </UL>
 
        Exim, but will it work? Do I need to configure fetchmail any particular
        way? As far as Exim knows, all mail is coming from 127.0.01. Will it
        check the source address against RBL? Or will it check the From: header?
 </UL>
 
-<A NAME="TOC215" HREF="FAQ.html#SEC215">13. PERL</A>
+<A NAME="TOC256" HREF="FAQ.html#SEC256">13. PERL</A>
 <UL>
 <UL>
-<LI><A NAME="TOC216" HREF="FAQ.html#SEC216">Q1301</A>: Exim built with Perl support exits with the error message <B>"./exim:</B> can't
+<LI><A NAME="TOC257" HREF="FAQ.html#SEC257">Q1301</A>: Exim built with Perl support exits with the error message <B>"./exim:</B> can't
        load library <B>'libperl.so'".</B>
        load library <B>'libperl.so'".</B>
-<LI><A NAME="TOC217" HREF="FAQ.html#SEC217">Q1302</A>: Exim built with Perl support exits with several error messages of the
+<LI><A NAME="TOC258" HREF="FAQ.html#SEC258">Q1302</A>: Exim built with Perl support exits with several error messages of the
        form "undefined reference to `PL_stack_sp'".
 </UL>
 
        form "undefined reference to `PL_stack_sp'".
 </UL>
 
-<A NAME="TOC218" HREF="FAQ.html#SEC218">14. DIAL-UP</A>
+<A NAME="TOC259" HREF="FAQ.html#SEC259">14. DIAL-UP</A>
 <UL>
 <UL>
-<LI><A NAME="TOC219" HREF="FAQ.html#SEC219">Q1401</A>: How can I arrange for mail to other hosts on my local network to be
+<LI><A NAME="TOC260" HREF="FAQ.html#SEC260">Q1401</A>: How can I arrange for mail to other hosts on my local network to be
        delivered when I'm not connected to the Internet?
        delivered when I'm not connected to the Internet?
-<LI><A NAME="TOC220" HREF="FAQ.html#SEC220">Q1402</A>: I have a dial-up machine, and I use the <TT>queue_smtp_domains</TT> option so
+<LI><A NAME="TOC261" HREF="FAQ.html#SEC261">Q1402</A>: I have a dial-up machine, and I use the <TT>queue_smtp_domains</TT> option so
        that remote mail only goes out when I do a queue run. However, any email
        I send with an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15
        minutes saying 'retry time exceeded', and all addresses are affected.
        that remote mail only goes out when I do a queue run. However, any email
        I send with an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15
        minutes saying 'retry time exceeded', and all addresses are affected.
-<LI><A NAME="TOC221" HREF="FAQ.html#SEC221">Q1403</A>: How should Exim be configured when it is acting as a temporary storage
+<LI><A NAME="TOC262" HREF="FAQ.html#SEC262">Q1403</A>: How should Exim be configured when it is acting as a temporary storage
        system for a domain on a dial-up host?
        system for a domain on a dial-up host?
-<LI><A NAME="TOC222" HREF="FAQ.html#SEC222">Q1404</A>: I have <TT>queue_remote_domains</TT> or <TT>queue_smtp_domains</TT> set, and use <B>-qf</B> to
+<LI><A NAME="TOC263" HREF="FAQ.html#SEC263">Q1404</A>: I have <TT>queue_remote_domains</TT> or <TT>queue_smtp_domains</TT> set, and use <B>-qf</B> to
        force delivery of waiting mail when I dial in. How can I arrange for any
        new messages that arrive while I'm connected to be delivered immediately?
 </UL>
 
        force delivery of waiting mail when I dial in. How can I arrange for any
        new messages that arrive while I'm connected to be delivered immediately?
 </UL>
 
-<A NAME="TOC223" HREF="FAQ.html#SEC223">15. MODIFYING MESSAGE BODIES</A>
+<A NAME="TOC264" HREF="FAQ.html#SEC264">15. MODIFYING MESSAGE BODIES</A>
 <UL>
 <UL>
-<LI><A NAME="TOC224" HREF="FAQ.html#SEC224">Q1501</A>: How can I add a disclaimer or an advertisement to a message?
-<LI><A NAME="TOC225" HREF="FAQ.html#SEC225">Q1502</A>: How can I remove attachments from messages?
+<LI><A NAME="TOC265" HREF="FAQ.html#SEC265">Q1501</A>: How can I add a disclaimer or an advertisement to a message?
+<LI><A NAME="TOC266" HREF="FAQ.html#SEC266">Q1502</A>: How can I remove attachments from messages?
 </UL>
 
 </UL>
 
-<A NAME="TOC226" HREF="FAQ.html#SEC226">20. MILLENNIUM</A>
+<A NAME="TOC267" HREF="FAQ.html#SEC267">20. MILLENNIUM</A>
 <UL>
 <UL>
-<LI><A NAME="TOC227" HREF="FAQ.html#SEC227">Q2000</A>: Are there any Y2K issues with Exim?
+<LI><A NAME="TOC268" HREF="FAQ.html#SEC268">Q2000</A>: Are there any Y2K issues with Exim?
 </UL>
 
 </UL>
 
-<A NAME="TOC228" HREF="FAQ.html#SEC228">50. MISCELLANEOUS</A>
+<A NAME="TOC269" HREF="FAQ.html#SEC269">50. MISCELLANEOUS</A>
 <UL>
 <UL>
-<LI><A NAME="TOC229" HREF="FAQ.html#SEC229">Q5001</A>: What does the error "Unable to get interface configuration: 22 Invalid
+<LI><A NAME="TOC270" HREF="FAQ.html#SEC270">Q5001</A>: What does the error "Unable to get interface configuration: 22 Invalid
        argument" mean?
        argument" mean?
-<LI><A NAME="TOC230" HREF="FAQ.html#SEC230">Q5002</A>: How can I arrange to allow a limited set of users to perform a limited
+<LI><A NAME="TOC271" HREF="FAQ.html#SEC271">Q5002</A>: How can I arrange to allow a limited set of users to perform a limited
        set of Exim administration functions? I don't want to put them all in
        the exim group.
        set of Exim administration functions? I don't want to put them all in
        the exim group.
-<LI><A NAME="TOC231" HREF="FAQ.html#SEC231">Q5003</A>: How can I test for a message's size being greater or less than a given
+<LI><A NAME="TOC272" HREF="FAQ.html#SEC272">Q5003</A>: How can I test for a message's size being greater or less than a given
        value in an expansion string?
        value in an expansion string?
-<LI><A NAME="TOC232" HREF="FAQ.html#SEC232">Q5004</A>: I want to "tail" the Exim log, but I have a number of other logs I also
+<LI><A NAME="TOC273" HREF="FAQ.html#SEC273">Q5004</A>: I want to "tail" the Exim log, but I have a number of other logs I also
        want to "tail", and the number of tailing windows is getting to be a
        nuisance.
        want to "tail", and the number of tailing windows is getting to be a
        nuisance.
-<LI><A NAME="TOC233" HREF="FAQ.html#SEC233">Q5005</A>: I would like to have Exim log information written to syslog.
-<LI><A NAME="TOC234" HREF="FAQ.html#SEC234">Q5006</A>: What does the error "Failed to create spool file" mean?
-<LI><A NAME="TOC235" HREF="FAQ.html#SEC235">Q5007</A>: Exim keeps crashing with segmentation errors (signal 11 or 139).
-<LI><A NAME="TOC236" HREF="FAQ.html#SEC236">Q5008</A>: Exim's databases keep getting corrupted.
-<LI><A NAME="TOC237" HREF="FAQ.html#SEC237">Q5009</A>: I've been using an autoreply director to try and mimic a bounce message,
+<LI><A NAME="TOC274" HREF="FAQ.html#SEC274">Q5005</A>: I would like to have Exim log information written to syslog.
+<LI><A NAME="TOC275" HREF="FAQ.html#SEC275">Q5006</A>: What does the error "Failed to create spool file" mean?
+<LI><A NAME="TOC276" HREF="FAQ.html#SEC276">Q5007</A>: Exim keeps crashing with segmentation errors (signal 11 or 139).
+<LI><A NAME="TOC277" HREF="FAQ.html#SEC277">Q5008</A>: Exim's databases keep getting corrupted.
+<LI><A NAME="TOC278" HREF="FAQ.html#SEC278">Q5009</A>: I've been using an autoreply director to try and mimic a bounce message,
        but I can't get it to have an envelope from of &#60;&#62;.
        but I can't get it to have an envelope from of &#60;&#62;.
-<LI><A NAME="TOC238" HREF="FAQ.html#SEC238">Q5010</A>: I see entries in the log that mention two different IP addresses for the
+<LI><A NAME="TOC279" HREF="FAQ.html#SEC279">Q5010</A>: I see entries in the log that mention two different IP addresses for the
        same connection. Why is this? For example:
        same connection. Why is this? For example:
-<LI><A NAME="TOC239" HREF="FAQ.html#SEC239">Q5011</A>: How can I persuade Exim to accept ETRN commands without the leading
+<LI><A NAME="TOC280" HREF="FAQ.html#SEC280">Q5011</A>: How can I persuade Exim to accept ETRN commands without the leading
        # character?
        # character?
-<LI><A NAME="TOC240" HREF="FAQ.html#SEC240">Q5012</A>: I've recently noticed that emails I send with a Bcc: line are being
+<LI><A NAME="TOC281" HREF="FAQ.html#SEC281">Q5012</A>: I've recently noticed that emails I send with a Bcc: line are being
        delivered to their final destination with the Bcc: line still present.
        delivered to their final destination with the Bcc: line still present.
-<LI><A NAME="TOC241" HREF="FAQ.html#SEC241">Q5013</A>: I used gv <B>v3.5.8</B> (ghostview) to try printing <B>spec.ps.</B> After every
+<LI><A NAME="TOC282" HREF="FAQ.html#SEC282">Q5013</A>: I used gv <B>v3.5.8</B> (ghostview) to try printing <B>spec.ps.</B> After every
        printed page, the printer ejects a blank sheet. Is this something to do
        with using "letter" rather than A4 paper?
        printed page, the printer ejects a blank sheet. Is this something to do
        with using "letter" rather than A4 paper?
-<LI><A NAME="TOC242" HREF="FAQ.html#SEC242">Q5014</A>: I would like to have a separate queue per domain for hosts which dial
+<LI><A NAME="TOC283" HREF="FAQ.html#SEC283">Q5014</A>: I would like to have a separate queue per domain for hosts which dial
        in to collect their mail.
        in to collect their mail.
-<LI><A NAME="TOC243" HREF="FAQ.html#SEC243">Q5015</A>: A short time after I start Exim I see a &#60;defunct&#62; process. What is
-       causing this?
-<LI><A NAME="TOC244" HREF="FAQ.html#SEC244">Q5016</A>: On a reboot, or a restart of the mail system, I see the message "Mailer
+<LI><A NAME="TOC284" HREF="FAQ.html#SEC284">Q5015</A>: A short time after I start Exim I see a &#60;defunct&#62; zombie process. What
+       is causing this?
+<LI><A NAME="TOC285" HREF="FAQ.html#SEC285">Q5016</A>: On a reboot, or a restart of the mail system, I see the message "Mailer
        daemons: exim abandoned: unknown, malformed, or incomplete option
        <B>-bz</B> sendmail". What does this mean?
        daemons: exim abandoned: unknown, malformed, or incomplete option
        <B>-bz</B> sendmail". What does this mean?
-<LI><A NAME="TOC245" HREF="FAQ.html#SEC245">Q5017</A>: I would like to restrict e-mail usage for some users to the local
+<LI><A NAME="TOC286" HREF="FAQ.html#SEC286">Q5017</A>: I would like to restrict e-mail usage for some users to the local
        machine, ideally on a group basis.
        machine, ideally on a group basis.
-<LI><A NAME="TOC246" HREF="FAQ.html#SEC246">Q5018</A>: Whenever exim restarts it takes up to 3-5 minutes to start responding on
+<LI><A NAME="TOC287" HREF="FAQ.html#SEC287">Q5018</A>: Whenever exim restarts it takes up to 3-5 minutes to start responding on
        the SMTP port. Why is this?
        the SMTP port. Why is this?
-<LI><A NAME="TOC247" HREF="FAQ.html#SEC247">Q5019</A>: Why aren't there any man pages for Exim? I don't always carry my printed
+<LI><A NAME="TOC288" HREF="FAQ.html#SEC288">Q5019</A>: Why aren't there any man pages for Exim? I don't always carry my printed
        documentation.
        documentation.
-<LI><A NAME="TOC248" HREF="FAQ.html#SEC248">Q5020</A>: When I send a message using the <B>-t</B> command line option, Exim sends only
+<LI><A NAME="TOC289" HREF="FAQ.html#SEC289">Q5020</A>: When I send a message using the <B>-t</B> command line option, Exim sends only
        to the addresses within the message, not to those on the command line.
        to the addresses within the message, not to those on the command line.
-<LI><A NAME="TOC249" HREF="FAQ.html#SEC249">Q5021</A>: If I set up, for example, 
+<LI><A NAME="TOC290" HREF="FAQ.html#SEC290">Q5021</A>: If I set up, for example, 
           <TT>local_domains = *customer.com</TT>, then it matches
        <B>"customer.com"</B> and <B>"abc.customer.com"</B> as required, but it also matches
        <B>"noncustomer.com",</B> which is wrong. How can I get round this?
           <TT>local_domains = *customer.com</TT>, then it matches
        <B>"customer.com"</B> and <B>"abc.customer.com"</B> as required, but it also matches
        <B>"noncustomer.com",</B> which is wrong. How can I get round this?
-<LI><A NAME="TOC250" HREF="FAQ.html#SEC250">Q5022</A>: I want to match all local domains of the form <B>*.oyoy.org</B> but want a few
+<LI><A NAME="TOC291" HREF="FAQ.html#SEC291">Q5022</A>: I want to match all local domains of the form <B>*.oyoy.org</B> but want a few
        exceptions. For instance I don't want <B>foo.oyoy.org</B> or <B>bar.oyoy.org</B> to be
        treated as local. What is the best way to do this?
        exceptions. For instance I don't want <B>foo.oyoy.org</B> or <B>bar.oyoy.org</B> to be
        treated as local. What is the best way to do this?
-<LI><A NAME="TOC251" HREF="FAQ.html#SEC251">Q5023</A>: I can't seem to find a pre-built version of Exim anywhere. The machine
+<LI><A NAME="TOC292" HREF="FAQ.html#SEC292">Q5023</A>: I can't seem to find a pre-built version of Exim anywhere. The machine
        is a Sparc 5 running Solaris 2.6.
        is a Sparc 5 running Solaris 2.6.
-<LI><A NAME="TOC252" HREF="FAQ.html#SEC252">Q5024</A>: Is there a Windows NT version of Exim available?
-<LI><A NAME="TOC253" HREF="FAQ.html#SEC253">Q5025</A>: Does Exim support Delivery Status Notificaion (DSN), Message Status
+<LI><A NAME="TOC293" HREF="FAQ.html#SEC293">Q5024</A>: Is there a Windows NT version of Exim available?
+<LI><A NAME="TOC294" HREF="FAQ.html#SEC294">Q5025</A>: Does Exim support Delivery Status Notificaion (DSN), Message Status
        Notification (MSN), or any other form of delivery acknowledgement?
        Notification (MSN), or any other form of delivery acknowledgement?
-<LI><A NAME="TOC254" HREF="FAQ.html#SEC254">Q5026</A>: What does "Exim" stand for?
-<LI><A NAME="TOC255" HREF="FAQ.html#SEC255">Q5027</A>: What does the log message "no immediate delivery: more than 10 messages
+<LI><A NAME="TOC295" HREF="FAQ.html#SEC295">Q5026</A>: What does "Exim" stand for?
+<LI><A NAME="TOC296" HREF="FAQ.html#SEC296">Q5027</A>: What does the log message "no immediate delivery: more than 10 messages
        received in one connection" mean?
        received in one connection" mean?
-<LI><A NAME="TOC256" HREF="FAQ.html#SEC256">Q5028</A>: Although I haven't set <TT>check_spool_space</TT>, Exim is still checking the
+<LI><A NAME="TOC297" HREF="FAQ.html#SEC297">Q5028</A>: Although I haven't set <TT>check_spool_space</TT>, Exim is still checking the
        amount of space on the spool for incoming SMTP messages that use the
        SIZE option. Can I suppress this?
        amount of space on the spool for incoming SMTP messages that use the
        SIZE option. Can I suppress this?
-<LI><A NAME="TOC257" HREF="FAQ.html#SEC257">Q5029</A>: I just noticed log entries that start off "&#60;= &#60;&#62;". Am I correct in
+<LI><A NAME="TOC298" HREF="FAQ.html#SEC298">Q5029</A>: I just noticed log entries that start off "&#60;= &#60;&#62;". Am I correct in
        assuming that the "&#60;&#62;" indicates that the envelope did not contain any
        "From" data?
        assuming that the "&#60;&#62;" indicates that the envelope did not contain any
        "From" data?
-<LI><A NAME="TOC258" HREF="FAQ.html#SEC258">Q5030</A>: I've received a message which does not have my address in the To:
+<LI><A NAME="TOC299" HREF="FAQ.html#SEC299">Q5030</A>: I've received a message which does not have my address in the To:
        line. It is a spam message with the same address in both the From: and
        the To: headers. How can this happen, and why doesn't Exim reject it?
        line. It is a spam message with the same address in both the From: and
        the To: headers. How can this happen, and why doesn't Exim reject it?
-<LI><A NAME="TOC259" HREF="FAQ.html#SEC259">Q5031</A>: Can (or will) Exim ever handle a message delivery purely in memory,
+<LI><A NAME="TOC300" HREF="FAQ.html#SEC300">Q5031</A>: Can (or will) Exim ever handle a message delivery purely in memory,
        that is, it is handled without it ever hitting the disc?
        that is, it is handled without it ever hitting the disc?
-<LI><A NAME="TOC260" HREF="FAQ.html#SEC260">Q5032</A>: If I am using dbm files for data that Exim reads, can I rebuild them
+<LI><A NAME="TOC301" HREF="FAQ.html#SEC301">Q5032</A>: If I am using dbm files for data that Exim reads, can I rebuild them
        on the fly, or do I need to restart Exim every time I make a change?
        on the fly, or do I need to restart Exim every time I make a change?
-<LI><A NAME="TOC261" HREF="FAQ.html#SEC261">Q5033</A>: What are the main differences between using an Exim filter and using
+<LI><A NAME="TOC302" HREF="FAQ.html#SEC302">Q5033</A>: What are the main differences between using an Exim filter and using
        procmail?
        procmail?
-<LI><A NAME="TOC262" HREF="FAQ.html#SEC262">Q5034</A>: I need an option that is the opposite of <B>-bpa,</B> that is, a listing of
+<LI><A NAME="TOC303" HREF="FAQ.html#SEC303">Q5034</A>: I need an option that is the opposite of <B>-bpa,</B> that is, a listing of
        those addresses generated from a top-level address that have not yet
        been delivered.
        those addresses generated from a top-level address that have not yet
        been delivered.
-<LI><A NAME="TOC263" HREF="FAQ.html#SEC263">Q5035</A>: I am getting complaints from a customer who uses my EXIM server for
+<LI><A NAME="TOC304" HREF="FAQ.html#SEC304">Q5035</A>: I am getting complaints from a customer who uses my EXIM server for
        relaying that they are being blocked with a "Too many connections"
        error.
        relaying that they are being blocked with a "Too many connections"
        error.
-<LI><A NAME="TOC264" HREF="FAQ.html#SEC264">Q5036</A>: When I try "exim <B>-bf"</B> to test a system filter, I received the following
+<LI><A NAME="TOC305" HREF="FAQ.html#SEC305">Q5036</A>: When I try "exim <B>-bf"</B> to test a system filter, I received the following
        error message: "Filter error: unavailable filtering command "fail" near
        line 8 of filter file".
        error message: "Filter error: unavailable filtering command "fail" near
        line 8 of filter file".
-<LI><A NAME="TOC265" HREF="FAQ.html#SEC265">Q5037</A>: How can I make Exim receive incoming mail, queue it, but NOT attempt to
+<LI><A NAME="TOC306" HREF="FAQ.html#SEC306">Q5037</A>: How can I make Exim receive incoming mail, queue it, but NOT attempt to
        deliver it? I want to be in this state while moving some mailboxes.
        deliver it? I want to be in this state while moving some mailboxes.
-<LI><A NAME="TOC266" HREF="FAQ.html#SEC266">Q5038</A>: What does the rejection message "reject all recipients: 3 times bad
+<LI><A NAME="TOC307" HREF="FAQ.html#SEC307">Q5038</A>: What does the rejection message "reject all recipients: 3 times bad
        sender" mean?
        sender" mean?
-<LI><A NAME="TOC267" HREF="FAQ.html#SEC267">Q5039</A>: The menu in Eximon isn't working. It displays, but I can't select
+<LI><A NAME="TOC308" HREF="FAQ.html#SEC308">Q5039</A>: The menu in Eximon isn't working. It displays, but I can't select
        anything from it.
        anything from it.
-<LI><A NAME="TOC268" HREF="FAQ.html#SEC268">Q5040</A>: What does "ridiculously long message header" in an error report mean?
-<LI><A NAME="TOC269" HREF="FAQ.html#SEC269">Q5041</A>: What does Exim use for POP as a default?  Do I have to install anything
+<LI><A NAME="TOC309" HREF="FAQ.html#SEC309">Q5040</A>: What does "ridiculously long message header" in an error report mean?
+<LI><A NAME="TOC310" HREF="FAQ.html#SEC310">Q5041</A>: What does Exim use for POP as a default?  Do I have to install anything
        else?
        else?
+<LI><A NAME="TOC311" HREF="FAQ.html#SEC311">Q5042</A>: I see that Exim doesn't support SSL. Can it be made to work with stunnel?
+<LI><A NAME="TOC312" HREF="FAQ.html#SEC312">Q5043</A>: Is there an easy way of removing all queued messages at once in a safe
+       way?
+<LI><A NAME="TOC313" HREF="FAQ.html#SEC313">Q5044</A>: What is the best way to provide backup MX for clients?
+<LI><A NAME="TOC314" HREF="FAQ.html#SEC314">Q5045</A>: Why does Exim do "ident" callbacks by default? Isn't this just a waste
+       of resources? I've been told this is an ancient way of authentication.
+       Is it obsolete?
+<LI><A NAME="TOC315" HREF="FAQ.html#SEC315">Q5046</A>: I often have the problem that a message gets stuck in the mailq and I
+       want it to be bounced to a certain address.
+<LI><A NAME="TOC316" HREF="FAQ.html#SEC316">Q5047</A>: What precautions should I take when editing <B>exim.conf?</B>
+<LI><A NAME="TOC317" HREF="FAQ.html#SEC317">Q5048</A>: Is exim able to use RFC 2645, On-demand Mail Relay (ODMR)?
+<LI><A NAME="TOC318" HREF="FAQ.html#SEC318">Q5049</A>: I want to send every bounced mail that is received by my server, as
+       "headers-only" to the sysadmin. How can I do this?
+<LI><A NAME="TOC319" HREF="FAQ.html#SEC319">Q5050</A>: What POP3 daemon should I use with Exim? I want something with
+       configurable authentication mechanisms.
+<LI><A NAME="TOC320" HREF="FAQ.html#SEC320">Q5051</A>: Is there any way I can send bounces to the postmaster, and nobody else?
+       Basically, I want to recieve them, and I don't want the reply/from
+       person to get them. If I think they need it I will forward it myself.
 </UL>
 
 </UL>
 
-<A NAME="TOC270" HREF="FAQ.html#SEC270">93. HP-UX</A>
+<A NAME="TOC321" HREF="FAQ.html#SEC321">93. HP-UX</A>
 <UL>
 <UL>
-<LI><A NAME="TOC271" HREF="FAQ.html#SEC271">Q9301</A>: I'm trying to compile on an HP machine and I don't have gcc there. So I
+<LI><A NAME="TOC322" HREF="FAQ.html#SEC322">Q9301</A>: I'm trying to compile on an HP machine and I don't have gcc there. So I
        put <TT>CC=cc</TT> in the <B>Local/Makefile</B>, but I got this error:
 </UL>
 
        put <TT>CC=cc</TT> in the <B>Local/Makefile</B>, but I got this error:
 </UL>
 
-<A NAME="TOC272" HREF="FAQ.html#SEC272">94. BSDI</A>
+<A NAME="TOC323" HREF="FAQ.html#SEC323">94. BSDI</A>
 <UL>
 <UL>
-<LI><A NAME="TOC273" HREF="FAQ.html#SEC273">Q9401</A>: On BSDI 4.0, Exim built with Perl support exits with the error message
-       <B>"./exim:</B> can't load library <B>'libperl.so'".</B>
+<LI><A NAME="TOC324" HREF="FAQ.html#SEC324">Q9401</A>: On BSDI 4.0, Exim built with Perl support exits with the error message
 </UL>
 
 </UL>
 
-<A NAME="TOC274" HREF="FAQ.html#SEC274">95. IRIX</A>
+<A NAME="TOC325" HREF="FAQ.html#SEC325">95. IRIX</A>
 <UL>
 <UL>
-<LI><A NAME="TOC275" HREF="FAQ.html#SEC275">Q9501</A>: I'm running IRIX 6.2 with a number of alias IP addresses set up, but
+<LI><A NAME="TOC326" HREF="FAQ.html#SEC326">Q9501</A>: I'm running IRIX 6.2 with a number of alias IP addresses set up, but
        Exim doesn't seem to recognize them as local addresses.
        Exim doesn't seem to recognize them as local addresses.
-<LI><A NAME="TOC276" HREF="FAQ.html#SEC276">Q9502</A>: The IP addresses for incoming calls are all being given as
-       255.255.255.255.
+<LI><A NAME="TOC327" HREF="FAQ.html#SEC327">Q9502</A>: The IP addresses for incoming calls are all being given as
+       255.255.255.255 or 0.0.0.0.
 </UL>
 
 </UL>
 
-<A NAME="TOC277" HREF="FAQ.html#SEC277">96. LINUX</A>
+<A NAME="TOC328" HREF="FAQ.html#SEC328">96. LINUX</A>
 <UL>
 <UL>
-<LI><A NAME="TOC278" HREF="FAQ.html#SEC278">Q9601</A>: Exim is mysteriously crashing, usually when forking to send a delivery
+<LI><A NAME="TOC329" HREF="FAQ.html#SEC329">Q9601</A>: Exim is mysteriously crashing, usually when forking to send a delivery
        error message.
        error message.
-<LI><A NAME="TOC279" HREF="FAQ.html#SEC279">Q9602</A>: Exim has created a directory called <B>build-Linux-libc5-i386</B> but is
+<LI><A NAME="TOC330" HREF="FAQ.html#SEC330">Q9602</A>: Exim has created a directory called <B>build-Linux-libc5-i386</B> but is
        trying to reference <B>build-Linux-libc5-i386-linux</B> while building.
        trying to reference <B>build-Linux-libc5-i386-linux</B> while building.
-<LI><A NAME="TOC280" HREF="FAQ.html#SEC280">Q9603</A>: I want to use logrotate which is standard with <B>RH5.2</B> Linux to rotate
+<LI><A NAME="TOC331" HREF="FAQ.html#SEC331">Q9603</A>: I want to use logrotate which is standard with <B>RH5.2</B> Linux to rotate
        my mail logs. Anyone worked out the logrotate config file that will
        do this?
        my mail logs. Anyone worked out the logrotate config file that will
        do this?
-<LI><A NAME="TOC281" HREF="FAQ.html#SEC281">Q9604</A>: I'm seeing the message "<B>inetd</B>[334]: imap/tcp server failing (looping),
+<LI><A NAME="TOC332" HREF="FAQ.html#SEC332">Q9604</A>: I'm seeing the message "<B>inetd</B>[334]: imap/tcp server failing (looping),
        service terminated" on a RedHat 5.2 system, causing imap connections to
        be refused. The imapd in use is Washington Uni vers 12.250. Could this
        be anything to do with Exim?
        service terminated" on a RedHat 5.2 system, causing imap connections to
        be refused. The imapd in use is Washington Uni vers 12.250. Could this
        be anything to do with Exim?
-<LI><A NAME="TOC282" HREF="FAQ.html#SEC282">Q9605</A>: I get the "too many open files" error especially when a lot of messages
+<LI><A NAME="TOC333" HREF="FAQ.html#SEC333">Q9605</A>: I get the "too many open files" error especially when a lot of messages
        land for majordomo at the same time.
        land for majordomo at the same time.
-<LI><A NAME="TOC283" HREF="FAQ.html#SEC283">Q9606</A>: I'm having a problem with an Exim RPM.
+<LI><A NAME="TOC334" HREF="FAQ.html#SEC334">Q9606</A>: I'm having a problem with an Exim RPM.
+<LI><A NAME="TOC335" HREF="FAQ.html#SEC335">Q9607</A>: I installed debian 2.2 linux on a small 325mb 486 laptop. When I try
+       to test the Mail program, I get the following error: "Failed to open
+       configuration file <B><B>/etc/exim.conf</B>".</B>
+<LI><A NAME="TOC336" HREF="FAQ.html#SEC336">Q9608</A>: I'm getting the error <B>"db.h:</B> No such file or directory" when I try to
+       build Exim under RedHat 7.0.
 </UL>
 
 </UL>
 
-<A NAME="TOC284" HREF="FAQ.html#SEC284">97. SUN SYSTEMS</A>
+<A NAME="TOC337" HREF="FAQ.html#SEC337">97. SUN SYSTEMS</A>
 <UL>
 <UL>
-<LI><A NAME="TOC285" HREF="FAQ.html#SEC285">Q9701</A>: Exim builds fine with gcc on SunOS 4 but crashes inside <B>sscanf()</B>.
-<LI><A NAME="TOC286" HREF="FAQ.html#SEC286">Q9702</A>: How can I get rid of spurious ^M characters in messages sent from
+<LI><A NAME="TOC338" HREF="FAQ.html#SEC338">Q9701</A>: Exim builds fine with gcc on SunOS 4 but crashes inside <B>sscanf()</B>.
+<LI><A NAME="TOC339" HREF="FAQ.html#SEC339">Q9702</A>: How can I get rid of spurious ^M characters in messages sent from
        CDE <B>dtmail</B>?
        CDE <B>dtmail</B>?
-<LI><A NAME="TOC287" HREF="FAQ.html#SEC287">Q9703</A>: On SunOS 4 Exim crashes when looking up domains in the DNS that have
+<LI><A NAME="TOC340" HREF="FAQ.html#SEC340">Q9703</A>: On SunOS 4 Exim crashes when looking up domains in the DNS that have
        more than 10 A records.
        more than 10 A records.
-<LI><A NAME="TOC288" HREF="FAQ.html#SEC288">Q9704</A>: The menu in Eximon isn't working on my Sun system.
-<LI><A NAME="TOC289" HREF="FAQ.html#SEC289">Q9705</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
+<LI><A NAME="TOC341" HREF="FAQ.html#SEC341">Q9704</A>: The menu in Eximon isn't working on my Sun system.
+<LI><A NAME="TOC342" HREF="FAQ.html#SEC342">Q9705</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
        over a network.
        over a network.
-<LI><A NAME="TOC290" HREF="FAQ.html#SEC290">Q9706</A>: Exim has been crashing on my Solaris x86 system, apparently while
+<LI><A NAME="TOC343" HREF="FAQ.html#SEC343">Q9706</A>: Exim has been crashing on my Solaris x86 system, apparently while
        running DBM functions.
        running DBM functions.
-<LI><A NAME="TOC291" HREF="FAQ.html#SEC291">Q9707</A>: The exiwhat utility isn't working for me on a Solaris 2 system.
-<LI><A NAME="TOC292" HREF="FAQ.html#SEC292">Q9708</A>: How do I stop Sun's <B>dtcm</B> from hanging?
-<LI><A NAME="TOC293" HREF="FAQ.html#SEC293">Q9709</A>: I want Exim to use only the resolver (i.e. ignore <B>/etc/hosts</B>), but don't
+<LI><A NAME="TOC344" HREF="FAQ.html#SEC344">Q9707</A>: The exiwhat utility isn't working for me on a Solaris 2 system.
+<LI><A NAME="TOC345" HREF="FAQ.html#SEC345">Q9708</A>: How do I stop Sun's <B>dtcm</B> from hanging?
+<LI><A NAME="TOC346" HREF="FAQ.html#SEC346">Q9709</A>: I want Exim to use only the resolver (i.e. ignore <B>/etc/hosts</B>), but don't
        want to alter the <B>nsswitch.conf</B> file in Solaris 2.
 </UL>
 
        want to alter the <B>nsswitch.conf</B> file in Solaris 2.
 </UL>
 
-<A NAME="TOC294" HREF="FAQ.html#SEC294">98. COOKBOOK</A>
+<A NAME="TOC347" HREF="FAQ.html#SEC347">98. COOKBOOK</A>
 <UL>
 <UL>
-<LI><A NAME="TOC295" HREF="FAQ.html#SEC295">Q9801</A>: How do I configure Exim as part of TPC <B>(<A HREF="http://www.tpc.int">http://www.tpc.int</A>)?</B>
-<LI><A NAME="TOC296" HREF="FAQ.html#SEC296">Q9802</A>: How do I configure Exim so that it sends mail to the outside world only
+<LI><A NAME="TOC348" HREF="FAQ.html#SEC348">Q9801</A>: How do I configure Exim as part of TPC <B>(<A HREF="http://www.tpc.int">http://www.tpc.int</A>)?</B>
+<LI><A NAME="TOC349" HREF="FAQ.html#SEC349">Q9802</A>: How do I configure Exim so that it sends mail to the outside world only
        from a restricted list of our local users?
        from a restricted list of our local users?
-<LI><A NAME="TOC297" HREF="FAQ.html#SEC297">Q9803</A>: How do I configure Exim to run with SmartList?
-<LI><A NAME="TOC298" HREF="FAQ.html#SEC298">Q9804</A>: How do I configure Exim to minic PP's "tripnote" facility?
-<LI><A NAME="TOC299" HREF="FAQ.html#SEC299">Q9805</A>: How do I configure Exim to handle local parts with extensions?
-<LI><A NAME="TOC300" HREF="FAQ.html#SEC300">Q9806</A>: How do I configure Exim so that only a restricted list of users can
+<LI><A NAME="TOC350" HREF="FAQ.html#SEC350">Q9803</A>: How do I configure Exim to run with SmartList?
+<LI><A NAME="TOC351" HREF="FAQ.html#SEC351">Q9804</A>: How do I configure Exim to minic PP's "tripnote" facility?
+<LI><A NAME="TOC352" HREF="FAQ.html#SEC352">Q9805</A>: How do I configure Exim to handle local parts with extensions?
+<LI><A NAME="TOC353" HREF="FAQ.html#SEC353">Q9806</A>: How do I configure Exim so that only a restricted list of users can
        receive mail from external domains?
        receive mail from external domains?
-<LI><A NAME="TOC301" HREF="FAQ.html#SEC301">Q9807</A>: I have <B><B>someuser@mydomain.com</B></B> that I only want certain users to be able
+<LI><A NAME="TOC354" HREF="FAQ.html#SEC354">Q9807</A>: I have <B><B>someuser@mydomain.com</B></B> that I only want certain users to be able
        to mail to. How do I accomplish this?
        to mail to. How do I accomplish this?
-<LI><A NAME="TOC302" HREF="FAQ.html#SEC302">Q9808</A>: A site for which I provide secondary MX is down for some time. Is there
+<LI><A NAME="TOC355" HREF="FAQ.html#SEC355">Q9808</A>: A site for which I provide secondary MX is down for some time. Is there
        a way to run the queue for that destination separately from the main
        queue?
        a way to run the queue for that destination separately from the main
        queue?
-<LI><A NAME="TOC303" HREF="FAQ.html#SEC303">Q9809</A>: How do I implement VERP (Variable Envelope Return Paths) in Exim?
-<LI><A NAME="TOC304" HREF="FAQ.html#SEC304">Q9810</A>: I'd like to make a copy of all outgoing messages to a local mailbox. Is
+<LI><A NAME="TOC356" HREF="FAQ.html#SEC356">Q9809</A>: How do I implement VERP (Variable Envelope Return Paths) in Exim?
+<LI><A NAME="TOC357" HREF="FAQ.html#SEC357">Q9810</A>: I'd like to make a copy of all outgoing messages to a local mailbox. Is
        there a solution for this using an Exim filter?
        there a solution for this using an Exim filter?
-<LI><A NAME="TOC305" HREF="FAQ.html#SEC305">Q9811</A>: I want to make a copy of outgoing messages to a specific file for each
+<LI><A NAME="TOC358" HREF="FAQ.html#SEC358">Q9811</A>: I want to make a copy of outgoing messages to a specific file for each
        user in a specific directory, using a "save" command in a system filter.
        How can I arrange for Exim to write to these files under the correct
        UID/GID?
        user in a specific directory, using a "save" command in a system filter.
        How can I arrange for Exim to write to these files under the correct
        UID/GID?
-<LI><A NAME="TOC306" HREF="FAQ.html#SEC306">Q9812</A>: How can I keep an archive of all mail for some specific local email
+<LI><A NAME="TOC359" HREF="FAQ.html#SEC359">Q9812</A>: How can I keep an archive of all mail for some specific local email
        addresses?
        addresses?
-<LI><A NAME="TOC307" HREF="FAQ.html#SEC307">Q9813</A>: How can I configure Exim to provide a vacation message when there are
+<LI><A NAME="TOC360" HREF="FAQ.html#SEC360">Q9813</A>: How can I configure Exim to provide a vacation message when there are
        no local users on my mail hub?
        no local users on my mail hub?
-<LI><A NAME="TOC308" HREF="FAQ.html#SEC308">Q9814</A>: We want to be able to temporarily lock out a user by disabling the
+<LI><A NAME="TOC361" HREF="FAQ.html#SEC361">Q9814</A>: We want to be able to temporarily lock out a user by disabling the
        password and moving the home directory to another place. How can we
        arrange to reject mail for users in this state?
        password and moving the home directory to another place. How can we
        arrange to reject mail for users in this state?
-<LI><A NAME="TOC309" HREF="FAQ.html#SEC309">Q9815</A>: I need an alias, say "fakeaddress" that should receive a message,
+<LI><A NAME="TOC362" HREF="FAQ.html#SEC362">Q9815</A>: I need an alias, say "fakeaddress" that should receive a message,
        strip all reply-to: headers present, substitute another one pointing to
        "otheraddress" and forward a message to "realaddress".
        strip all reply-to: headers present, substitute another one pointing to
        "otheraddress" and forward a message to "realaddress".
-<LI><A NAME="TOC310" HREF="FAQ.html#SEC310">Q9816</A>: How can I set up Exim to work with Listar?
-<LI><A NAME="TOC311" HREF="FAQ.html#SEC311">Q9817</A>: I need to take copies of all incoming and outgoing mail for certain
+<LI><A NAME="TOC363" HREF="FAQ.html#SEC363">Q9816</A>: How can I set up Exim to work with Listar?
+<LI><A NAME="TOC364" HREF="FAQ.html#SEC364">Q9817</A>: I need to take copies of all incoming and outgoing mail for certain
        users. For each user there may be a different monitoring address.
        users. For each user there may be a different monitoring address.
-<LI><A NAME="TOC312" HREF="FAQ.html#SEC312">Q9818</A>: How can I add a disclaimer to the end of every message?
-<LI><A NAME="TOC313" HREF="FAQ.html#SEC313">Q9819</A>: I would like to append a simple advertisement text to all outgoing
+<LI><A NAME="TOC365" HREF="FAQ.html#SEC365">Q9818</A>: How can I add a disclaimer to the end of every message?
+<LI><A NAME="TOC366" HREF="FAQ.html#SEC366">Q9819</A>: I would like to append a simple advertisement text to all outgoing
        and local mails.
        and local mails.
-<LI><A NAME="TOC314" HREF="FAQ.html#SEC314">Q9820</A>: How can I configure Exim so that all mails adressed to
+<LI><A NAME="TOC367" HREF="FAQ.html#SEC367">Q9820</A>: How can I configure Exim so that all mails adressed to
        <B><B>something@username.domain.net</B></B> get delivered to <B>/var/spool/mail/username</B>?
        <B><B>something@username.domain.net</B></B> get delivered to <B>/var/spool/mail/username</B>?
-<LI><A NAME="TOC315" HREF="FAQ.html#SEC315">Q9821</A>: How do I get exim not to add a Sender: header to locally originated
+<LI><A NAME="TOC368" HREF="FAQ.html#SEC368">Q9821</A>: How do I get exim not to add a Sender: header to locally originated
        mail?
        mail?
-<LI><A NAME="TOC316" HREF="FAQ.html#SEC316">Q9822</A>: How can I get Exim to work with mailman?
-<LI><A NAME="TOC317" HREF="FAQ.html#SEC317">Q9823</A>: Is there any way to have messages sent to a specific local address
+<LI><A NAME="TOC369" HREF="FAQ.html#SEC369">Q9822</A>: How can I get Exim to work with mailman?
+<LI><A NAME="TOC370" HREF="FAQ.html#SEC370">Q9823</A>: Is there any way to have messages sent to a specific local address
        delayed by - say - 24 hours?
        delayed by - say - 24 hours?
+<LI><A NAME="TOC371" HREF="FAQ.html#SEC371">Q9824</A>: I have a mailing list exploder on one host, and three other hosts where
+       I want to do the actual deliveries from. How can I get Exim to split
+       a message into groups of recipients between the three hosts?
 </UL>
 
 </UL>
 
-<A NAME="TOC318" HREF="FAQ.html#SEC318">99. LIST OF SAMPLE CONFIGURATIONS</A>
+<A NAME="TOC372" HREF="FAQ.html#SEC372">99. LIST OF SAMPLE CONFIGURATIONS</A>
 <UL>
 </UL>
 <BR><H2><A NAME="SEC1" HREF="FAQ.html#TOC1">0. DEBUGGING
 <UL>
 </UL>
 <BR><H2><A NAME="SEC1" HREF="FAQ.html#TOC1">0. DEBUGGING
@@ -821,7 +945,7 @@ A0001: Exim should never crash. The author is always keen to know about
        Exim, delete any existing database files in the <B>spool/db</B> directory.
 
 </P>
        Exim, delete any existing database files in the <B>spool/db</B> directory.
 
 </P>
-<A NAME="SEC3" HREF="FAQ.html#TOC3">Q0002</A>: Exim is not working. What is wrong?
+<A NAME="SEC3" HREF="FAQ.html#TOC3">Q0002</A>: Exim is not working. What is wrong? How can I check what it is doing?
 
 
 <P>
 
 
 <P>
@@ -887,7 +1011,8 @@ A0002: Exactly how is it not working? Check the more specific questions in the
 A0003: The most common meaning of exit code 69 is "unavailable", and this often
        means that when Exim tried to exec the command <I>xxx</I>, it failed. One
        cause of this might be incorrect permissions on the file containing the
 A0003: The most common meaning of exit code 69 is "unavailable", and this often
        means that when Exim tried to exec the command <I>xxx</I>, it failed. One
        cause of this might be incorrect permissions on the file containing the
-       command.
+       command. See also 
+        <A HREF="FAQ.html#SEC34">Q0033</A>.
 
 </P>
 <A NAME="SEC5" HREF="FAQ.html#TOC5">Q0004</A>: My virtual domain setup isn't working. How can I debug it?
 
 </P>
 <A NAME="SEC5" HREF="FAQ.html#TOC5">Q0004</A>: My virtual domain setup isn't working. How can I debug it?
@@ -1150,6 +1275,12 @@ A0021: "Broken pipe" is the error you get on some OS when the far end just
        reason (e.g. it is too big) instead of sending a 5xx error code. Have
        you tried sending a small message to the same address?
 
        reason (e.g. it is too big) instead of sending a 5xx error code. Have
        you tried sending a small message to the same address?
 
+</P>
+<P>
+       It has been reported that some releases of Novell servers running NIMS
+       are unable to handle lines longer than 1024 characters, and just close
+       the connection. This is an example of this behaviour.
+
 </P>
 <P>
        (C) If the problem occurs right at the start of the mail, then it could
 </P>
 <P>
        (C) If the problem occurs right at the start of the mail, then it could
@@ -1162,7 +1293,7 @@ A0021: "Broken pipe" is the error you get on some OS when the far end just
        There have been problems when something in the middle of the network
        mishandles large packets due to IP tunnelling. In a tunnelled link, your
        IP datagrams gets wrapped in a larger datagram and sent over a network.
        There have been problems when something in the middle of the network
        mishandles large packets due to IP tunnelling. In a tunnelled link, your
        IP datagrams gets wrapped in a larger datagram and sent over a network.
-       This is how virtual private networks (VPNs), and some ISP's transit
+       This is how virtual private networks (VPNs), and some ISP transit
        circuits work. Since the datagrams going over the tunnel require a
        larger packet size, the tunnel needs a bigger maximum transfer unit
        (MTU) in the network handling the tunnelled packets. However, MTUs
        circuits work. Since the datagrams going over the tunnel require a
        larger packet size, the tunnel needs a bigger maximum transfer unit
        (MTU) in the network handling the tunnelled packets. However, MTUs
@@ -1316,6 +1447,10 @@ A0026: These kinds of delay are usually caused by some kind of network problem
        (3) <TT>host_lookup</TT> and any other options that require the remote host's
            name to be looked up from its IP address.
 
        (3) <TT>host_lookup</TT> and any other options that require the remote host's
            name to be looked up from its IP address.
 
+</P>
+<P>
+       (4) <TT>sender_verify_hosts_callback</TT> and <TT>sender_verify_callback_domains</TT>.
+
 </P>
 <P>
        You can use the <B>-bh</B> option to get more information about what is
 </P>
 <P>
        You can use the <B>-bh</B> option to get more information about what is
@@ -1423,7 +1558,7 @@ A0033: If your alias entry looks like this:
 
 <P>
 A0034: See 
 
 <P>
 A0034: See 
-        <A HREF="FAQ.html#SEC283">Q9606</A>.
+        <A HREF="FAQ.html#SEC334">Q9606</A>.
 
 </P>
 <A NAME="SEC36" HREF="FAQ.html#TOC36">Q0035</A>: What does the error "Spool file is locked" mean?
 
 </P>
 <A NAME="SEC36" HREF="FAQ.html#TOC36">Q0035</A>: What does the error "Spool file is locked" mean?
@@ -1445,10 +1580,187 @@ A0035: This is not an error[*]. All it means is that when an Exim delivery
        message has somehow got stuck.
 
 </P>
        message has somehow got stuck.
 
 </P>
-<BR><H2><A NAME="SEC37" HREF="FAQ.html#TOC37">1. BUILDING EXIM
+<A NAME="SEC37" HREF="FAQ.html#TOC37">Q0036</A>: Exim is reporting IP addresses as 0.0.0.0 or 255.255.255.255 instead of
+       their correct values. What's going on?
+
+
+<P>
+A0036: You are using a version of Exim built with gcc on an IRIX box.
+       See 
+        <A HREF="FAQ.html#SEC327">Q9502</A>.
+
+</P>
+<A NAME="SEC38" HREF="FAQ.html#TOC38">Q0037</A>: I can't seem to figure out why PAM support doesn't work correctly.
+
+
+<P>
+A0037: There is a problem using PAM on Linux with shadow passwords when the
+       calling program is not running as root. Exim is normally running as the
+       Exim user when authenticating a remote host. I don't know of an easy
+       resolution to this.
+
+</P>
+<A NAME="SEC39" HREF="FAQ.html#TOC39">Q0038</A>: I'm trying to use a query-style lookup for hosts that are allowed to
+       relay, but it is giving really weird errors.
+
+
+<P>
+A0038: Does your query contain a colon character? Remember that
+       <TT>host_accept_relay</TT> operates on a colon-separated list, so you need to
+       double any colons in the query. This applies even if the query is
+       defined as a macro.
+
+</P>
+<A NAME="SEC40" HREF="FAQ.html#TOC40">Q0039</A>: Exim is rejecting calls from hosts that have more than one IP address,
+       for no apparent reason.
+
+
+<P>
+A0039: You are using Solaris 7 or earlier, and have "nis dns files" in
+       <B><B>/etc/nsswitch.conf</B>.</B> Change this to "dns nis files" to avoid hitting Sun
+       bug 1154236 (a bad interaction between NIS and the DNS).
+
+</P>
+<A NAME="SEC41" HREF="FAQ.html#TOC41">Q0040</A>: Exim is failing to find the MySQL library, even though is it present
+       within <B><B>$LD_LIBRARY_PATH.</B></B> I'm getting this error:
+
+
+<PRE>
+         /usr/local/bin/exim: fatal: libmysqlclient.so.6: open failed:
+         No such file or directory</PRE>
+<P>
+A0040: Exim is suid, and LD_LIBRARY_PATH is ignored for suid binaries on a
+       Solaris (and other?) systems. What you should be doing is adding
+       <B>-R/local/lib/mysql</B> to the same place in the compilation that you added
+       <B><B>-L/local/lib/mysql.</B></B> This lets the binary know where to look without
+       needing a path variable.
+
+</P>
+<A NAME="SEC42" HREF="FAQ.html#TOC42">Q0041</A>: I have a collection of Exim processes that have been around for days,
+       and are apparently stuck while trying to deliver to remote hosts. This
+       is causing the messages they are handling to get stuck.
+
+
+<P>
+A0041: There appears to be a problem in the connect() function in some
+       operating systems, such that it does not time out as it should. Setting
+       <TT>connect_timeout</TT> in the smtp transport causes Exim to apply its own
+       timeout, and this seems to overcome this problem. In Exim 3.15 the
+       default was changed from zero (rely on system's timeout) to 5 minutes,
+       which is the value recommended in the RFCs.
+
+</P>
+<A NAME="SEC43" HREF="FAQ.html#TOC43">Q0042</A>: I have a message in the spool which couldn't be delivered because of a
+       timeout from the remote smtp server. When I try to deliver this message
+       in eximon, I get "Spool file is locked". How can I deliver the message?
+
+
+<P>
+A0042: Find the Exim proccess that is stuck, and kill it. You may be able to
+       use exiwhat to do this, but if it is stuck in connect() it may not
+       respond, and you will have to identify it some other way. Now read
+       
+        <A HREF="FAQ.html#SEC42">Q0041</A> about why this might have happened.
+
+</P>
+<P>
+       If you have a suitable debugger on your system, you may be able to find
+       out more information before killing the process. For example, if you
+       have gdb you can connect it to the process by running this command as
+       root:
+
+</P>
+<PRE>
+         gdb exim &#60;process-id&#62;</PRE>
+<P>
+       At the gdb prompt, give the "bt" (backtrace) command, to display the
+       stack contents. This should tell you the name of the function in which
+       the process is stuck. If this is connect(), then you do have the 
+        <A HREF="FAQ.html#SEC42">Q0041</A>
+       problem.
+
+</P>
+<A NAME="SEC44" HREF="FAQ.html#TOC44">Q0043</A>: What does the error "lookup of host <B>"xx<EM>.xx</EM><EM>.xx</EM>"</B> failed in <I>yyy</I>y router"
+       mean? Any suggestions to stop this these sort of errors from being
+       frozen would be muchly appreciated.
+
+
+<P>
+A0043: You configured a <B>domainlist</B> router to send the message to <B>xx<EM>.xx</EM><EM>.xx</EM>.</B> When
+       it tried to look up the IP address for that host, the lookup failed
+       with a permanent error. As this is a manual routing, this is a
+       considered to be a serious error which the postmaster needs to know
+       about (maybe you have a typo in your file), and there is little point
+       in keeping on trying. So it freezes the message.
+
+</P>
+<P>
+       1. Don't set up routes to non-existent hosts.
+
+</P>
+<P>
+       2. If you must set up routes to non-existent hosts, and don't want
+       freezing, set the <TT>host_find_failed</TT> option on the router to do something
+       other than freeze.
+
+</P>
+<A NAME="SEC45" HREF="FAQ.html#TOC45">Q0044</A>: My filter isn't working. How can I test it?
+
+
+<P>
+A0044: Use the <B>-bf</B> option (-bF for a system filter) to test the basic operation
+       of your filter. If you also turn on debugging at level 10 (-d10) it will
+       output information as the filter runs.
+
+</P>
+<A NAME="SEC46" HREF="FAQ.html#TOC46">Q0045</A>: Exim works fine on one host, but when I copied the binary to another
+       identical host, it stopped working (it could not resolve DNS names).
+
+
+<P>
+A0045: Is the new host running exactly the same operating system? Most
+       importantly, are the versions of the dynamically loaded libraries
+       (files with names like <B>libsocket.so.1)</B> the same on both systems? If not,
+       that is probably the cause of the problem. Either arrange for the
+       libraries to be the same, or rebuild Exim from source on the new host.
+
+</P>
+<A NAME="SEC47" HREF="FAQ.html#TOC47">Q0046</A>: Once in a while, a user will send a message and immediatly get a
+       response back "No Transport Provider"  If they choose "Send Again",
+       sometimes it works, sometimes it doesn't.
+
+
+<P>
+A0046: This problem has been seen on Debian Linux 2.1 systems. The best advice
+       seems to be to upgrade your server to a later Debian release and a later
+       Exim release, and maybe also upgrade the hardware.
+
+</P>
+<A NAME="SEC48" HREF="FAQ.html#TOC48">Q0047</A>: I set <TT>host_accept_relay</TT> to do a lookup in a file of IP addresses, but it
+       doesn't work.
+
+
+<P>
+A0047: Did you remember to put `net-' at the start of the the search type? If
+       you set something like this:
+
+</P>
+<PRE>
+         host_accept_relay = lsearch;/some/file</PRE>
+<P>
+       it searches the file for the host <EM>name</EM>. You need to set
+
+</P>
+<PRE>
+         host_accept_relay = net-lsearch;/some/file</PRE>
+<P>
+       to make it use the IP address as the key to the lookup.
+
+</P>
+<BR><H2><A NAME="SEC49" HREF="FAQ.html#TOC49">1. BUILDING EXIM
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC38" HREF="FAQ.html#TOC38">Q0101</A>: I get the error "conflicting types" when Exim is building the libident
+<A NAME="SEC50" HREF="FAQ.html#TOC50">Q0101</A>: I get the error "conflicting types" when Exim is building the libident
        library.
 
 
        library.
 
 
@@ -1464,7 +1776,7 @@ A0101: The problem is that libident assumes "struct timeval" refers to
        to be empty should be harmless.
 
 </P>
        to be empty should be harmless.
 
 </P>
-<A NAME="SEC39" HREF="FAQ.html#TOC39">Q0102</A>: When I ran <B>make</B> I got the error "undefined reference to <TT>dbopen</TT>".
+<A NAME="SEC51" HREF="FAQ.html#TOC51">Q0102</A>: When I ran <B>make</B> I got the error "undefined reference to <TT>dbopen</TT>".
 
 
 <P>
 
 
 <P>
@@ -1487,7 +1799,7 @@ A0102: Either:
            the libraries used in Caldera OpenLinux Base 1.1.
 
 </P>
            the libraries used in Caldera OpenLinux Base 1.1.
 
 </P>
-<A NAME="SEC40" HREF="FAQ.html#TOC40">Q0103</A>: I can't get Exim to compile with Berkeley DB version 2.x.
+<A NAME="SEC52" HREF="FAQ.html#TOC52">Q0103</A>: I can't get Exim to compile with Berkeley DB version 2.x.
 
 
 <P>
 
 
 <P>
@@ -1497,7 +1809,7 @@ A0103: Have you set <TT>USE_DB=yes</TT> in <B>Local/Makefile</B>? This causes Ex
        system.
 
 </P>
        system.
 
 </P>
-<A NAME="SEC41" HREF="FAQ.html#TOC41">Q0104</A>: I'm getting an "undefined symbol" error for <TT>hosts_ctl</TT> when I try to
+<A NAME="SEC53" HREF="FAQ.html#TOC53">Q0104</A>: I'm getting an "undefined symbol" error for <TT>hosts_ctl</TT> when I try to
        build Exim. (On some systems this error is "undefined reference to
        'hosts_ctl'".)
 
        build Exim. (On some systems this error is "undefined reference to
        'hosts_ctl'".)
 
@@ -1507,7 +1819,7 @@ A0104: You should either remove the definition of USE_TCP_WRAPPERS or add
        <B>-lwrap</B> to your <TT>EXTRALIBS</TT> setting in <B>Local/Makefile</B>.
 
 </P>
        <B>-lwrap</B> to your <TT>EXTRALIBS</TT> setting in <B>Local/Makefile</B>.
 
 </P>
-<A NAME="SEC42" HREF="FAQ.html#TOC42">Q0105</A>: I'm about to upgrade to a new Exim release. Do I need to ensure the
+<A NAME="SEC54" HREF="FAQ.html#TOC54">Q0105</A>: I'm about to upgrade to a new Exim release. Do I need to ensure the
        spool is empty, or take any other special action?
 
 
        spool is empty, or take any other special action?
 
 
@@ -1521,7 +1833,7 @@ A0105: If you are changing to release 3.00 or later from a release prior to
        install a new binary and then HUP the daemon if you are running one.
 
 </P>
        install a new binary and then HUP the daemon if you are running one.
 
 </P>
-<A NAME="SEC43" HREF="FAQ.html#TOC43">Q0106</A>: What does the error "<B>install-info</B>: command not found" mean?
+<A NAME="SEC55" HREF="FAQ.html#TOC55">Q0106</A>: What does the error "<B>install-info</B>: command not found" mean?
 
 
 <P>
 
 
 <P>
@@ -1532,7 +1844,7 @@ A0106: You have set INFO_DIRECTORY in your <B>Local/Makefile</B>, and Exim is tr
        the <B>install-info</B> command is not available.
 
 </P>
        the <B>install-info</B> command is not available.
 
 </P>
-<A NAME="SEC44" HREF="FAQ.html#TOC44">Q0107</A>: Exim doesn't seem to be recognizing my operating system type correctly,
+<A NAME="SEC56" HREF="FAQ.html#TOC56">Q0107</A>: Exim doesn't seem to be recognizing my operating system type correctly,
        and so is failing to build.
 
 
        and so is failing to build.
 
 
@@ -1558,7 +1870,7 @@ A0107: Run the command "scripts/os-type <B><B>-generic".</B></B> The output shou
        distribution, to avoid any wreckage left over from the failed attempt.
 
 </P>
        distribution, to avoid any wreckage left over from the failed attempt.
 
 </P>
-<A NAME="SEC45" HREF="FAQ.html#TOC45">Q0108</A>: I am getting an error "`exim' undeclared here" when I compile, in the
+<A NAME="SEC57" HREF="FAQ.html#TOC57">Q0108</A>: I am getting an error "`exim' undeclared here" when I compile, in the
        <B>globals.c</B> module.
 
 
        <B>globals.c</B> module.
 
 
@@ -1568,7 +1880,7 @@ A0108: You have set EXIM_UID = exim in your <B>Local/Makefile</B>. Unfortunately
        However, in the runtime configure file names are permitted.
 
 </P>
        However, in the runtime configure file names are permitted.
 
 </P>
-<A NAME="SEC46" HREF="FAQ.html#TOC46">Q0109</A>: Exim fails to build, complaining about the absence of the "killpg"
+<A NAME="SEC58" HREF="FAQ.html#TOC58">Q0109</A>: Exim fails to build, complaining about the absence of the "killpg"
        function.
 
 
        function.
 
 
@@ -1585,20 +1897,65 @@ A0109: This function should be present in all modern flavours of Unix. If you
        system, and is the output of the command "scripts/os-type <B><B>-generic".</B></B>
 
 </P>
        system, and is the output of the command "scripts/os-type <B><B>-generic".</B></B>
 
 </P>
-<A NAME="SEC47" HREF="FAQ.html#TOC47">Q0110</A>: I'm getting an unresolved symbol <TT>ldap_is_ldap_url</TT> when trying to build
+<A NAME="SEC59" HREF="FAQ.html#TOC59">Q0110</A>: I'm getting an unresolved symbol <TT>ldap_is_ldap_url</TT> when trying to build
        Exim.
 
 
 <P>
 A0110: You must have specified <TT>LOOKUP_LDAP=yes</TT> in the configuration. Have you
        remembered to set <B>-lldap</B> somewhere (e.g. in LOOKUP_LIBS)? You need that
        Exim.
 
 
 <P>
 A0110: You must have specified <TT>LOOKUP_LDAP=yes</TT> in the configuration. Have you
        remembered to set <B>-lldap</B> somewhere (e.g. in LOOKUP_LIBS)? You need that
-       in order to get the LDAP scanned when linking.
+       in order to get the LDAP library scanned when linking.
+
+</P>
+<A NAME="SEC60" HREF="FAQ.html#TOC60">Q0111</A>: I'm getting an unresolved symbol <TT>mysql_close</TT> when trying to build Exim.
+
+
+<P>
+A0111: You must have specified <TT>LOOKUP_MYSQL=yes</TT> in the configuration. Have you
+       remembered to set <B>-lmysqlclient</B> somewhere (e.g. in LOOKUP_LIBS)? You
+       need that in order to get the MySQL library scanned when linking.
+
+</P>
+<A NAME="SEC61" HREF="FAQ.html#TOC61">Q0112</A>: I'm trying to build Exim with PAM support. I have included <B>-lpam</B> in
+       <TT>EXTRALIBS</TT>, but I'm still getting a linking error:
+
+
+<PRE>
+         /lib/libpam.so: undefined reference to `dlerror'
+         /lib/libpam.so: undefined reference to `dlclose'
+         /lib/libpam.so: undefined reference to `dlopen'
+         /lib/libpam.so: undefined reference to `dlsym'</PRE>
+<P>
+A0112: Add <B>-ldl</B> to <TT>EXTRALIBS</TT>. In some systems these dynamic loading functions
+       are in their own library.
 
 </P>
 
 </P>
-<BR><H2><A NAME="SEC48" HREF="FAQ.html#TOC48">2. MAILBOX LOCKING
+<A NAME="SEC62" HREF="FAQ.html#TOC62">Q0113</A>: I'm getting the error <B>"db.h:</B> No such file or directory" when I try to
+       build Exim.
+
+
+<P>
+A0113: This problem has been seen with RedHat 7.0, but could also happen in
+       other environments. If your system is using the DB3 DBM library, you
+       need to install the DB3 development package in order to build Exim.
+       The package is called something like <B>db3-devel-3.1.14-16.i386.rpm</B> for
+       Linux systems, but you should check which version of DB3 you have
+       installed.
+
+</P>
+<A NAME="SEC63" HREF="FAQ.html#TOC63">Q0114</A>: I'm getting the error "/usr/bin/ld: cannot find <B>-ldb1"</B> when I try to
+       build Exim.
+
+
+<P>
+A0114: This is probably the same problem as 
+        <A HREF="FAQ.html#SEC62">Q0113</A>.
+
+</P>
+<BR><H2><A NAME="SEC64" HREF="FAQ.html#TOC64">2. MAILBOX LOCKING
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC49" HREF="FAQ.html#TOC49">Q0201</A>: Why do I get the error "Permission denied: creating lock file hitching
+<A NAME="SEC65" HREF="FAQ.html#TOC65">Q0201</A>: Why do I get the error "Permission denied: creating lock file hitching
        post" when Exim tries to do a local delivery?
 
 
        post" when Exim tries to do a local delivery?
 
 
@@ -1611,7 +1968,7 @@ A0201: Your configuration specifies that local mailboxes are all held in
 <PRE>
          local_delivery:
            driver = appendfile
 <PRE>
          local_delivery:
            driver = appendfile
-           file = /var/mail/${local_part}</PRE>
+           file = /var/mail/$local_part</PRE>
 <P>
        and the permissions on the directory probably look like this:
 
 <P>
        and the permissions on the directory probably look like this:
 
@@ -1665,28 +2022,31 @@ A0201: Your configuration specifies that local mailboxes are all held in
 </P>
 <P>
        If your problem involves mail to root, see also 
 </P>
 <P>
        If your problem involves mail to root, see also 
-        <A HREF="FAQ.html#SEC122">Q0507</A>.
+        <A HREF="FAQ.html#SEC148">Q0507</A>.
 
 </P>
 
 </P>
-<A NAME="SEC50" HREF="FAQ.html#TOC50">Q0202</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
+<A NAME="SEC66" HREF="FAQ.html#TOC66">Q0202</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
        over a network.
 
 
 <P>
 A0202: See 
        over a network.
 
 
 <P>
 A0202: See 
-        <A HREF="FAQ.html#SEC289">A9705</A> in the Sun-specific section below.
+        <A HREF="FAQ.html#SEC342">A9705</A> in the Sun-specific section below.
 
 </P>
 
 </P>
-<BR><H2><A NAME="SEC51" HREF="FAQ.html#TOC51">3. ROUTING
+<BR><H2><A NAME="SEC67" HREF="FAQ.html#TOC67">3. ROUTING
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC52" HREF="FAQ.html#TOC52">Q0301</A>: What does "lowest numbered MX record points to local host" mean?
+<A NAME="SEC68" HREF="FAQ.html#TOC68">Q0301</A>: What do "lowest numbered MX record points to local host" and "remote
+       host address is the local host" mean?
 
 
 <P>
 
 
 <P>
-A0301: It means exactly what it says. Exim has tried to route a domain that it
-       thinks is not local, and when it looked it up in the DNS, the lowest
-       numbered MX record pointed at the local host.
+A0301: They mean exactly what they say. Exim has tried to route a domain that
+       it thinks is not local, and when it looked it up in the DNS, either the
+       lowest numbered MX record pointed at the local host, or there were no
+       MX records, and the address record for the domain pointed to an IP
+       address that belongs to the local host.
 
 </P>
 <P>
 
 </P>
 <P>
@@ -1761,11 +2121,22 @@ A0301: It means exactly what it says. Exim has tried to route a domain that it
 </P>
 <P>
        (C) If neither (A) nor (B) is the case, then the lowest numbered MX
 </P>
 <P>
        (C) If neither (A) nor (B) is the case, then the lowest numbered MX
-           record for the domain should not be pointing to your host. You
-           should arrange to get the DNS mended.
+           record or the address record for the domain should not be pointing
+           to your host. You should arrange to get the DNS mended.
+
+</P>
+<P>
+           There has been a rash of instances of domains being deliberately set
+           up with MX records pointing to "localhost", which causes this
+           behaviour. By default, Exim defers delivery and freezes the message.
+           You can change what Exim does by setting the generic "self" option
+           on the router, for example, to make it bounce such domains. If you
+           are running a release later than 3.16, you can use the option
+           called <TT>ignore_target_hosts</TT> instead, to get it to pretend such hosts
+           do not exist.
 
 </P>
 
 </P>
-<A NAME="SEC53" HREF="FAQ.html#TOC53">Q0302</A>: How do I configure Exim to send all non-local mail to a gateway host?
+<A NAME="SEC69" HREF="FAQ.html#TOC69">Q0302</A>: How do I configure Exim to send all non-local mail to a gateway host?
 
 
 <P>
 
 
 <P>
@@ -1777,18 +2148,18 @@ A0302: Replace the <B>lookuphost</B> router in the default configuration with th
          send_to_gateway:
            driver = domainlist
            transport = remote_smtp
          send_to_gateway:
            driver = domainlist
            transport = remote_smtp
-           route_list = "* gate.way.host byname"</PRE>
+           route_list = * gate.way.host byname</PRE>
 <P>
        This uses gethostbyname() to find the gateway's IP address. You could
        alternatively have "bydns" to do a DNS lookup with MX handling, in which
        case <B>"gate.way.host"</B> is really being treated as a mail domain name
        rather than a host name. If there are several hosts you can send to,
        you can specify them as a colon-separated list. See also 
 <P>
        This uses gethostbyname() to find the gateway's IP address. You could
        alternatively have "bydns" to do a DNS lookup with MX handling, in which
        case <B>"gate.way.host"</B> is really being treated as a mail domain name
        rather than a host name. If there are several hosts you can send to,
        you can specify them as a colon-separated list. See also 
-        <A HREF="FAQ.html#SEC76">Q0325</A> and 
-        <A HREF="FAQ.html#SEC79">Q0402</A>.
+        <A HREF="FAQ.html#SEC92">Q0325</A> and 
+        <A HREF="FAQ.html#SEC96">Q0402</A>.
 
 </P>
 
 </P>
-<A NAME="SEC54" HREF="FAQ.html#TOC54">Q0303</A>: How do I configure Exim to send all non-local mail to a central server
+<A NAME="SEC70" HREF="FAQ.html#TOC70">Q0303</A>: How do I configure Exim to send all non-local mail to a central server
        if it cannot be immediately delivered by my host? I don't want to have
        queued mail waiting on my host.
 
        if it cannot be immediately delivered by my host? I don't want to have
        queued mail waiting on my host.
 
@@ -1803,16 +2174,16 @@ A0303: Add to the <TT>remote_smtp</TT> transport the following:
        If there are several names, they must be separated by colons.
 
 </P>
        If there are several names, they must be separated by colons.
 
 </P>
-<A NAME="SEC55" HREF="FAQ.html#TOC55">Q0304</A>: How can I arrange for messages submitted by (for example) Majordomo to
+<A NAME="SEC71" HREF="FAQ.html#TOC71">Q0304</A>: How can I arrange for messages submitted by (for example) Majordomo to
        be routed specially?
 
 
 <P>
 A0304: See 
        be routed specially?
 
 
 <P>
 A0304: See 
-        <A HREF="FAQ.html#SEC81">A0404</A>.
+        <A HREF="FAQ.html#SEC98">A0404</A>.
 
 </P>
 
 </P>
-<A NAME="SEC56" HREF="FAQ.html#TOC56">Q0305</A>: How do I arrange for all incoming email for <B><B>*@some.domain</B></B> to go into one
+<A NAME="SEC72" HREF="FAQ.html#TOC72">Q0305</A>: How do I arrange for all incoming email for <B><B>*@some.domain</B></B> to go into one
        pop3 mail account? The customer doesn't want to add a list of specific
        local parts to the system.
 
        pop3 mail account? The customer doesn't want to add a list of specific
        local parts to the system.
 
@@ -1838,13 +2209,13 @@ A0305: Set up a special transport that writes to the mailbox like this:
          special_router:
            driver = domainlist
            transport = special_transport
          special_router:
            driver = domainlist
            transport = special_transport
-           route_list = "some.domain"</PRE>
+           route_list = some.domain</PRE>
 <P>
        Alternatively, you could make <B>some.domain</B> a local domain, and use a
        <B>smartuser</B> director instead.
 
 </P>
 <P>
        Alternatively, you could make <B>some.domain</B> a local domain, and use a
        <B>smartuser</B> director instead.
 
 </P>
-<A NAME="SEC57" HREF="FAQ.html#TOC57">Q0306</A>: The <TT>route_list</TT> setting 
+<A NAME="SEC73" HREF="FAQ.html#TOC73">Q0306</A>: The <TT>route_list</TT> setting 
          <TT>^foo$:^bar$  $domain  byname</TT> in a <B>domainlist</B>
        router does not work.
 
          <TT>^foo$:^bar$  $domain  byname</TT> in a <B>domainlist</B>
        router does not work.
 
@@ -1863,16 +2234,16 @@ A0306: The first thing in a <TT>route_list</TT> item is a single pattern, not a
        item <EM>can</EM> be a list - of hosts.
 
 </P>
        item <EM>can</EM> be a list - of hosts.
 
 </P>
-<A NAME="SEC58" HREF="FAQ.html#TOC58">Q0307</A>: I'm getting "permission denied" when Exim attempts to check a
+<A NAME="SEC74" HREF="FAQ.html#TOC74">Q0307</A>: I'm getting "permission denied" when Exim attempts to check a
        <TT>require_files</TT> option.
 
 
 <P>
 A0307: See 
        <TT>require_files</TT> option.
 
 
 <P>
 A0307: See 
-        <A HREF="FAQ.html#SEC87">A0410</A> below.
+        <A HREF="FAQ.html#SEC104">A0410</A> below.
 
 </P>
 
 </P>
-<A NAME="SEC59" HREF="FAQ.html#TOC59">Q0308</A>: I have a domain for which some local parts must be delivered locally,
+<A NAME="SEC75" HREF="FAQ.html#TOC75">Q0308</A>: I have a domain for which some local parts must be delivered locally,
        but the remainder are to be treated like any other remote addresses.
 
 
        but the remainder are to be treated like any other remote addresses.
 
 
@@ -1896,7 +2267,7 @@ A0308: The way to do this is not to include the domain in <TT>local_domains</TT>
        be handled as normal remote addresses.
 
 </P>
        be handled as normal remote addresses.
 
 </P>
-<A NAME="SEC60" HREF="FAQ.html#TOC60">Q0309</A>: For certain domains, I don't want Exim to use MX records. Instead, I
+<A NAME="SEC76" HREF="FAQ.html#TOC76">Q0309</A>: For certain domains, I don't want Exim to use MX records. Instead, I
        want it just to look up the hosts' A records. I tried using a negative
        entry in <TT>mx_domains</TT> in the smtp router, but it didn't work.
 
        want it just to look up the hosts' A records. I tried using a negative
        entry in <TT>mx_domains</TT> in the smtp router, but it didn't work.
 
@@ -1936,7 +2307,7 @@ A0309: The <TT>mx_domains</TT> option specifies domains for which there <EM>must
        <TT>route_list</TT> option.
 
 </P>
        <TT>route_list</TT> option.
 
 </P>
-<A NAME="SEC61" HREF="FAQ.html#TOC61">Q0310</A>: How can I configure Exim on a firewall machine so that if mail arrives
+<A NAME="SEC77" HREF="FAQ.html#TOC77">Q0310</A>: How can I configure Exim on a firewall machine so that if mail arrives
        addressed to a domain whose MX points to the firewall, it is forwarded
        to the internal mail server, without having to have a list of all the
        domains involved?
        addressed to a domain whose MX points to the firewall, it is forwarded
        to the internal mail server, without having to have a list of all the
        domains involved?
@@ -1949,13 +2320,13 @@ A0310: As your first router, have the standard <B>lookuphost</B> router from the
 </P>
 <PRE>
          no_more
 </P>
 <PRE>
          no_more
-         self = fail_soft</PRE>
+         self = pass</PRE>
 <P>
        This will handle all domains whose lowest numbered MX records do <EM>not</EM>
        point to your host. Because of the <TT>no_more</TT> setting, if it encounters
        an unknown domain, routing will fail. However, if it hits a domain whose
        lowest numbered MX points to your host, the "self" option comes into
 <P>
        This will handle all domains whose lowest numbered MX records do <EM>not</EM>
        point to your host. Because of the <TT>no_more</TT> setting, if it encounters
        an unknown domain, routing will fail. However, if it hits a domain whose
        lowest numbered MX points to your host, the "self" option comes into
-       play, and overrides <TT>no_more</TT>. The <TT>fail_soft</TT> setting causes it to pass
+       play, and overrides <TT>no_more</TT>. The "pass" setting causes it to pass
        the address on to the next router. (The default causes it to generate an
        error.)
 
        the address on to the next router. (The default causes it to generate an
        error.)
 
@@ -1968,7 +2339,7 @@ A0310: As your first router, have the standard <B>lookuphost</B> router from the
 </P>
 <PRE>
          route_list = * internal.server byname</PRE>
 </P>
 <PRE>
          route_list = * internal.server byname</PRE>
-<A NAME="SEC62" HREF="FAQ.html#TOC62">Q0311</A>: How can I arrange that messages larger than some limit are handled by
+<A NAME="SEC78" HREF="FAQ.html#TOC78">Q0311</A>: How can I arrange that messages larger than some limit are handled by
        a special router?
 
 
        a special router?
 
 
@@ -1986,7 +2357,7 @@ A0311: If you are using Exim 2.10 or greater, you can use a <TT>condition</TT> o
 </P>
 <PRE>
          condition = ${if eq {${substr_5:$message_size}}{}{no}{yes}}</PRE>
 </P>
 <PRE>
          condition = ${if eq {${substr_5:$message_size}}{}{no}{yes}}</PRE>
-<A NAME="SEC63" HREF="FAQ.html#TOC63">Q0312</A>: If a DNS lookup returns no MX records why doesn't Exim just bin the
+<A NAME="SEC79" HREF="FAQ.html#TOC79">Q0312</A>: If a DNS lookup returns no MX records why doesn't Exim just bin the
        message?
 
 
        message?
 
 
@@ -1998,7 +2369,7 @@ A0312: If a DNS lookup returns no MXs, Exim looks for an A record, in
        plenty) who do not set up MX records.
 
 </P>
        plenty) who do not set up MX records.
 
 </P>
-<A NAME="SEC64" HREF="FAQ.html#TOC64">Q0313</A>: When a DNS lookup for MX records fails to complete, why doesn't Exim
+<A NAME="SEC80" HREF="FAQ.html#TOC80">Q0313</A>: When a DNS lookup for MX records fails to complete, why doesn't Exim
        send the messsage to the host defined by the A record?
 
 
        send the messsage to the host defined by the A record?
 
 
@@ -2013,7 +2384,7 @@ A0313: The RFCs are quite clear on this. Only if it is known that there are no
        so all Exim can do is try again later.
 
 </P>
        so all Exim can do is try again later.
 
 </P>
-<A NAME="SEC65" HREF="FAQ.html#TOC65">Q0314</A>: Can you specify a list of domains to explicitly reject?
+<A NAME="SEC81" HREF="FAQ.html#TOC81">Q0314</A>: Can you specify a list of domains to explicitly reject?
 
 
 <P>
 
 
 <P>
@@ -2026,25 +2397,24 @@ A0314: Use a router like this:
            self = fail_hard
            domains = list:of:domains:to:reject
            route_list = * localhost byname</PRE>
            self = fail_hard
            domains = list:of:domains:to:reject
            route_list = * localhost byname</PRE>
-<A NAME="SEC66" HREF="FAQ.html#TOC66">Q0315</A>: Is it possible to use a conditional expression for the host item in a
+<A NAME="SEC82" HREF="FAQ.html#TOC82">Q0315</A>: Is it possible to use a conditional expression for the host item in a
        <TT>route_list</TT> for the <B>domainlist</B> router? I tried the following, but it
        doesn't work:
 
 
 <PRE>
        <TT>route_list</TT> for the <B>domainlist</B> router? I tried the following, but it
        doesn't work:
 
 
 <PRE>
-         route_list = "* ${if match{$header_from:}{.*\\.usa\\.net\\$} \
-                       {&#60;smarthost1&#62;}{&#60;smarthost2&#62;} bydns_a"</PRE>
+         route_list = * ${if match{$header_from:}{.*\\.usa\\.net\\$} \
+                      {&#60;smarthost1&#62;}{&#60;smarthost2&#62;} bydns_a</PRE>
 <P>
 A0315: The problem is that the second item in the <TT>route_list</TT> contains white
        space, which means that it gets terminated prematurely. To avoid this,
 <P>
 A0315: The problem is that the second item in the <TT>route_list</TT> contains white
        space, which means that it gets terminated prematurely. To avoid this,
-       you must put the second item in quotes, and because the whole item is
-       already in quotes, you have to escape them like this:
+       you must put the second item in quotes:
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-         route_list = "* \"${if match{$header_from:}{.*\\.usa\\.net\\$} \
-                       {&#60;smarthost1&#62;}{&#60;smarthost2&#62;}\" bydns_a"</PRE>
-<A NAME="SEC67" HREF="FAQ.html#TOC67">Q0316</A>: I send all external mail to a smart host, but this means that bad
+         route_list = "${if match{$header_from:}{.*\\.usa\\.net\\$} \
+                      {&#60;smarthost1&#62;}{&#60;smarthost2&#62;}}" bydns_a</PRE>
+<A NAME="SEC83" HREF="FAQ.html#TOC83">Q0316</A>: I send all external mail to a smart host, but this means that bad
        addresses also get passed to the smart host. Can I avoid this?
 
 
        addresses also get passed to the smart host. Can I avoid this?
 
 
@@ -2057,7 +2427,7 @@ A0316: If you are receiving the mail via SMTP, then you can use verification to
        so that addresses are accepted only if they verify successfully.
 
 </P>
        so that addresses are accepted only if they verify successfully.
 
 </P>
-<A NAME="SEC68" HREF="FAQ.html#TOC68">Q0317</A>: I have a dial-up machine, and I use the <TT>queue_smtp</TT> option so that remote
+<A NAME="SEC84" HREF="FAQ.html#TOC84">Q0317</A>: I have a dial-up machine, and I use the <TT>queue_smtp</TT> option so that remote
        mail only goes out when I do a queue run. However, any email I send with
        an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15 mins saying
        'retry time exceeded', and all addresses are affected.
        mail only goes out when I do a queue run. However, any email I send with
        an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15 mins saying
        'retry time exceeded', and all addresses are affected.
@@ -2065,19 +2435,19 @@ A0316: If you are receiving the mail via SMTP, then you can use verification to
 
 <P>
 A0317: See 
 
 <P>
 A0317: See 
-        <A HREF="FAQ.html#SEC219">Q1401</A>.
+        <A HREF="FAQ.html#SEC260">Q1401</A>.
 
 </P>
 
 </P>
-<A NAME="SEC69" HREF="FAQ.html#TOC69">Q0318</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
+<A NAME="SEC85" HREF="FAQ.html#TOC85">Q0318</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
        on the local host?
 
 
 <P>
 A0318: See 
        on the local host?
 
 
 <P>
 A0318: See 
-        <A HREF="FAQ.html#SEC105">A0428</A>.
+        <A HREF="FAQ.html#SEC122">A0428</A>.
 
 </P>
 
 </P>
-<A NAME="SEC70" HREF="FAQ.html#TOC70">Q0319</A>: How can I arrange to do my own qualification of non-fully-qualified
+<A NAME="SEC86" HREF="FAQ.html#TOC86">Q0319</A>: How can I arrange to do my own qualification of non-fully-qualified
        domains, and then pass them on to the next router?
 
 
        domains, and then pass them on to the next router?
 
 
@@ -2089,7 +2459,7 @@ A0319: If you have some list of domains that you want to qualify, you can do
 <PRE>
          qualify:
            driver = domainlist
 <PRE>
          qualify:
            driver = domainlist
-           route_list = "*.a.b  $domain.c.com"</PRE>
+           route_list = *.a.b  $domain.c.com</PRE>
 <P>
        adds <B>".c.com"</B> to any domain that matches <B>"*.a.b".</B> In the absence of any
        options in the route item, the new domain is passed to the next router.
 <P>
        adds <B>".c.com"</B> to any domain that matches <B>"*.a.b".</B> In the absence of any
        options in the route item, the new domain is passed to the next router.
@@ -2101,7 +2471,7 @@ A0319: If you have some list of domains that you want to qualify, you can do
        you want.
 
 </P>
        you want.
 
 </P>
-<A NAME="SEC71" HREF="FAQ.html#TOC71">Q0320</A>: Every system has a "nobody" account under which httpd etc run. I would
+<A NAME="SEC87" HREF="FAQ.html#TOC87">Q0320</A>: Every system has a "nobody" account under which httpd etc run. I would
        like to know how to restrict mail which comes from that account to users
        on that host only.
 
        like to know how to restrict mail which comes from that account to users
        on that host only.
 
@@ -2113,7 +2483,7 @@ A0320: Set up a router with <B><B>senders=nobody@your.domain</B></B> which route
        mail to non-local domains.
 
 </P>
        mail to non-local domains.
 
 </P>
-<A NAME="SEC72" HREF="FAQ.html#TOC72">Q0321</A>: I have a really annoying intermittent problem where attempts to mail to
+<A NAME="SEC88" HREF="FAQ.html#TOC88">Q0321</A>: I have a really annoying intermittent problem where attempts to mail to
        valid sites are rejected with "unknown mail domain". This only happens a
        few times a day and there is no particular pattern to the sites it
        rejects.  If I try to lookup the same domain a few minutes later then it
        valid sites are rejected with "unknown mail domain". This only happens a
        few times a day and there is no particular pattern to the sites it
        rejects.  If I try to lookup the same domain a few minutes later then it
@@ -2132,7 +2502,7 @@ A0321: (A) Have you linked Exim against the newest DNS resolver library that
        out of step with each other.
 
 </P>
        out of step with each other.
 
 </P>
-<A NAME="SEC73" HREF="FAQ.html#TOC73">Q0322</A>: I'd like route all mail with unresolved addresses to a relay machine.
+<A NAME="SEC89" HREF="FAQ.html#TOC89">Q0322</A>: I'd like route all mail with unresolved addresses to a relay machine.
 
 
 <P>
 
 
 <P>
@@ -2140,7 +2510,7 @@ A0322: Set <TT>pass_on_timeout</TT> on your <B>lookuphost</B> router, and add be
        <B>domainlist</B> router that routes everything to the relay.
 
 </P>
        <B>domainlist</B> router that routes everything to the relay.
 
 </P>
-<A NAME="SEC74" HREF="FAQ.html#TOC74">Q0323</A>: I would like to forward all incoming email for a particular domain to
+<A NAME="SEC90" HREF="FAQ.html#TOC90">Q0323</A>: I would like to forward all incoming email for a particular domain to
        another machine via SMTP. Whereabouts would I configure that?
 
 
        another machine via SMTP. Whereabouts would I configure that?
 
 
@@ -2151,7 +2521,7 @@ A0323: First, do not list the domain in <TT>local_domains</TT>. Instead, list it
        router, in order to route the domain to the specific host.
 
 </P>
        router, in order to route the domain to the specific host.
 
 </P>
-<A NAME="SEC75" HREF="FAQ.html#TOC75">Q0324</A>: Why does Exim say "all relevant MX records point to non-existent hosts"
+<A NAME="SEC91" HREF="FAQ.html#TOC91">Q0324</A>: Why does Exim say "all relevant MX records point to non-existent hosts"
        when MX records point to IP addresses?
 
 
        when MX records point to IP addresses?
 
 
@@ -2162,7 +2532,14 @@ A0324: MX records cannot point to IP addresses. They are defined to point to
        problems with is misconfigured.
 
 </P>
        problems with is misconfigured.
 
 </P>
-<A NAME="SEC76" HREF="FAQ.html#TOC76">Q0325</A>: How can I arrange for mail on my local network to be delivered directly
+<P>
+       However, it appears that more and more DNS zones are breaking the rules
+       and putting IP addresses on the RHS of MX records. Exim follows the
+       rules and rejects this, but other MTAs do support it, so <TT>allow_mx_to_ip</TT>
+       was regretfully added at release 3.14 to permit this heinous activity.
+
+</P>
+<A NAME="SEC92" HREF="FAQ.html#TOC92">Q0325</A>: How can I arrange for mail on my local network to be delivered directly
        to the relevant hosts, but all other mail to be sent to my ISP's mail
        server? The local hosts are all DNS-registered and behave like normal
        Internet hosts.
        to the relevant hosts, but all other mail to be sent to my ISP's mail
        server? The local hosts are all DNS-registered and behave like normal
        Internet hosts.
@@ -2192,10 +2569,36 @@ A0325: Set up a first router to pick off all the domains for your local
        This sends anything else to the smart host.
 
 </P>
        This sends anything else to the smart host.
 
 </P>
-<BR><H2><A NAME="SEC77" HREF="FAQ.html#TOC77">4. DIRECTING
+<A NAME="SEC93" HREF="FAQ.html#TOC93">Q0326</A>: What I'd like to do is have alternative smarthosts, where the one to be
+       used is determined by which ISP I'm connected to.
+
+
+<P>
+A0326: The simplest way to do this is to use a lookup in a <B>domainlist</B> router.
+       For example:
+
+</P>
+<PRE>
+         smarthost:
+           driver = domainlist
+           transport = remote_smtp
+           route_list = * ${lookup{smart}lsearch{/etc/smarthost}{$value}} byname</PRE>
+<P>
+       where you arrange for the name (or IP address) of the relevant smart
+       host to be placed in <B>/etc/smarthost</B> when you connect, in the form
+
+</P>
+<PRE>
+         smart: smart.host.name.or.ip</PRE>
+<P>
+       By keeping the data out of the main configuration file, you avoid having
+       to HUP the daemon when it changes.
+
+</P>
+<BR><H2><A NAME="SEC94" HREF="FAQ.html#TOC94">4. DIRECTING
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC78" HREF="FAQ.html#TOC78">Q0401</A>: I need to have any mail for <B>virt.dom.ain</B> that <EM>doesn't</EM> match one of the
+<A NAME="SEC95" HREF="FAQ.html#TOC95">Q0401</A>: I need to have any mail for <B>virt.dom.ain</B> that <EM>doesn't</EM> match one of the
        aliases in <B><B>/usr/lib/aliases.virt</B></B> delivered to a particular address, for
        example, <B><B>postmaster@virt.dom.ain.</B></B>
 
        aliases in <B><B>/usr/lib/aliases.virt</B></B> delivered to a particular address, for
        example, <B><B>postmaster@virt.dom.ain.</B></B>
 
@@ -2255,7 +2658,7 @@ A0401: Adding an asterisk to a search type causes Exim to look up "*" when the
        address.
 
 </P>
        address.
 
 </P>
-<A NAME="SEC79" HREF="FAQ.html#TOC79">Q0402</A>: How do I configure Exim to send all messages to a central server?
+<A NAME="SEC96" HREF="FAQ.html#TOC96">Q0402</A>: How do I configure Exim to send all messages to a central server?
 
 
 <P>
 
 
 <P>
@@ -2268,10 +2671,10 @@ A0402: This implies that you are not doing any local deliveries at all. Set
        in the configuration file. This specifies that there are no local
        domains (by default your host name is set up as a local domain). Then
        all addresses are non-local - 
        in the configuration file. This specifies that there are no local
        domains (by default your host name is set up as a local domain). Then
        all addresses are non-local - 
-        <A HREF="FAQ.html#SEC53">A0302</A> tells you how to deal with them.
+        <A HREF="FAQ.html#SEC69">A0302</A> tells you how to deal with them.
 
 </P>
 
 </P>
-<A NAME="SEC80" HREF="FAQ.html#TOC80">Q0403</A>: How do I configure Exim to send messages for unknown local users to a
+<A NAME="SEC97" HREF="FAQ.html#TOC97">Q0403</A>: How do I configure Exim to send messages for unknown local users to a
        central server?
 
 
        central server?
 
 
@@ -2328,7 +2731,7 @@ A0403: At the end of the directors section of the configuration, insert the
        headers.
 
 </P>
        headers.
 
 </P>
-<A NAME="SEC81" HREF="FAQ.html#TOC81">Q0404</A>: How can I arrange for messages submitted by (for example) Majordomo to
+<A NAME="SEC98" HREF="FAQ.html#TOC98">Q0404</A>: How can I arrange for messages submitted by (for example) Majordomo to
        be handled specially?
 
 
        be handled specially?
 
 
@@ -2338,15 +2741,15 @@ A0404: You can use the <TT>condition</TT> option on a director or router, with a
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-         condition = "${if and {eq {$sender_host_address}{}} \
-                     {eq {$sender_ident}{majordom}} {yes}{no}}"</PRE>
+         condition = ${if and {{eq {$sender_host_address}{}} \
+                     {eq {$sender_ident}{majordom}}} {yes}{no}}</PRE>
 <P>
        This first tests for a locally-submitted message, by ensuring there is
        no sending host address, and then it checks the identity of the user
        that ran the submitting process.
 
 </P>
 <P>
        This first tests for a locally-submitted message, by ensuring there is
        no sending host address, and then it checks the identity of the user
        that ran the submitting process.
 
 </P>
-<A NAME="SEC82" HREF="FAQ.html#TOC82">Q0405</A>: On a host that accepts mail for several domains, do I have to use fully
+<A NAME="SEC99" HREF="FAQ.html#TOC99">Q0405</A>: On a host that accepts mail for several domains, do I have to use fully
        qualified names in <B>/etc/aliases</B> or do I have to set up an alias file for
        each domain?
 
        qualified names in <B>/etc/aliases</B> or do I have to set up an alias file for
        each domain?
 
@@ -2373,7 +2776,7 @@ A0405: You can do it either way. If you use a single file, you must set
        they all match something in <TT>local_domains</TT>.
 
 </P>
        they all match something in <TT>local_domains</TT>.
 
 </P>
-<A NAME="SEC83" HREF="FAQ.html#TOC83">Q0406</A>: Some of my users are using the <B>.forward</B> to pipe to a shell command which
+<A NAME="SEC100" HREF="FAQ.html#TOC100">Q0406</A>: Some of my users are using the <B>.forward</B> to pipe to a shell command which
        appends to the user's INBOX. How can I forbid this?
 
 
        appends to the user's INBOX. How can I forbid this?
 
 
@@ -2400,7 +2803,7 @@ A0406: If you allow your users to run shells in pipes, you cannot control which
        transport.
 
 </P>
        transport.
 
 </P>
-<A NAME="SEC84" HREF="FAQ.html#TOC84">Q0407</A>: How can I arrange for a default value when using a query-style lookup
+<A NAME="SEC101" HREF="FAQ.html#TOC101">Q0407</A>: How can I arrange for a default value when using a query-style lookup
        such as LDAP or NIS+ to handle aliases?
 
 
        such as LDAP or NIS+ to handle aliases?
 
 
@@ -2414,7 +2817,7 @@ A0407: Using the queries option for the <B>aliasfile</B> driver should do what y
        queries = "\
          ldap:://x.y.z/l=yvr?aliasaddress?sub?(&(mail=$local_part@$domain)):\
          ldap:://x.y.z/l=yvr?aliasaddress?sub?(&(mail=default@$domain))"</PRE>
        queries = "\
          ldap:://x.y.z/l=yvr?aliasaddress?sub?(&(mail=$local_part@$domain)):\
          ldap:://x.y.z/l=yvr?aliasaddress?sub?(&(mail=default@$domain))"</PRE>
-<A NAME="SEC85" HREF="FAQ.html#TOC85">Q0408</A>: If I don't fully qualify the addresses in a virtual domain's alias file
+<A NAME="SEC102" HREF="FAQ.html#TOC102">Q0408</A>: If I don't fully qualify the addresses in a virtual domain's alias file
        then mail to aliases which also match the local domain get delivered to
        the local domain.
 
        then mail to aliases which also match the local domain get delivered to
        the local domain.
 
@@ -2435,7 +2838,7 @@ A0407: Using the queries option for the <B>aliasfile</B> driver should do what y
 A0408: Set the <TT>qualify_preserve_domain</TT> option on the <B>aliasfile</B> director.
 
 </P>
 A0408: Set the <TT>qualify_preserve_domain</TT> option on the <B>aliasfile</B> director.
 
 </P>
-<A NAME="SEC86" HREF="FAQ.html#TOC86">Q0409</A>: We've got users who chmod their home to 750, and home is NFS-mounted
+<A NAME="SEC103" HREF="FAQ.html#TOC103">Q0409</A>: We've got users who chmod their home to 750, and home is NFS-mounted
        without root privilege, so Exim cannot access <B>~user/.forward.</B>
 
 
        without root privilege, so Exim cannot access <B>~user/.forward.</B>
 
 
@@ -2448,7 +2851,7 @@ A0409: Set the seteuid option on the <B>forwardfile</B> director so that Exim
        option, which causes Exim to ignore unreadable files.
 
 </P>
        option, which causes Exim to ignore unreadable files.
 
 </P>
-<A NAME="SEC87" HREF="FAQ.html#TOC87">Q0410</A>: I'm getting "permission denied" when Exim tries to check a for the
+<A NAME="SEC104" HREF="FAQ.html#TOC104">Q0410</A>: I'm getting "permission denied" when Exim tries to check a for the
        existence of a user's <B>.procmailrc</B> file using <TT>require_files</TT>.
 
 
        existence of a user's <B>.procmailrc</B> file using <TT>require_files</TT>.
 
 
@@ -2463,9 +2866,9 @@ A0410: Exim is running under its own uid (or root if there isn't an Exim uid)
 <PRE>
          procmail:
            driver = localuser
 <PRE>
          procmail:
            driver = localuser
-           require_files = ${local_part}:${home}/.procmailrc
+           require_files = $local_part:$home/.procmailrc
            transport = procmail_pipe</PRE>
            transport = procmail_pipe</PRE>
-<A NAME="SEC88" HREF="FAQ.html#TOC88">Q0411</A>: How can I deliver mail into different directories for each virtual
+<A NAME="SEC105" HREF="FAQ.html#TOC105">Q0411</A>: How can I deliver mail into different directories for each virtual
        domain, doing user lookups not against <B>/etc/passwd</B> but against
        <B><B>/etc/passwd.domain</B>?</B>
 
        domain, doing user lookups not against <B>/etc/passwd</B> but against
        <B><B>/etc/passwd.domain</B>?</B>
 
@@ -2474,7 +2877,7 @@ A0410: Exim is running under its own uid (or root if there isn't an Exim uid)
 A0411: See configuration sample C009.
 
 </P>
 A0411: See configuration sample C009.
 
 </P>
-<A NAME="SEC89" HREF="FAQ.html#TOC89">Q0412</A>: I want mail for <EM>any</EM> local part at certain virtual domains to go
+<A NAME="SEC106" HREF="FAQ.html#TOC106">Q0412</A>: I want mail for <EM>any</EM> local part at certain virtual domains to go
        to a single address for each domain.
 
 
        to a single address for each domain.
 
 
@@ -2501,7 +2904,7 @@ A0412: One way to to this is
        efficient.
 
 </P>
        efficient.
 
 </P>
-<A NAME="SEC90" HREF="FAQ.html#TOC90">Q0413</A>: How can I make Exim look in the alias NIS map instead of <B>/etc/aliases</B>?
+<A NAME="SEC107" HREF="FAQ.html#TOC107">Q0413</A>: How can I make Exim look in the alias NIS map instead of <B>/etc/aliases</B>?
 
 
 <P>
 
 
 <P>
@@ -2520,7 +2923,7 @@ A0413: The default configuration does not use NIS (many hosts don't run it).
        data source you want to take precedence.
 
 </P>
        data source you want to take precedence.
 
 </P>
-<A NAME="SEC91" HREF="FAQ.html#TOC91">Q0414</A>: What does the error message "error in forward file (filtering not
+<A NAME="SEC108" HREF="FAQ.html#TOC108">Q0414</A>: What does the error message "error in forward file (filtering not
        enabled): missing or malformed local part ..." mean?
 
 
        enabled): missing or malformed local part ..." mean?
 
 
@@ -2538,7 +2941,7 @@ A0414: If you are trying to use an Exim filter, you have forgotten to enable
        the <B>.forward</B> file.
 
 </P>
        the <B>.forward</B> file.
 
 </P>
-<A NAME="SEC92" HREF="FAQ.html#TOC92">Q0415</A>: Exim isn't recognizing certain forms of local address.
+<A NAME="SEC109" HREF="FAQ.html#TOC109">Q0415</A>: Exim isn't recognizing certain forms of local address.
 
 
 <P>
 
 
 <P>
@@ -2565,20 +2968,20 @@ A0415: (A) Try using the <B>-bt</B> option with debugging turned on, to see how
          locally_caseless = false</PRE>
 <P>
        but then incoming addresses are recognized only in the correct case.
          locally_caseless = false</PRE>
 <P>
        but then incoming addresses are recognized only in the correct case.
-       See also 
-        <A HREF="FAQ.html#SEC101">Q0424</A> for a way round this.
+       See 
+        <A HREF="FAQ.html#SEC118">Q0424</A> for a way round this.
 
 </P>
 
 </P>
-<A NAME="SEC93" HREF="FAQ.html#TOC93">Q0416</A>: I have a domain for which some local parts must be delivered locally,
+<A NAME="SEC110" HREF="FAQ.html#TOC110">Q0416</A>: I have a domain for which some local parts must be delivered locally,
        but the remainder are to be treated like any other remote addresses.
 
 
 <P>
 A0416: See 
        but the remainder are to be treated like any other remote addresses.
 
 
 <P>
 A0416: See 
-        <A HREF="FAQ.html#SEC59">A0308</A>.
+        <A HREF="FAQ.html#SEC75">A0308</A>.
 
 </P>
 
 </P>
-<A NAME="SEC94" HREF="FAQ.html#TOC94">Q0417</A>: What I really need is the ability to obtain the result of a pipe
+<A NAME="SEC111" HREF="FAQ.html#TOC111">Q0417</A>: What I really need is the ability to obtain the result of a pipe
        command so that I can filter externally and redirect internally. Is
        this possible?
 
        command so that I can filter externally and redirect internally. Is
        this possible?
 
@@ -2591,7 +2994,7 @@ A0417: This is not possible. The result of a pipe command is not available to
        delivery agent such as procmail which provides this kind of facility.
 
 </P>
        delivery agent such as procmail which provides this kind of facility.
 
 </P>
-<A NAME="SEC95" HREF="FAQ.html#TOC95">Q0418</A>: When I set a suffix on one of my directors, it doesn't get stripped when
+<A NAME="SEC112" HREF="FAQ.html#TOC112">Q0418</A>: When I set a suffix on one of my directors, it doesn't get stripped when
        checking the <TT>local_parts</TT> option. Why is this?
 
 
        checking the <TT>local_parts</TT> option. Why is this?
 
 
@@ -2607,15 +3010,15 @@ A0418: The test on local parts and domains is done early on, and only if they
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-         condition = "${if lookup{\
+         condition = ${if lookup{\
            ${if match{$local_part}{^(.*)-request}{$1}{$local_part}}\
            ${if match{$local_part}{^(.*)-request}{$1}{$local_part}}\
-           }lsearch{/some/file}{yes}}"</PRE>
+           }lsearch{/some/file}{yes}}</PRE>
 <P>
        The key that is looked up is the second line, which uses a regular
        expression to strip "-request" from the local part if it is present.
 
 </P>
 <P>
        The key that is looked up is the second line, which uses a regular
        expression to strip "-request" from the local part if it is present.
 
 </P>
-<A NAME="SEC96" HREF="FAQ.html#TOC96">Q0419</A>: Why will Exim deliver a message locally to any username that is longer
+<A NAME="SEC113" HREF="FAQ.html#TOC113">Q0419</A>: Why will Exim deliver a message locally to any username that is longer
        than 8 characters as long as the first 8 characters match one of the
        local usernames?
 
        than 8 characters as long as the first 8 characters match one of the
        local usernames?
 
@@ -2630,7 +3033,7 @@ A0419: The problem is in your operating system. Exim just calls the getpwnam()
        <TT>max_user_name_length</TT> which you can set to the maximum allowed length.
 
 </P>
        <TT>max_user_name_length</TT> which you can set to the maximum allowed length.
 
 </P>
-<A NAME="SEC97" HREF="FAQ.html#TOC97">Q0420</A>: Why am I seeing the error "bad mode (100664) for <B><B>/home/test/.forward</B></B>
+<A NAME="SEC114" HREF="FAQ.html#TOC114">Q0420</A>: Why am I seeing the error "bad mode (100664) for <B><B>/home/test/.forward</B></B>
        (userforward director)"? I've looked through the documentation but can't
        see anything to suggest that exim has to do anything other than read the
        <B>.forward</B> file.
        (userforward director)"? I've looked through the documentation but can't
        see anything to suggest that exim has to do anything other than read the
        <B>.forward</B> file.
@@ -2642,16 +3045,16 @@ A0420: For security, Exim checks for mode bits that shouldn't be set, by
        <B>forwardfile</B> director.
 
 </P>
        <B>forwardfile</B> director.
 
 </P>
-<A NAME="SEC98" HREF="FAQ.html#TOC98">Q0421</A>: How can I arrange that messages larger than some limit are handled by
+<A NAME="SEC115" HREF="FAQ.html#TOC115">Q0421</A>: How can I arrange that messages larger than some limit are handled by
        a special director?
 
 
 <P>
 A0421: See 
        a special director?
 
 
 <P>
 A0421: See 
-        <A HREF="FAQ.html#SEC62">A0311</A>.
+        <A HREF="FAQ.html#SEC78">A0311</A>.
 
 </P>
 
 </P>
-<A NAME="SEC99" HREF="FAQ.html#TOC99">Q0422</A>: When a user's <B>.forward</B> file is syntactially invalid, Exim defers
+<A NAME="SEC116" HREF="FAQ.html#TOC116">Q0422</A>: When a user's <B>.forward</B> file is syntactially invalid, Exim defers
        delivery of all messages to that user, which sometimes include the
        user's own test messages. Can it be told to ignore the <B>.forward</B> file
        and/or inform the user of the error?
        delivery of all messages to that user, which sometimes include the
        user's own test messages. Can it be told to ignore the <B>.forward</B> file
        and/or inform the user of the error?
@@ -2700,16 +3103,16 @@ A0422: Setting <TT>skip_syntax_errors</TT> on the <B>forwardfile</B> director ca
        look at the Envelope-To header.
 
 </P>
        look at the Envelope-To header.
 
 </P>
-<A NAME="SEC100" HREF="FAQ.html#TOC100">Q0423</A>: I have some users on my system with upper case letters in their login
+<A NAME="SEC117" HREF="FAQ.html#TOC117">Q0423</A>: I have some users on my system with upper case letters in their login
        names, but these are not recognized.
 
 
 <P>
 A0423: See 
        names, but these are not recognized.
 
 
 <P>
 A0423: See 
-        <A HREF="FAQ.html#SEC101">A0424</A>.
+        <A HREF="FAQ.html#SEC118">A0424</A>.
 
 </P>
 
 </P>
-<A NAME="SEC101" HREF="FAQ.html#TOC101">Q0424</A>: I have unset <TT>locally_caseless</TT> because my users have upper case letters
+<A NAME="SEC118" HREF="FAQ.html#TOC118">Q0424</A>: I have unset <TT>locally_caseless</TT> because my users have upper case letters
        in their login names, but incoming mail now has to use the correct case.
        Can I relax this somehow?
 
        in their login names, but incoming mail now has to use the correct case.
        Can I relax this somehow?
 
@@ -2734,8 +3137,8 @@ A0424: If you really have to live with caseful user names but want incoming
 <PRE>
          set_case_director:
            driver = smartuser
 <PRE>
          set_case_director:
            driver = smartuser
-           new_address = "${lookup{${lc:$local_part}}lsearch{/the/file}\
-                          {$value@$domain}fail}"</PRE>
+           new_address = ${lookup{${lc:$local_part}}lsearch{/the/file}\
+                         {$value@$domain}fail}</PRE>
 <P>
        For efficiency, you should also set the <TT>new_director</TT> option to cause
        processing of the changed address to begin at the next director. If you
 <P>
        For efficiency, you should also set the <TT>new_director</TT> option to cause
        processing of the changed address to begin at the next director. If you
@@ -2750,25 +3153,13 @@ A0424: If you really have to live with caseful user names but want incoming
        will have to extend this configuration to cope appropriately.
 
 </P>
        will have to extend this configuration to cope appropriately.
 
 </P>
-<A NAME="SEC102" HREF="FAQ.html#TOC102">Q0425</A>: I want to look up local users in an SQL database instead of looking in
+<A NAME="SEC119" HREF="FAQ.html#TOC119">Q0425</A>: I want to look up local users in an SQL database instead of looking in
        the passwd file.
 
 
 <P>
        the passwd file.
 
 
 <P>
-A0425: (A) From release 3.03, Exim contains support for calling MySQL.
-
-</P>
-<P>
-       (B) If you can set up an LDAP interface to your SQL database, then this
-       is relatively straightforward to do, since Exim contains LDAP support.
-       Sample configuration C009 shows you how to lookup users in
-       <B>/etc/passwd/whatever</B> instead of <B>/etc/passwd</B>. Modifying this to use LDAP
-       instead of looking in a file would be easy.
-
-</P>
-<P>
-       (C) If you can access SQL from Perl, you could use Exim's embedded Perl
-       facility, but this is expensive in terms of resources used.
+A0425: From release 3.03, Exim contains support for calling MySQL, and from
+       release 3.14 there is support for PostgreSQL.
 
 </P>
 <P>
 
 </P>
 <P>
@@ -2780,16 +3171,16 @@ A0425: (A) From release 3.03, Exim contains support for calling MySQL.
        to work off that. This is also likely to be more efficient.
 
 </P>
        to work off that. This is also likely to be more efficient.
 
 </P>
-<A NAME="SEC103" HREF="FAQ.html#TOC103">Q0426</A>: Is it possible for Exim to use a SQL database like MySQL for its lists
+<A NAME="SEC120" HREF="FAQ.html#TOC120">Q0426</A>: Is it possible for Exim to use a SQL database like MySQL for its lists
        of virtual domains and explicit aliases?
 
 
 <P>
 A0426: See 
        of virtual domains and explicit aliases?
 
 
 <P>
 A0426: See 
-        <A HREF="FAQ.html#SEC102">A0425</A>.
+        <A HREF="FAQ.html#SEC119">A0425</A>.
 
 </P>
 
 </P>
-<A NAME="SEC104" HREF="FAQ.html#TOC104">Q0427</A>: Can I use my existing alias files and forward files as well as procmail
+<A NAME="SEC121" HREF="FAQ.html#TOC121">Q0427</A>: Can I use my existing alias files and forward files as well as procmail
        and effectively drop in exim in place of Sendmail ?
 
 
        and effectively drop in exim in place of Sendmail ?
 
 
@@ -2799,16 +3190,16 @@ A0427: Yes, as long as your alias/forward files don't assume that pipes are
        or configure Exim to use a shell (which it doesn't by default).
 
 </P>
        or configure Exim to use a shell (which it doesn't by default).
 
 </P>
-<A NAME="SEC105" HREF="FAQ.html#TOC105">Q0428</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
+<A NAME="SEC122" HREF="FAQ.html#TOC122">Q0428</A>: How can I route mail for user <B>X@local</B> to a smarthost if X doesn't exist
        on the local host?
 
 
 <P>
 A0428: This is the same question as 
        on the local host?
 
 
 <P>
 A0428: This is the same question as 
-        <A HREF="FAQ.html#SEC79">Q0402</A>. The duplication is a bug in the FAQ.
+        <A HREF="FAQ.html#SEC96">Q0402</A>. The duplication is a bug in the FAQ.
 
 </P>
 
 </P>
-<A NAME="SEC106" HREF="FAQ.html#TOC106">Q0429</A>: What is quickest way to set up Exim so any message sent to a non-
+<A NAME="SEC123" HREF="FAQ.html#TOC123">Q0429</A>: What is quickest way to set up Exim so any message sent to a non-
        existing user would bounce back with a different message, based
        on the name of non-existing user?
 
        existing user would bounce back with a different message, based
        on the name of non-existing user?
 
@@ -2818,7 +3209,7 @@ A0429: See the example in the section of the manual entitled "System-wide
        automatic processing".
 
 </P>
        automatic processing".
 
 </P>
-<A NAME="SEC107" HREF="FAQ.html#TOC107">Q0430</A>: I am building some largish mailing lists with Majordomo, and was
+<A NAME="SEC124" HREF="FAQ.html#TOC124">Q0430</A>: I am building some largish mailing lists with Majordomo, and was
        wondering if it worth leaving the actually list expansion to the
        <B>aliasfile</B> :include: mechanism or should I consider using the <B>forwardfile</B>
        transport? Is there any real difference in terms of facilities and/or
        wondering if it worth leaving the actually list expansion to the
        <B>aliasfile</B> :include: mechanism or should I consider using the <B>forwardfile</B>
        transport? Is there any real difference in terms of facilities and/or
@@ -2831,7 +3222,7 @@ A0430: The code that pulls out individual addresses from a list is the same in
        for you.
 
 </P>
        for you.
 
 </P>
-<A NAME="SEC108" HREF="FAQ.html#TOC108">Q0431</A>: What do I need to do to make Exim handle <B>/usr/ucb/vacation</B> processing
+<A NAME="SEC125" HREF="FAQ.html#TOC125">Q0431</A>: What do I need to do to make Exim handle <B>/usr/ucb/vacation</B> processing
        automatically, so that people could just create a .<B>vacation.msg</B> file in
        their home directory and not have to edit their <B>.forward</B> file?
 
        automatically, so that people could just create a .<B>vacation.msg</B> file in
        their home directory and not have to edit their <B>.forward</B> file?
 
@@ -2885,7 +3276,7 @@ A0431: Add a new director like this, immediately before the normal localuser
        See C033.
 
 </P>
        See C033.
 
 </P>
-<A NAME="SEC109" HREF="FAQ.html#TOC109">Q0432</A>: I want to use a default entry in my alias file, but it picks up the
+<A NAME="SEC126" HREF="FAQ.html#TOC126">Q0432</A>: I want to use a default entry in my alias file, but it picks up the
        local parts that the aliases generate. For example, if the alias file
        is
 
        local parts that the aliases generate. For example, if the alias file
        is
 
@@ -2926,7 +3317,7 @@ A0432: (A) If you know for certain that no alias in your alias file ever
        rather than local users.
 
 </P>
        rather than local users.
 
 </P>
-<A NAME="SEC110" HREF="FAQ.html#TOC110">Q0433</A>: I have some obsolete domains which people have been warned not to use
+<A NAME="SEC127" HREF="FAQ.html#TOC127">Q0433</A>: I have some obsolete domains which people have been warned not to use
        any more. How can I arrange to delete any mail that is sent to them?
 
 
        any more. How can I arrange to delete any mail that is sent to them?
 
 
@@ -2960,15 +3351,13 @@ A0433: If you are using release 3.10 or later, you can use a <B>smartuser</B> di
        with the file containing
 
 </P>
        with the file containing
 
 </P>
-<P>
-         *:           :blackhole:
-
-</P>
+<PRE>
+         *:           :blackhole:</PRE>
 <P>
        and possibly a postmaster alias if you want.
 
 </P>
 <P>
        and possibly a postmaster alias if you want.
 
 </P>
-<A NAME="SEC111" HREF="FAQ.html#TOC111">Q0434</A>: How can I arrange that mail addressed to <B><B>anything@something.mydomain.com</B></B>
+<A NAME="SEC128" HREF="FAQ.html#TOC128">Q0434</A>: How can I arrange that mail addressed to <B><B>anything@something.mydomain.com</B></B>
        gets delivered to <B><B>something@mydomain.com</B>?</B>
 
 
        gets delivered to <B><B>something@mydomain.com</B>?</B>
 
 
@@ -2985,9 +3374,9 @@ A0434: Ensure that all the relevant domains are local, by setting
 <PRE>
          user_from_domain:
            driver = smartuser
 <PRE>
          user_from_domain:
            driver = smartuser
-           new_address = "${if match{$domain}{^(.+)\\\\.mydomain.com\\$}\
-             {$1@mydomain.com}fail}"</PRE>
-<A NAME="SEC112" HREF="FAQ.html#TOC112">Q0435</A>: I can't get a regular expression to work in this <TT>local_parts</TT> option on
+           new_address = ${if match{$domain}{^(.+)\\.mydomain.com\$}\
+             {$1@mydomain.com}fail}</PRE>
+<A NAME="SEC129" HREF="FAQ.html#TOC129">Q0435</A>: I can't get a regular expression to work in this <TT>local_parts</TT> option on
        one of my directors:
 
 
        one of my directors:
 
 
@@ -3004,7 +3393,7 @@ A0435: The <TT>local_parts</TT> option is expanded before use, so that you can,
        so as to preserve the backslash.
 
 </P>
        so as to preserve the backslash.
 
 </P>
-<A NAME="SEC113" HREF="FAQ.html#TOC113">Q0436</A>: How can I arrange for all addresses in a group of domains <B>*.example.com</B>
+<A NAME="SEC130" HREF="FAQ.html#TOC130">Q0436</A>: How can I arrange for all addresses in a group of domains <B>*.example.com</B>
        to share the same alias file? I have a number of such groups.
 
 
        to share the same alias file? I have a number of such groups.
 
 
@@ -3029,7 +3418,7 @@ A0436: For a single group you could just hardwire the file name into a director
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-         local_domains = "partial-lsearch;/that/file"</PRE>
+         local_domains = partial-lsearch;/that/file</PRE>
 <P>
        Then create a director like this
 
 <P>
        Then create a director like this
 
@@ -3046,7 +3435,7 @@ A0436: For a single group you could just hardwire the file name into a director
        in this case.
 
 </P>
        in this case.
 
 </P>
-<A NAME="SEC114" HREF="FAQ.html#TOC114">Q0437</A>: When Exim tries to read <B><B>/usr/lib/majordomo/lists/lists.aliases</B></B> it is
+<A NAME="SEC131" HREF="FAQ.html#TOC131">Q0437</A>: When Exim tries to read <B><B>/usr/lib/majordomo/lists/lists.aliases</B></B> it is
        giving "Permission denied", but that file is world-readable!
 
 
        giving "Permission denied", but that file is world-readable!
 
 
@@ -3054,10 +3443,266 @@ A0436: For a single group you could just hardwire the file name into a director
 A0437: Check the permissions on the superior directories.
 
 </P>
 A0437: Check the permissions on the superior directories.
 
 </P>
-<BR><H2><A NAME="SEC115" HREF="FAQ.html#TOC115">5. DELIVERY
+<A NAME="SEC132" HREF="FAQ.html#TOC132">Q0438</A>: Some of our users have no home directories; the field in the password
+       file contains <B>/no/home/dir</B>. This causes the error "failed to stat
+       <B>/no/home/dir</B> (No such file or directory)" when Exim tries to look for a
+       <B>.forward</B> file, and the delivery is deferred.
+
+
+<P>
+A0438: With the default configuration, you are asking Exim to check for a
+       <B>.forward</B> file in the user's home directory. It looks up the home
+       directory and tries to stat() it before looking for <B>.forward</B>. This is so
+       that it can will notice a missing NFS home directory, and not treat it
+       as if the <B>.forward</B> file did not exist. This stat() is failing when the
+       home directory doesn't exist. What you should do is pick off these
+       special cases before looking for <B>.forward</B> files for normal users. Place
+       the following director before the userforward director:
+
+</P>
+<PRE>
+         no_home_directory_users:
+           driver = localuser
+           transport = local_delivery
+           match_directory = /no/home/dir
+           current_directory = /</PRE>
+<A NAME="SEC133" HREF="FAQ.html#TOC133">Q0439</A>: How can I disable Exim's de-duplication features? I want it to do two
+       deliveries if two different aliases expand to the same address.
+
+
+<P>
+A0439: This is not possible. Duplication has other ramifications other than
+       just (in)convenience. Consider:
+
+</P>
+<P>
+         . Message is addressed to A and to B.
+
+</P>
+<P>
+         . Both A and B are aliased to C.
+
+</P>
+<P>
+         . Without de-duplication, two deliveries to C are scheduled.
+
+</P>
+<P>
+         . One delivery happens, Exim records that it has delivered the message
+           to C.
+
+</P>
+<P>
+         . The next delivery fails (C's mailbox is over quota, say).
+
+</P>
+<P>
+       Next time round, Exim wants to know if it has already delivered to C or
+       not, before scheduling a new delivery. Has it? Obviously, if duplicate
+       deliveries are supported, it has to remember not only that it has
+       delivered to C but also the "history" of how that delivery happened - in
+       effect an ancestry list back to the original envelope address. This it
+       does not do, and changing it to work in that way would be a lot of work
+       and a big upheaval.
+
+</P>
+<P>
+       The best way to get duplicate deliveries if you want them is not to use
+       <B>aliasfile</B>, but to use <B>smartuser</B> with a transport, e.g.
+
+</P>
+<PRE>
+       alias_with_duplicates:
+         driver = smartuser
+         transport = local_delivery_for_duplicates
+         new_address = ${lookup {$local_part} lsearch ..... etc</PRE>
+<P>
+       This goes straight to the transport without generating a new address
+       that is considered for de-duplication or re-aliasing. In effect, it is
+       just re-writing the address on the way to the transport. You will need
+       to specify the user under which to run the delivery, either on the
+       transport or on the director.
+
+</P>
+<A NAME="SEC134" HREF="FAQ.html#TOC134">Q0440</A>: I set up an <B>aliasfile</B> director using MySQL, but it doesn't use the new
+       addresses. This it my director:
+
+
+<PRE>
+         mysql_system_aliases:
+           driver = aliasfile
+           search_type = mysql
+           query = "select userid from domain_table where \
+             aliasid='$local_part' and domain='$domain'"
+           transport = local_delivery</PRE>
+<P>
+A0440: The setting of "transport" is your problem. Aliasfile operates entirely
+       differently if you give it a transport. It just verifies the incoming
+       address by doing the query, then sends it to the transport. Take away
+       the transport setting, and it will do normal aliasing, that is, turn one
+       address into another which is independently processed.
+
+</P>
+<A NAME="SEC135" HREF="FAQ.html#TOC135">Q0441</A>: I received a message with a Subject: line that contained a non-printing
+       character (a carriage return). This messed up my filter file. Is there a
+       way to get round it?
+
+
+<P>
+A0441: Instead of <B>$h_subject:</B> use <B>${escape:$h_subject:}</B>
+
+</P>
+<A NAME="SEC136" HREF="FAQ.html#TOC136">Q0442</A>: My users' mailboxes are distributed between several servers according to
+       the first letter of the user name. All the servers receive incoming mail
+       at random. I would like to have the same configuration file for all the
+       servers, which does local delivery for the mailboxes it holds, and sends
+       other addresses to the correct other server. Is this possible?
+
+
+<P>
+A0442: It is easiest if you arrange for all the users to have password entries
+       on all the servers. This means that non-existent users can be detected
+       at the first server they reach. Set up a file containing a mapping from
+       the first letter of the user names to the servers where their mailboxes
+       are held. For example:
+
+</P>
+<PRE>
+       a: server1
+       b: server1
+       c: server2
+       ...</PRE>
+<P>
+       Replace the normal localuser director with these two directors:
+
+</P>
+<PRE>
+         localuser:
+           driver = localuser
+           transport = local_delivery
+           condition = ${if eq{$primary_hostname}\
+             {${lookup {${substr_0_1:$local_part}}\
+             lsearch{/etc/mapfile} {$value}}}{yes}{no}}</PRE>
+<PRE>
+         check_remote:
+           driver = localuser
+           transport = send_to_correct_host</PRE>
+<P>
+       The first director succeeds only if the local part is a local user whose
+       mailbox is listed as being on the current host. The second server runs
+       for all other local users, directing the addresses to this transport:
+
+</P>
+<PRE>
+         send_to_correct_host:
+           driver = smtp
+           hosts = ${lookup {${substr_0_1:$local_part}}lsearch{/etc/mapfile}\
+                   {$value}}</PRE>
+<P>
+       Local parts that are not the names of local users are declined by both
+       directors, and so they fail.
+
+</P>
+<A NAME="SEC137" HREF="FAQ.html#TOC137">Q0443</A>: I want to search for '$' in the subject line, but I can't seem to get
+       the syntax. The obvious choice, '\$' doesn't work. Any help?
+
+
+<P>
+A0443: Try one of these:
+
+</P>
+<PRE>
+         if $h_subject: contains \$ then ...
+         if $h_subject: contains "\\$" then ...</PRE>
+<A NAME="SEC138" HREF="FAQ.html#TOC138">Q0444</A>: One of the things I want to set up is for <B>anything@onedomain</B> to forward
+       to <B><B>anything@anotherdomain.</B></B> I tried adding <B>$local_part@anotherdomain</B> to
+       my aliases but it did not expand - it sent it to that literal address.
+
+
+<P>
+A0444: If you want to do it that way, you can make it expand by setting
+       the "expand" option on the <B>aliasfile</B> director. Another approach is to
+       use a <B>smartuser</B> director like this:
+
+</P>
+<PRE>
+         forwarddomain:
+           driver = smartuser
+           domains = onedomain
+           new_address = $local_part@anotherdomain</PRE>
+<P>
+       <TT>new_address</TT> can, of course, be more complicated, involving lookups etc.
+       if you have lots of different cases.
+
+</P>
+<A NAME="SEC139" HREF="FAQ.html#TOC139">Q0445</A>: How can I have an address looked up in two different alias files, and
+       delivered to all the addresses that are found?
+
+
+<P>
+A0445: It is tempting to use the "unseen" option for this (see 
+        <A HREF="FAQ.html#SEC145">Q0504</A> for an
+       example of the use of "unseen"). You would have two directors, the first
+       of which has "unseen" set, so that the address is always passed on to
+       the next director, even if the first one accepts it.
+
+</P>
+<P>
+       However, there is a problem with this approach. If an address is found
+       in the first director (with unseen set) but not in the second one, it
+       will get delivered but will also (under most normal setups) generate an
+       "unknown user" bounce as well.
+
+</P>
+<P>
+       If you want an incoming address to be "properly" delivered to
+       two different "child" addresses (or lists), "unseen" is not really the
+       right way to do it. You don't really need two different directors. You
+       can use a <B>smartuser</B> director with an option something like this:
+
+</P>
+<PRE>
+         new_address = ${lookup{$local_part}lsearch{/etc/aliases1}\
+           {$value${lookup{$local_part}lsearch{/etc/aliases2}{,$value}}}\
+           {${lookup{$local_part}lsearch{/etc/aliases2}{$value}fail}}}\</PRE>
+<P>
+       If the first lookup succeeds, the result is its data, followed by the
+       data from the second lookup, if any, separated by a comma. If the first
+       lookup fails, the result is the data from the third lookup (which also
+       looks in the second file), but if this also fails, the entire expansion
+       is forced to fail, thereby causing the director to decline.
+
+</P>
+<A NAME="SEC140" HREF="FAQ.html#TOC140">Q0446</A>: I've converted from Sendmail, and I notice that Exim doesn't make use
+       of the "owner-" entries in my alias file to change the sender address in
+       outgoing messages to a mailing list.
+
+
+<P>
+A0446: If you have an alias file with entries like this:
+
+</P>
+<PRE>
+         somelist:        a@b, c@d, ...
+         owner-somelist:  postmaster</PRE>
+<P>
+       Sendmail assumes that the second entry specifies a new sender address
+       for the first. Exim does not make this assumption. However, you can make
+       it take the same action, by adding
+
+</P>
+<PRE>
+         errors_to = owner-$local_part@whatever.domain</PRE>
+<P>
+       to the configuration for your <B>aliasfile</B> director. This is fail-safe,
+       because Exim verifies a new sender address before using it. Thus, the
+       change of sender address occurs only when the owner entry exists.
+
+</P>
+<BR><H2><A NAME="SEC141" HREF="FAQ.html#TOC141">5. DELIVERY
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC116" HREF="FAQ.html#TOC116">Q0501</A>: What does the error "Neither the <I>xxx</I> director nor the <I>yyy</I> transport set
+<A NAME="SEC142" HREF="FAQ.html#TOC142">Q0501</A>: What does the error "Neither the <I>xxx</I> director nor the <I>yyy</I> transport set
        a uid for local delivery of..." mean?
 
 
        a uid for local delivery of..." mean?
 
 
@@ -3111,7 +3756,7 @@ A0501: Whenever Exim does a local delivery, it runs a process under a specific
        circumstances.
 
 </P>
        circumstances.
 
 </P>
-<A NAME="SEC117" HREF="FAQ.html#TOC117">Q0502</A>: Exim won't deliver to a host with no MX record.
+<A NAME="SEC143" HREF="FAQ.html#TOC143">Q0502</A>: Exim won't deliver to a host with no MX record.
 
 
 <P>
 
 
 <P>
@@ -3120,7 +3765,7 @@ A0502: (A) Are you sure there really is no MX record? Sometimes a typo results
        give a SERVFAIL error rather than NXDOMAIN. Exim has to treat this as
        a temporary error, so it can't go on to look for an A record. You can
        check for this state using one of the DNS interrogation commands, such
        give a SERVFAIL error rather than NXDOMAIN. Exim has to treat this as
        a temporary error, so it can't go on to look for an A record. You can
        check for this state using one of the DNS interrogation commands, such
-       as "dig".
+       as "nslookup", "host", or "dig".
 
 </P>
 <P>
 
 </P>
 <P>
@@ -3163,16 +3808,18 @@ A0502: (A) Are you sure there really is no MX record? Sometimes a typo results
        circumstance.
 
 </P>
        circumstance.
 
 </P>
-<A NAME="SEC118" HREF="FAQ.html#TOC118">Q0503</A>: How should Exim be configured when it is acting as a temporary storage
+<A NAME="SEC144" HREF="FAQ.html#TOC144">Q0503</A>: How should Exim be configured when it is acting as a temporary storage
        system for a domain on a dial-up host?
 
 
 <P>
 A0503: See 
        system for a domain on a dial-up host?
 
 
 <P>
 A0503: See 
-        <A HREF="FAQ.html#SEC220">Q1402</A>.
+        <A HREF="FAQ.html#SEC262">Q1403</A>, 
+        <A HREF="FAQ.html#SEC162">Q0521</A>, and 
+        <A HREF="FAQ.html#SEC283">Q5014</A>.
 
 </P>
 
 </P>
-<A NAME="SEC119" HREF="FAQ.html#TOC119">Q0504</A>: I would like to deliver mail addressed to a given domain normally, but
+<A NAME="SEC145" HREF="FAQ.html#TOC145">Q0504</A>: I would like to deliver mail addressed to a given domain normally, but
        also to generate a message to the envelope sender.
 
 
        also to generate a message to the envelope sender.
 
 
@@ -3190,7 +3837,7 @@ A0504: If the domain is a local one, you can do this with an "unseen" <B>smartus
            from          = postmaster@your.domain
            to            = $sender_address
            user          = exim
            from          = postmaster@your.domain
            to            = $sender_address
            user          = exim
-           subject       = "Re: Your mail to ${local_part}@${domain}"</PRE>
+           subject       = Re: Your mail to $local_part@$domain</PRE>
 <PRE>
          # Director
          auto_warning_d:
 <PRE>
          # Director
          auto_warning_d:
@@ -3214,7 +3861,7 @@ A0504: If the domain is a local one, you can do this with an "unseen" <B>smartus
        send only one message to each sender.
 
 </P>
        send only one message to each sender.
 
 </P>
-<A NAME="SEC120" HREF="FAQ.html#TOC120">Q0505</A>: Exim keeps crashing with segmentation errors (signal 11 or 139) during
+<A NAME="SEC146" HREF="FAQ.html#TOC146">Q0505</A>: Exim keeps crashing with segmentation errors (signal 11 or 139) during
        delivery. This seems to happen when it is about to contact a remote
        host or when a delivery is deferred.
 
        delivery. This seems to happen when it is about to contact a remote
        host or when a delivery is deferred.
 
@@ -3231,7 +3878,7 @@ A0505: This could be a problem with Exim's databases. Check that your DBM
        file is distributed with it.
 
 </P>
        file is distributed with it.
 
 </P>
-<A NAME="SEC121" HREF="FAQ.html#TOC121">Q0506</A>: Whenever Exim tries to do a local delivery, it gives a permission denied
+<A NAME="SEC147" HREF="FAQ.html#TOC147">Q0506</A>: Whenever Exim tries to do a local delivery, it gives a permission denied
        error for the <B>.forward</B> file, like this:
 
 
        error for the <B>.forward</B> file, like this:
 
 
@@ -3243,7 +3890,7 @@ A0505: This could be a problem with Exim's databases. Check that your DBM
 A0506: Have you remembered to make Exim setuid root?
 
 </P>
 A0506: Have you remembered to make Exim setuid root?
 
 </P>
-<A NAME="SEC122" HREF="FAQ.html#TOC122">Q0507</A>: I have installed Exim, but now I can't mail to root any more. Why is
+<A NAME="SEC148" HREF="FAQ.html#TOC148">Q0507</A>: I have installed Exim, but now I can't mail to root any more. Why is
        this?
 
 
        this?
 
 
@@ -3263,7 +3910,7 @@ A0507: Most people set up root as an alias for the manager of the machine. If
        an alias for root instead.
 
 </P>
        an alias for root instead.
 
 </P>
-<A NAME="SEC123" HREF="FAQ.html#TOC123">Q0508</A>: How can I stop undeliverable bounce messages (e.g. to routeable, but
+<A NAME="SEC149" HREF="FAQ.html#TOC149">Q0508</A>: How can I stop undeliverable bounce messages (e.g. to routeable, but
        undeliverable, spammer senders) from clogging up the queue for days?
 
 
        undeliverable, spammer senders) from clogging up the queue for days?
 
 
@@ -3273,13 +3920,13 @@ A0508: Set <TT>ignore_errmsg_errors</TT> to drop them immediately, or set <TT>ig
        that I notice them, but they go away relatively quickly.
 
 </P>
        that I notice them, but they go away relatively quickly.
 
 </P>
-<A NAME="SEC124" HREF="FAQ.html#TOC124">Q0509</A>: How can mails that are being routed through directors other than
+<A NAME="SEC150" HREF="FAQ.html#TOC150">Q0509</A>: How can mails that are being routed through directors other than
        localuser be delivered under the uid of the recipient?
 
 
 <P>
 A0509: 
        localuser be delivered under the uid of the recipient?
 
 
 <P>
 A0509: 
-        <A HREF="FAQ.html#SEC116">A0501</A> contains background information on this. If you are using, say, an
+        <A HREF="FAQ.html#SEC142">A0501</A> contains background information on this. If you are using, say, an
        alias file to direct messages to specific mailboxes, then you can use
        the "user" option on either the <B>aliasfile</B> director or the appendfile
        transport to set the uid. What you put in the setting depends on how
        alias file to direct messages to specific mailboxes, then you can use
        the "user" option on either the <B>aliasfile</B> director or the appendfile
        transport to set the uid. What you put in the setting depends on how
@@ -3287,7 +3934,7 @@ A0509:
        computed somehow from the local part, for example.
 
 </P>
        computed somehow from the local part, for example.
 
 </P>
-<A NAME="SEC125" HREF="FAQ.html#TOC125">Q0510</A>: I want to use MMDF-style mailboxes. How can I get Exim to append the
+<A NAME="SEC151" HREF="FAQ.html#TOC151">Q0510</A>: I want to use MMDF-style mailboxes. How can I get Exim to append the
        ctrl-A characters that separate indvidual emails?
 
 
        ctrl-A characters that separate indvidual emails?
 
 
@@ -3314,7 +3961,7 @@ A0510: Set the suffix option in the appendfile transport. In fact, for MMDF
        separator.
 
 </P>
        separator.
 
 </P>
-<A NAME="SEC126" HREF="FAQ.html#TOC126">Q0511</A>: I have an ISDN connection and would like a way of running the queue
+<A NAME="SEC152" HREF="FAQ.html#TOC152">Q0511</A>: I have an ISDN connection and would like a way of running the queue
        automatically when it is up.
 
 
        automatically when it is up.
 
 
@@ -3337,7 +3984,7 @@ A0511: The following shell commands test for the interface being up and then
        Linux, you could put the call to exim in that script.
 
 </P>
        Linux, you could put the call to exim in that script.
 
 </P>
-<A NAME="SEC127" HREF="FAQ.html#TOC127">Q0512</A>: If a user's mailbox is over quota, is there a way for me to set it up so
+<A NAME="SEC153" HREF="FAQ.html#TOC153">Q0512</A>: If a user's mailbox is over quota, is there a way for me to set it up so
        that the mail bounces to the sender and is NOT stored in the mail queue?
 
 
        that the mail bounces to the sender and is NOT stored in the mail queue?
 
 
@@ -3362,20 +4009,20 @@ A0512: In the retry section of the configuration, put
        failure.
 
 </P>
        failure.
 
 </P>
-<A NAME="SEC128" HREF="FAQ.html#TOC128">Q0513</A>: I'm using tmail to do local deliveries, but when I turned on the
+<A NAME="SEC154" HREF="FAQ.html#TOC154">Q0513</A>: I'm using tmail to do local deliveries, but when I turned on the
        <TT>use_crlf</TT> option on the pipe transport (tmail prefers \r\n terminations)
        message bodies started to vanish.
 
 
 <P>
        <TT>use_crlf</TT> option on the pipe transport (tmail prefers \r\n terminations)
        message bodies started to vanish.
 
 
 <P>
-A0513: You need to unset the prefix option (or change it so that its default
-       \n terminator becomes \r\n). For example, the transport could be:
+A0513: You need to unset the prefix optionor change it so that its default
+       \n terminator becomes \r\n. For example, the transport could be:
 
 </P>
 <PRE>
          local_delivery_mbx:
           driver = pipe
 
 </P>
 <PRE>
          local_delivery_mbx:
           driver = pipe
-          command = "/usr/local/bin/tmail ${local_part}"
+          command = /usr/local/bin/tmail $local_part
           user = exim
           current_directory = /
            use_crlf
           user = exim
           current_directory = /
            use_crlf
@@ -3392,7 +4039,7 @@ A0513: You need to unset the prefix option (or change it so that its default
        doubled \r\r\n lines and corrupt mbx mailboxes.
 
 </P>
        doubled \r\r\n lines and corrupt mbx mailboxes.
 
 </P>
-<A NAME="SEC129" HREF="FAQ.html#TOC129">Q0514</A>: What does the message "Unable to get root to set uid and gid
+<A NAME="SEC155" HREF="FAQ.html#TOC155">Q0514</A>: What does the message "Unable to get root to set uid and gid
        for local delivery to <I>xxx</I>: uid=<I>yyy</I> euid=<I>zzz</I>" mean?
 
 
        for local delivery to <I>xxx</I>: uid=<I>yyy</I> euid=<I>zzz</I>" mean?
 
 
@@ -3401,7 +4048,7 @@ A0514: Have you remembered to make Exim setuid root? It needs root privilege if
        it is to do any local deliveries, because it does them "as the user".
 
 </P>
        it is to do any local deliveries, because it does them "as the user".
 
 </P>
-<A NAME="SEC130" HREF="FAQ.html#TOC130">Q0515</A>: I upgraded to 2.04 and now my Envelope-To: header for my virtual domains
+<A NAME="SEC156" HREF="FAQ.html#TOC156">Q0515</A>: I upgraded to 2.04 and now my Envelope-To: header for my virtual domains
        is gone. Any idea how to get it back?
 
 
        is gone. Any idea how to get it back?
 
 
@@ -3411,7 +4058,7 @@ A0515: Read paragraph 1 of the 1.92 information in <B>README.UPDATING.</B> Add
        also want to set <TT>return_path_add</TT> and <TT>delivery_date_add</TT>.
 
 </P>
        also want to set <TT>return_path_add</TT> and <TT>delivery_date_add</TT>.
 
 </P>
-<A NAME="SEC131" HREF="FAQ.html#TOC131">Q0516</A>: The Exim log records the arrival of a message, and then "Completed",
+<A NAME="SEC157" HREF="FAQ.html#TOC157">Q0516</A>: The Exim log records the arrival of a message, and then "Completed",
        without logging any deliveries. What's going on?
 
 
        without logging any deliveries. What's going on?
 
 
@@ -3431,11 +4078,11 @@ A0516: This is unlikely in current versions of Exim, because more logging
        possibility, prior to version 2.053, was that the message was injected
        using the <B>-t</B> option, but all the addresses in the message were also on
        the command line. See 
        possibility, prior to version 2.053, was that the message was injected
        using the <B>-t</B> option, but all the addresses in the message were also on
        the command line. See 
-        <A HREF="FAQ.html#SEC248">A5020</A> for more detail. Current versions of Exim
+        <A HREF="FAQ.html#SEC289">A5020</A> for more detail. Current versions of Exim
        generate a bounce message in this case.
 
 </P>
        generate a bounce message in this case.
 
 </P>
-<A NAME="SEC132" HREF="FAQ.html#TOC132">Q0517</A>: When I activate "return receipt" for example in Netscape Mailbox
+<A NAME="SEC158" HREF="FAQ.html#TOC158">Q0517</A>: When I activate "return receipt" for example in Netscape Mailbox
        sending options, then I get an error message from Exim... something
        like "not supported". Can I activate delivery confirmations?
 
        sending options, then I get an error message from Exim... something
        like "not supported". Can I activate delivery confirmations?
 
@@ -3474,7 +4121,7 @@ A0517: Exim does not support any kind of delivery notification.
        many questions that don't have obvious answers.
 
 </P>
        many questions that don't have obvious answers.
 
 </P>
-<A NAME="SEC133" HREF="FAQ.html#TOC133">Q0518</A>: When I dial up to collect mail from my ISP, only the first 10 messages
+<A NAME="SEC159" HREF="FAQ.html#TOC159">Q0518</A>: When I dial up to collect mail from my ISP, only the first 10 messages
        get delivered immediately; the remainder just sit on the queue until a
        queue runner process finds them.
 
        get delivered immediately; the remainder just sit on the queue until a
        queue runner process finds them.
 
@@ -3488,7 +4135,7 @@ A0518: Your ISP is delivering all the messages in a single SMTP session. Exim
        some number larger than 10.
 
 </P>
        some number larger than 10.
 
 </P>
-<A NAME="SEC134" HREF="FAQ.html#TOC134">Q0519</A>: My ISP's mail server is rejecting bounce messages from Exim, complaining
+<A NAME="SEC160" HREF="FAQ.html#TOC160">Q0519</A>: My ISP's mail server is rejecting bounce messages from Exim, complaining
        that they have no sender. The SMTP trace does indeed show that the
        sender address is "&#60;&#62;". Why is the Sender on the bounce message empty?
 
        that they have no sender. The SMTP trace does indeed show that the
        sender address is "&#60;&#62;". Why is the Sender on the bounce message empty?
 
@@ -3510,7 +4157,7 @@ A0519: Because the RFCs say it must be. Your ISP is at fault. Send them this
          SHOULD be stripped down to its final hop.
 
 </P>
          SHOULD be stripped down to its final hop.
 
 </P>
-<A NAME="SEC135" HREF="FAQ.html#TOC135">Q0520</A>: What does the message "retry time not reached [for any host]" on the log
+<A NAME="SEC161" HREF="FAQ.html#TOC161">Q0520</A>: What does the message "retry time not reached [for any host]" on the log
        mean? Why won't Exim try to deliver the message?
 
 
        mean? Why won't Exim try to deliver the message?
 
 
@@ -3521,6 +4168,13 @@ A0520: That is not an error. It means exactly what it says. A previous attempt
        local as well as to remote deliveries. For remote deliveries, each host
        (if there are several) has its own retry time.
 
        local as well as to remote deliveries. For remote deliveries, each host
        (if there are several) has its own retry time.
 
+</P>
+<P>
+       If you are running on a dial-up host, the rest of this answer probably
+       does not apply to you. Go and read 
+        <A HREF="FAQ.html#SEC263">Q1404</A> instead. If your host is
+       permanently online, read on...
+
 </P>
 <P>
        Some MTAs have a retrying schedule for each message. Exim does not work
 </P>
 <P>
        Some MTAs have a retrying schedule for each message. Exim does not work
@@ -3552,10 +4206,10 @@ A0520: That is not an error. It means exactly what it says. A previous attempt
 <P>
        If you want to do this for the entire queue, use the <B>-qf</B> option. See
        also 
 <P>
        If you want to do this for the entire queue, use the <B>-qf</B> option. See
        also 
-        <A HREF="FAQ.html#SEC148">Q0533</A>.
+        <A HREF="FAQ.html#SEC174">Q0533</A>.
 
 </P>
 
 </P>
-<A NAME="SEC136" HREF="FAQ.html#TOC136">Q0521</A>: RFC 1985 specifies that the SMTP command "ETRN <B>host.domain"</B> causes all
+<A NAME="SEC162" HREF="FAQ.html#TOC162">Q0521</A>: RFC 1985 specifies that the SMTP command "ETRN <B>host.domain"</B> causes all
        mail queued for that host, no matter what domain it's for, to be
        dequeued. Why doesn't Exim support this?
 
        mail queued for that host, no matter what domain it's for, to be
        dequeued. Why doesn't Exim support this?
 
@@ -3599,11 +4253,18 @@ A0521: Exim does not keep queues of mail for specific destinations. It just
        connection to the host and shovels the waiting mail down it. That seems
        to me to be a much neater way of doing this. It means you can easily add
        additional functionality such as archiving or throwing away uncollected
        connection to the host and shovels the waiting mail down it. That seems
        to me to be a much neater way of doing this. It means you can easily add
        additional functionality such as archiving or throwing away uncollected
-       mail. One program that has this functionality is "ssmtp", which can be
+       mail.
+
+</P>
+<P>
+       One program that has this functionality is "ssmtp", which can be
        found in <B><A HREF="ftp://metalab.unc.edu/pub/Linux/system/mail/mta/.">ftp://metalab.unc.edu/pub/Linux/system/mail/mta/.</A></B>
        found in <B><A HREF="ftp://metalab.unc.edu/pub/Linux/system/mail/mta/.">ftp://metalab.unc.edu/pub/Linux/system/mail/mta/.</A></B>
+       Alternatively, sample configuration C037 demonstrates an elegant way of
+       using Exim itself to deliver the saved messages when the client issues
+       an ETRN.
 
 </P>
 
 </P>
-<A NAME="SEC137" HREF="FAQ.html#TOC137">Q0522</A>: If email has been deferred to a member on a local mailing list
+<A NAME="SEC163" HREF="FAQ.html#TOC163">Q0522</A>: If email has been deferred to a member on a local mailing list
        (implemented through forward files), and one of our ETRN clients is on
        this mailing list, the <B>-R</B> won't "flush" the mailing list message for
        that client.
        (implemented through forward files), and one of our ETRN clients is on
        this mailing list, the <B>-R</B> won't "flush" the mailing list message for
        that client.
@@ -3620,11 +4281,11 @@ A0522: That is because <B>-R</B> matches only original recipient addresses, not
        specify pipe or file deliveries. However, the problem will then still be
        present for any user who sets up a <B>.forward</B> file to redirect to any of
        the ETRN domains. See the last 3 paragraphs of 
        specify pipe or file deliveries. However, the problem will then still be
        present for any user who sets up a <B>.forward</B> file to redirect to any of
        the ETRN domains. See the last 3 paragraphs of 
-        <A HREF="FAQ.html#SEC136">A0521</A> for a discussion of
+        <A HREF="FAQ.html#SEC162">A0521</A> for a discussion of
        an alternative approach.
 
 </P>
        an alternative approach.
 
 </P>
-<A NAME="SEC138" HREF="FAQ.html#TOC138">Q0523</A>: Exim seems to be sending the same message twice, according to the log,
+<A NAME="SEC164" HREF="FAQ.html#TOC164">Q0523</A>: Exim seems to be sending the same message twice, according to the log,
        although there is a difference in capitalization of the local part of
        the address.
 
        although there is a difference in capitalization of the local part of
        the address.
 
@@ -3649,7 +4310,7 @@ A0523: That is correct. The RFCs are explicit in stating that capitalization
          local-parts impedes interoperability and is discouraged.
 
 </P>
          local-parts impedes interoperability and is discouraged.
 
 </P>
-<A NAME="SEC139" HREF="FAQ.html#TOC139">Q0524</A>: How can I force the next retry time for a host to be now?
+<A NAME="SEC165" HREF="FAQ.html#TOC165">Q0524</A>: How can I force the next retry time for a host to be now?
 
 
 <P>
 
 
 <P>
@@ -3665,7 +4326,7 @@ A0524: (A) You can force a particular message to be delivered with the <B>-M</B>
        interface is very clumsy.
 
 </P>
        interface is very clumsy.
 
 </P>
-<A NAME="SEC140" HREF="FAQ.html#TOC140">Q0525</A>: I set up "|/bin/grep Subject|/usr/bin/smbclient <B>-M</B> &#60;netbiosname&#62;" as an
+<A NAME="SEC166" HREF="FAQ.html#TOC166">Q0525</A>: I set up "|/bin/grep Subject|/usr/bin/smbclient <B>-M</B> &#60;netbiosname&#62;" as an
        alias but it doesn't work.
 
 
        alias but it doesn't work.
 
 
@@ -3677,7 +4338,7 @@ A0525: That is a shell command line. Exim does not run pipe commands under a
 </P>
 <PRE>
          "|/bin/sh -c '/bin/grep Subject|/usr/bin/smbclient -M &#60;netbiosname&#62;'"</PRE>
 </P>
 <PRE>
          "|/bin/sh -c '/bin/grep Subject|/usr/bin/smbclient -M &#60;netbiosname&#62;'"</PRE>
-<A NAME="SEC141" HREF="FAQ.html#TOC141">Q0526</A>: Why does the pipe transport add a line starting with "&#62;From" to
+<A NAME="SEC167" HREF="FAQ.html#TOC167">Q0526</A>: Why does the pipe transport add a line starting with "&#62;From" to
        messages?
 
 
        messages?
 
 
@@ -3688,7 +4349,7 @@ A0526: Actually, it adds a line starting with "From", because that is the
        of "prefix".
 
 </P>
        of "prefix".
 
 </P>
-<A NAME="SEC142" HREF="FAQ.html#TOC142">Q0527</A>: I have set <TT>fallback_hosts</TT> on my smtp transport, but after the error
+<A NAME="SEC168" HREF="FAQ.html#TOC168">Q0527</A>: I have set <TT>fallback_hosts</TT> on my smtp transport, but after the error
        <B>"sem@chat.ru</B> cannot be resolved at this time" Exim isn't using them.
 
 
        <B>"sem@chat.ru</B> cannot be resolved at this time" Exim isn't using them.
 
 
@@ -3697,10 +4358,10 @@ A0527: <TT>fallback_hosts</TT> only works if an attempt at delivery to the origi
        host(s) fails. In this case, Exim couldn't even resolve the domain
        <B>chat.ru</B> to discover what the original hosts were, so it never got as far
        as the transport. However, see 
        host(s) fails. In this case, Exim couldn't even resolve the domain
        <B>chat.ru</B> to discover what the original hosts were, so it never got as far
        as the transport. However, see 
-        <A HREF="FAQ.html#SEC73">Q0322</A> for a possible solution.
+        <A HREF="FAQ.html#SEC89">Q0322</A> for a possible solution.
 
 </P>
 
 </P>
-<A NAME="SEC143" HREF="FAQ.html#TOC143">Q0528</A>: After the holidays my ISP has always hundreds of e-mails waiting for me.
+<A NAME="SEC169" HREF="FAQ.html#TOC169">Q0528</A>: After the holidays my ISP has always hundreds of e-mails waiting for me.
        These are forced down Exim's throat in one go. Exim spawns a lot of
        kids, but is there some limit to the number of processes it creates?
 
        These are forced down Exim's throat in one go. Exim spawns a lot of
        kids, but is there some limit to the number of processes it creates?
 
@@ -3712,7 +4373,7 @@ A0528: Unless you have changed <TT>smtp_accept_queue_per_connection</TT> (introd
        is limited by <TT>smtp_accept_max</TT>.
 
 </P>
        is limited by <TT>smtp_accept_max</TT>.
 
 </P>
-<A NAME="SEC144" HREF="FAQ.html#TOC144">Q0529</A>: When a message in the queue got to 12h old, Exim wrote 'retry timeout
+<A NAME="SEC170" HREF="FAQ.html#TOC170">Q0529</A>: When a message in the queue got to 12h old, Exim wrote 'retry timeout
        exceeded' and removed <EM>all</EM> messages in the queue to this host - even
        recent messages. How I can avoid this behaviour? I only want to remove
        messages that have exceeded the maximum retry time.
        exceeded' and removed <EM>all</EM> messages in the queue to this host - even
        recent messages. How I can avoid this behaviour? I only want to remove
        messages that have exceeded the maximum retry time.
@@ -3726,7 +4387,7 @@ A0529: Exim's retrying is host-based rather than message-based. The philosophy
        want, but it might help.
 
 </P>
        want, but it might help.
 
 </P>
-<A NAME="SEC145" HREF="FAQ.html#TOC145">Q0530</A>: Can Exim add a Content-Length: header to messages it delivers?
+<A NAME="SEC171" HREF="FAQ.html#TOC171">Q0530</A>: Can Exim add a Content-Length: header to messages it delivers?
 
 
 <P>
 
 
 <P>
@@ -3746,7 +4407,7 @@ A0530: You could include something like
          <B><A HREF="http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/content-length.html">http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/content-length.html</A></B>
 
 </P>
          <B><A HREF="http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/content-length.html">http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/content-length.html</A></B>
 
 </P>
-<A NAME="SEC146" HREF="FAQ.html#TOC146">Q0531</A>: Exim seems to be trying to deliver a message every 10 minutes, though
+<A NAME="SEC172" HREF="FAQ.html#TOC172">Q0531</A>: Exim seems to be trying to deliver a message every 10 minutes, though
        the retry rules specify longer times after a while, because it is
        writing a log entry every time, like this:
 
        the retry rules specify longer times after a while, because it is
        writing a log entry every time, like this:
 
@@ -3773,7 +4434,7 @@ A0531: It is <EM>looking</EM> at the message every 10 minutes, but it isn't actu
        reached, which accounts for "retry time not reached for other hosts".
 
 </P>
        reached, which accounts for "retry time not reached for other hosts".
 
 </P>
-<A NAME="SEC147" HREF="FAQ.html#TOC147">Q0532</A>: I am trying to set exim up to have a automatic failover if it sees that
+<A NAME="SEC173" HREF="FAQ.html#TOC173">Q0532</A>: I am trying to set exim up to have a automatic failover if it sees that
        the system that it is sending all mail to is down.
 
 
        the system that it is sending all mail to is down.
 
 
@@ -3787,7 +4448,7 @@ A0532: Add to the <TT>remote_smtp</TT> transport the following:
        If there are several names, they must be separated by colons.
 
 </P>
        If there are several names, they must be separated by colons.
 
 </P>
-<A NAME="SEC148" HREF="FAQ.html#TOC148">Q0533</A>: I can't get Exim to deliver over NFS. I get the error "fcntl() failed:
+<A NAME="SEC174" HREF="FAQ.html#TOC174">Q0533</A>: I can't get Exim to deliver over NFS. I get the error "fcntl() failed:
        No locks available", though the lock daemon is running on the NFS server
        and other hosts are able to access it.
 
        No locks available", though the lock daemon is running on the NFS server
        and other hosts are able to access it.
 
@@ -3798,7 +4459,7 @@ A0533: Check that you have lockd running on the NFS <EM>client</EM>. This is not
        such system).
 
 </P>
        such system).
 
 </P>
-<A NAME="SEC149" HREF="FAQ.html#TOC149">Q0534</A>: Why does Exim bounce messages without even attempting delivery, giving
+<A NAME="SEC175" HREF="FAQ.html#TOC175">Q0534</A>: Why does Exim bounce messages without even attempting delivery, giving
        the error "retry time not reached for any host after a long failure
        period"?
 
        the error "retry time not reached for any host after a long failure
        period"?
 
@@ -3813,7 +4474,7 @@ A0534: This message means that all hosts to which the message could be sent
        will try most messages for those hosts once before giving up.
 
 </P>
        will try most messages for those hosts once before giving up.
 
 </P>
-<A NAME="SEC150" HREF="FAQ.html#TOC150">Q0535</A>: My <B>.forward</B> file is "|/usr/bin/procmail <B>-f-"</B> and mail gets delivered,
+<A NAME="SEC176" HREF="FAQ.html#TOC176">Q0535</A>: My <B>.forward</B> file is "|/usr/bin/procmail <B>-f-"</B> and mail gets delivered,
        but there was a bounce to the sender, sending him the output of procmail.
        How can I prevent this?
 
        but there was a bounce to the sender, sending him the output of procmail.
        How can I prevent this?
 
@@ -3836,10 +4497,107 @@ A0535: Exim's default configuration is set up like this:
        any output when it succeeds.
 
 </P>
        any output when it succeeds.
 
 </P>
-<BR><H2><A NAME="SEC151" HREF="FAQ.html#TOC151">6. UUCP
+<A NAME="SEC177" HREF="FAQ.html#TOC177">Q0536</A>: Can I write an ordinary file when I running a perl script as a transport
+       filter for <TT>remote_smtp</TT> and <TT>address_pipe</TT> transports?
+
+
+<P>
+A0536: Yes, provided the file is writeable by the Exim user. However, if two
+       messages are being delivered at once, their data will get mixed up in
+       the file unless you implement your own locking scheme. If all you want
+       to do is to take a copy of the message, another approach that avoids
+       the locking problem is to use a system filter to set up an "unseen"
+       delivery to a file. If you only want the message's headers, you can
+       set <TT>message_filter_file_transport</TT> to point to a special appendfile
+       transport that has <TT>headers_only</TT> set.
+
+</P>
+<A NAME="SEC178" HREF="FAQ.html#TOC178">Q0537</A>: I have some mails on my queues that are sticking around longer than
+       the retry time indicates they should. They are all getting frozen
+       because some remote admin has set their MX record to 127.0.0.1.
+
+
+<P>
+A0537: The admin in question is an idiot. Exim will always freeze such messages
+       because they are apparently routed to the local host. There are two
+       router options that can help you deal with them.
+
+</P>
+<P>
+       (1) Set
+
+</P>
+<PRE>
+         self = fail</PRE>
+<P>
+       on the router which handles the domain - in a simple configuration this
+       will be the <B>lookuphost</B> router. This will cause the relevant addresses to
+       bounce, instead of freezing the message.
+
+</P>
+<P>
+       (2) If you are running Exim 3.20 or later, you can set
+
+</P>
+<PRE>
+         ignore_target_hosts = 127.0.0.1</PRE>
+<P>
+       on the router instead. This causes Exim to completely ignore any hosts
+       with that IP address.
+
+</P>
+<A NAME="SEC179" HREF="FAQ.html#TOC179">Q0538</A>: My <B>/var/spool/mail</B> has grown drastically. Is there any possibility of
+       using two files in <B>exim.cfg</B> ?
+
+
+<P>
+A0538: You can use an expansion string to split mailboxes between two
+       directories. For example,
+
+</P>
+<PRE>
+         file = /var/spool/mail${nhash_2:$local_part}/$local_part</PRE>
+<P>
+       which does a hash on the local part, producing either 0 or 1, thereby
+       using mail0 or mail1. But remember, the MUAs that read these mailboxes
+       also have to know where they are.
+
+</P>
+<A NAME="SEC180" HREF="FAQ.html#TOC180">Q0539</A>: Sendmail has a program called smrsh that restricts what binaries
+       can be run from sendmail aliases. Is there someting like this in Exim ?
+
+
+<P>
+A0539: Check out the <TT>allow_commands</TT> option in the pipe transport.
+
+</P>
+<A NAME="SEC181" HREF="FAQ.html#TOC181">Q0540</A>: I wish to have large emails go out one at a time.
+
+
+<P>
+A0540: One possibility is to set up a router that defers all large messages,
+       except in queue runs. Since queue runners deliver just one
+       message at a time, if you limited the number of simultaneous queue
+       runners to 1, you would get the effect you wanted. A suitable router
+       might be
+
+</P>
+<PRE>
+         defer_if_large_unless_queue_run:
+           driver = domainlist
+           self = defer
+           condition = ${if or{{queue_running}{&#60;{$message_size}{200K}}}{no}{yes}}
+           route_list = * 127.0.0.1 byname</PRE>
+<P>
+       Of course, this would always delay any large message until the next
+       queue runner, but if you run them fairly regularly, this shouldn't be a
+       huge problem. (May even be desirable!)
+
+</P>
+<BR><H2><A NAME="SEC182" HREF="FAQ.html#TOC182">6. UUCP
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC152" HREF="FAQ.html#TOC152">Q0601</A>: The MX records for some UUCP domains point to my local host. How do I
+<A NAME="SEC183" HREF="FAQ.html#TOC183">Q0601</A>: The MX records for some UUCP domains point to my local host. How do I
        get it to pass the messages on to UUCP?
 
 
        get it to pass the messages on to UUCP?
 
 
@@ -3886,7 +4644,7 @@ A0601: There are several possibilities. One straightforward way is to set up
        the domain name.
 
 </P>
        the domain name.
 
 </P>
-<A NAME="SEC153" HREF="FAQ.html#TOC153">Q0602</A>: How can I get Exim to handle "bang path" addresses?
+<A NAME="SEC184" HREF="FAQ.html#TOC184">Q0602</A>: How can I get Exim to handle "bang path" addresses?
 
 
 <P>
 
 
 <P>
@@ -3948,7 +4706,7 @@ A0602: In general, you can't (Exim is an Internet mailer and recognizes only
        the message.
 
 </P>
        the message.
 
 </P>
-<A NAME="SEC154" HREF="FAQ.html#TOC154">Q0603</A>: We see something strange on our system in regards to mail comming in via
+<A NAME="SEC185" HREF="FAQ.html#TOC185">Q0603</A>: We see something strange on our system in regards to mail comming in via
        rmail from a UUCP link. The sender is being set to mailmaster instead of
        the real sender, and a Sender: header is being added to the message.
 
        rmail from a UUCP link. The sender is being set to mailmaster instead of
        the real sender, and a Sender: header is being added to the message.
 
@@ -3960,10 +4718,10 @@ A0603: If mailmaster is the user that is running rmail, you need to include
        command line.
 
 </P>
        command line.
 
 </P>
-<BR><H2><A NAME="SEC155" HREF="FAQ.html#TOC155">7. PERFORMANCE
+<BR><H2><A NAME="SEC186" HREF="FAQ.html#TOC186">7. PERFORMANCE
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC156" HREF="FAQ.html#TOC156">Q0701</A>: I'm running a large mail server. Should I set <TT>split_spool_directory</TT> to
+<A NAME="SEC187" HREF="FAQ.html#TOC187">Q0701</A>: I'm running a large mail server. Should I set <TT>split_spool_directory</TT> to
        improve performance?
 
 
        improve performance?
 
 
@@ -3975,7 +4733,7 @@ A0701: There doesn't seem to be any significant performance hit using a flat
        ???? Other operating systems ????
 
 </P>
        ???? Other operating systems ????
 
 </P>
-<A NAME="SEC157" HREF="FAQ.html#TOC157">Q0702</A>: How well does Exim scale?
+<A NAME="SEC188" HREF="FAQ.html#TOC188">Q0702</A>: How well does Exim scale?
 
 
 <P>
 
 
 <P>
@@ -4031,7 +4789,7 @@ A0702: Although the author did not specifically set out to write a high-
        considerable performance <B>--</B> 10000 m/hour."
 
 </P>
        considerable performance <B>--</B> 10000 m/hour."
 
 </P>
-<A NAME="SEC158" HREF="FAQ.html#TOC158">Q0703</A>: We have a large password file. Can Exim use alternative lookups during
+<A NAME="SEC189" HREF="FAQ.html#TOC189">Q0703</A>: We have a large password file. Can Exim use alternative lookups during
        delivery to speed things up?
 
 
        delivery to speed things up?
 
 
@@ -4041,10 +4799,37 @@ A0703: Yes. You don't have to use the password file at all. See sample
        these could equally be DBM or cdb or NIS or LDAP lookups.)
 
 </P>
        these could equally be DBM or cdb or NIS or LDAP lookups.)
 
 </P>
-<BR><H2><A NAME="SEC159" HREF="FAQ.html#TOC159">8. POLICY CONTROLS
+<P>
+       If you are using FreeBSD, this problem should not arise, because it
+       automatically uses an indexed password file. In some other operating
+       systems you can arrange for this to happen too. On Linux, for example,
+       all you need to do is
+
+</P>
+<PRE>
+         # cd /var/db
+         # make</PRE>
+<P>
+       and put "db" before "files" in any <B><B>/etc/nsswitch.conf</B></B> lines you want to
+       use db for.
+
+</P>
+<A NAME="SEC190" HREF="FAQ.html#TOC190">Q0704</A>: I just wondered if it might be helpful to put the hints database on a
+       RAM disk during regular operation. Did anybody try that yet?
+
+
+<P>
+A0704: A user reported thus: I have found that this works GREAT under Solaris.
+       Make a RAM disk partition and keep everything in the "db" directory on
+       it. However, when I try the same thing on Linux, I don't see the same
+       boost. I think that Linux's file buffer cache works about the same.
+       Plus, this leave more room for processes to run.
+
+</P>
+<BR><H2><A NAME="SEC191" HREF="FAQ.html#TOC191">8. POLICY CONTROLS
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC160" HREF="FAQ.html#TOC160">Q0801</A>: How do I block unwanted messages from outside my host?
+<A NAME="SEC192" HREF="FAQ.html#TOC192">Q0801</A>: How do I block unwanted messages from outside my host?
 
 
 <P>
 
 
 <P>
@@ -4130,7 +4915,7 @@ A0801: There are several different options that can be used to block incoming
            recipient.
 
 </P>
            recipient.
 
 </P>
-<A NAME="SEC161" HREF="FAQ.html#TOC161">Q0802</A>: I don't want to block spam entirely; how can I inspect each message
+<A NAME="SEC193" HREF="FAQ.html#TOC193">Q0802</A>: I don't want to block spam entirely; how can I inspect each message
        before deciding whether to deliver it or not?
 
 
        before deciding whether to deliver it or not?
 
 
@@ -4139,7 +4924,7 @@ A0802: This can be done by using a system filter. See the sample configuration
        F003.
 
 </P>
        F003.
 
 </P>
-<A NAME="SEC162" HREF="FAQ.html#TOC162">Q0803</A>: How can I test that my spam blocks are working?
+<A NAME="SEC194" HREF="FAQ.html#TOC194">Q0803</A>: How can I test that my spam blocks are working?
 
 
 <P>
 
 
 <P>
@@ -4154,7 +4939,7 @@ A0803: The <B>-bh</B> option allows you to run a testing SMTP session as if from
        which tests have succeeded or failed.
 
 </P>
        which tests have succeeded or failed.
 
 </P>
-<A NAME="SEC163" HREF="FAQ.html#TOC163">Q0804</A>: How can I test that Exim is correctly configured to use the Realtime
+<A NAME="SEC195" HREF="FAQ.html#TOC195">Q0804</A>: How can I test that Exim is correctly configured to use the Realtime
        Blocking List (RBL)?
 
 
        Blocking List (RBL)?
 
 
@@ -4176,7 +4961,7 @@ A0804: The <B>-bh</B> option allows you to run a testing SMTP session as if from
        server looks from the view of someone on the RBL.
 
 </P>
        server looks from the view of someone on the RBL.
 
 </P>
-<A NAME="SEC164" HREF="FAQ.html#TOC164">Q0805</A>: How can I use <B>tcpwrappers</B> in conjunction with Exim?
+<A NAME="SEC196" HREF="FAQ.html#TOC196">Q0805</A>: How can I use <B>tcpwrappers</B> in conjunction with Exim?
 
 
 <P>
 
 
 <P>
@@ -4236,15 +5021,16 @@ A0805: Exim's own control facilities can do all that <B>tcpwrappers</B> can do.
        including ports, <B>etc.,</B> and on logging connections.
 
 </P>
        including ports, <B>etc.,</B> and on logging connections.
 
 </P>
-<A NAME="SEC165" HREF="FAQ.html#TOC165">Q0806</A>: How can I get POP-auth-before-relay support in Exim?
+<A NAME="SEC197" HREF="FAQ.html#TOC197">Q0806</A>: How can I get POP-auth-before-relay support in Exim?
 
 
 <P>
 A0806: See <B><A HREF="http://cc.ysu.edu/~doug/exim-pop.tar.Z">http://cc.ysu.edu/~doug/exim-pop.tar.Z</A></B> which has some scripts for
 
 
 <P>
 A0806: See <B><A HREF="http://cc.ysu.edu/~doug/exim-pop.tar.Z">http://cc.ysu.edu/~doug/exim-pop.tar.Z</A></B> which has some scripts for
-       this, courtesy of Doug S <B><B>&#60;doug@cc.ysu.edu</B>&#62;.</B>
+       this, courtesy of Doug S <B><B>&#60;doug@cc.ysu.edu</B>&#62;.</B> See also 
+        <A HREF="FAQ.html#SEC226">Q0835</A>.
 
 </P>
 
 </P>
-<A NAME="SEC166" HREF="FAQ.html#TOC166">Q0807</A>: I have one or two cases where my machine correctly rejects messages, but
+<A NAME="SEC198" HREF="FAQ.html#TOC198">Q0807</A>: I have one or two cases where my machine correctly rejects messages, but
        the remote machine is quite persistent, and keeps trying over and over.
 
 
        the remote machine is quite persistent, and keeps trying over and over.
 
 
@@ -4257,7 +5043,7 @@ A0807: It is an unfortunate fact that a number of SMTP clients, in violation of
        result in an error code after the data has been received.
 
 </P>
        result in an error code after the data has been received.
 
 </P>
-<A NAME="SEC167" HREF="FAQ.html#TOC167">Q0808</A>: I am seeing the error "no valid sender in message headers: return path
+<A NAME="SEC199" HREF="FAQ.html#TOC199">Q0808</A>: I am seeing the error "no valid sender in message headers: return path
        is &#60;&#62;" in the reject log. Isn't &#60;&#62; a valid return path for error
        messages?
 
        is &#60;&#62;" in the reject log. Isn't &#60;&#62; a valid return path for error
        messages?
 
@@ -4271,7 +5057,7 @@ A0808: It is indeed valid. The complaint here is about the contents of the
        verification of those addresses failed.
 
 </P>
        verification of those addresses failed.
 
 </P>
-<A NAME="SEC168" HREF="FAQ.html#TOC168">Q0809</A>: Let's say that we want to run a mail server that does not care if you
+<A NAME="SEC200" HREF="FAQ.html#TOC200">Q0809</A>: Let's say that we want to run a mail server that does not care if you
        have proper reverse DNS. If you include <TT>host_reject</TT> lines in your
        config file, Exim will always reject connections from such hosts. How
        can this be avoided?
        have proper reverse DNS. If you include <TT>host_reject</TT> lines in your
        config file, Exim will always reject connections from such hosts. How
        can this be avoided?
@@ -4294,14 +5080,14 @@ A0809: This is true only if you have wild-carded host names in  <TT>host_reject<
        same, but every time the exception is invoked, it is logged.
 
 </P>
        same, but every time the exception is invoked, it is logged.
 
 </P>
-<A NAME="SEC169" HREF="FAQ.html#TOC169">Q0810</A>: Is there a way to prevent lookups in the RBL for local hosts?
+<A NAME="SEC201" HREF="FAQ.html#TOC201">Q0810</A>: Is there a way to prevent lookups in the RBL for local hosts?
 
 
 <P>
 A0810: Check out the <TT>rbl_hosts</TT> option.
 
 </P>
 
 
 <P>
 A0810: Check out the <TT>rbl_hosts</TT> option.
 
 </P>
-<A NAME="SEC170" HREF="FAQ.html#TOC170">Q0811</A>: How can I set up the <TT>sender_reject</TT> option in my config file so I can
+<A NAME="SEC202" HREF="FAQ.html#TOC202">Q0811</A>: How can I set up the <TT>sender_reject</TT> option in my config file so I can
        reject mail by matching regular expressions?
 
 
        reject mail by matching regular expressions?
 
 
@@ -4338,10 +5124,10 @@ A0811: You must either put the regular expressions directly in the option
 <P>
        See the manual section entitled "Address lists" for a description of the
        @@ type of split domain/local part lookup. See also 
 <P>
        See the manual section entitled "Address lists" for a description of the
        @@ type of split domain/local part lookup. See also 
-        <A HREF="FAQ.html#SEC160">Q0801</A>.
+        <A HREF="FAQ.html#SEC192">Q0801</A>.
 
 </P>
 
 </P>
-<A NAME="SEC171" HREF="FAQ.html#TOC171">Q0812</A>: Normally <TT>sender_reject_recipients</TT> works fine, but addresses that have
+<A NAME="SEC203" HREF="FAQ.html#TOC203">Q0812</A>: Normally <TT>sender_reject_recipients</TT> works fine, but addresses that have
        some uppercase letters in them seem to come through.
 
 
        some uppercase letters in them seem to come through.
 
 
@@ -4358,7 +5144,7 @@ A0812: This should no longer be the case from release 3.00 onwards. Although
        caselessly, so Exim now does this by default.
 
 </P>
        caselessly, so Exim now does this by default.
 
 </P>
-<A NAME="SEC172" HREF="FAQ.html#TOC172">Q0813</A>: I want to accept some sender addresses, even though they do not verify.
+<A NAME="SEC204" HREF="FAQ.html#TOC204">Q0813</A>: I want to accept some sender addresses, even though they do not verify.
        There doesn't seem to be an option for verification exceptions, so how
        can I do this?
 
        There doesn't seem to be an option for verification exceptions, so how
        can I do this?
 
@@ -4378,7 +5164,7 @@ A0813: Set up a special director or router to ensure that those addresses do
            domains = some.domain.com
            local_parts = root
            route_list = *</PRE>
            domains = some.domain.com
            local_parts = root
            route_list = *</PRE>
-<A NAME="SEC173" HREF="FAQ.html#TOC173">Q0814</A>: We are being plagued by forged mail coming from a number of different
+<A NAME="SEC205" HREF="FAQ.html#TOC205">Q0814</A>: We are being plagued by forged mail coming from a number of different
        hosts and sender addresses. The guy however leaves a fingerprint. The
        first received line always contains 'Received: from baby'. What is the
        best suggested way for eliminiating him from our systems?
        hosts and sender addresses. The guy however leaves a fingerprint. The
        first received line always contains 'Received: from baby'. What is the
        best suggested way for eliminiating him from our systems?
@@ -4396,7 +5182,7 @@ A0814: You cannot, unfortunately, prevent the message from getting into your
 <PRE>
          # Exim filter
          if $h_Received: contains "from baby" then seen finish endif</PRE>
 <PRE>
          # Exim filter
          if $h_Received: contains "from baby" then seen finish endif</PRE>
-<A NAME="SEC174" HREF="FAQ.html#TOC174">Q0815</A>: I have set <TT>host_accept_relay</TT>, but my host still refuses to relay from
+<A NAME="SEC206" HREF="FAQ.html#TOC206">Q0815</A>: I have set <TT>host_accept_relay</TT>, but my host still refuses to relay from
        matching hosts.
 
 
        matching hosts.
 
 
@@ -4432,10 +5218,10 @@ A0815: (A) Did you remember to HUP or restart the Exim daemon after changing
            fails, relaying is rejected. However, if the list were in the
            opposite order, the IP check would succeed, and no DNS lookup would
            be done. See also 
            fails, relaying is rejected. However, if the list were in the
            opposite order, the IP check would succeed, and no DNS lookup would
            be done. See also 
-        <A HREF="FAQ.html#SEC168">Q0809</A>.
+        <A HREF="FAQ.html#SEC200">Q0809</A>.
 
 </P>
 
 </P>
-<A NAME="SEC175" HREF="FAQ.html#TOC175">Q0816</A>: How can I run customized verification checks on incoming addresses?
+<A NAME="SEC207" HREF="FAQ.html#TOC207">Q0816</A>: How can I run customized verification checks on incoming addresses?
 
 
 <P>
 
 
 <P>
@@ -4476,7 +5262,7 @@ A0816: If you can implement your checks in Perl, then you can use Exim's
 <P>
        Remote addresses can be handled in a similar way by using a <B>domainlist</B>
        router that matches all domains. See also 
 <P>
        Remote addresses can be handled in a similar way by using a <B>domainlist</B>
        router that matches all domains. See also 
-        <A HREF="FAQ.html#SEC172">Q0813</A>.
+        <A HREF="FAQ.html#SEC204">Q0813</A>.
 
 </P>
 <P>
 
 </P>
 <P>
@@ -4485,7 +5271,7 @@ A0816: If you can implement your checks in Perl, then you can use Exim's
        for doing what you want before going down this road.
 
 </P>
        for doing what you want before going down this road.
 
 </P>
-<A NAME="SEC176" HREF="FAQ.html#TOC176">Q0817</A>: Does Exim apply RBL checks to error messages, those with an envelope
+<A NAME="SEC208" HREF="FAQ.html#TOC208">Q0817</A>: Does Exim apply RBL checks to error messages, those with an envelope
        sender of "&#60;&#62;" ?
 
 
        sender of "&#60;&#62;" ?
 
 
@@ -4495,7 +5281,7 @@ A0817: Yes, it does, because the RBL check happens immediately on connection,
        that the envelope sender is "&#60;&#62;".
 
 </P>
        that the envelope sender is "&#60;&#62;".
 
 </P>
-<A NAME="SEC177" HREF="FAQ.html#TOC177">Q0818</A>: I want to be able to set up a list, similar to <TT>sender_reject_recipients</TT>,
+<A NAME="SEC209" HREF="FAQ.html#TOC209">Q0818</A>: I want to be able to set up a list, similar to <TT>sender_reject_recipients</TT>,
        but with a user-defined message. I believe I have to use a director for
        this.
 
        but with a user-defined message. I believe I have to use a director for
        this.
 
@@ -4517,7 +5303,7 @@ A0818: You can do this using the <TT>prohibition_message</TT> mechanism (see the
        treated as a line separator in prohibition texts.
 
 </P>
        treated as a line separator in prohibition texts.
 
 </P>
-<A NAME="SEC178" HREF="FAQ.html#TOC178">Q0819</A>: I want to reject certain sender-recipient combinations, with a specific
+<A NAME="SEC210" HREF="FAQ.html#TOC210">Q0819</A>: I want to reject certain sender-recipient combinations, with a specific
        message for each such combination.
 
 
        message for each such combination.
 
 
@@ -4576,7 +5362,7 @@ A0819: That needs a special director, using the "senders" option to predicate
        because the bounce message you generate will get stuck.
 
 </P>
        because the bounce message you generate will get stuck.
 
 </P>
-<A NAME="SEC179" HREF="FAQ.html#TOC179">Q0820</A>: Will Exim allow me to create a file of regexs and match incoming
+<A NAME="SEC211" HREF="FAQ.html#TOC211">Q0820</A>: Will Exim allow me to create a file of regexs and match incoming
        external email to the list - and if a match is found file the offending
        message into a special location? Also is it possible to make exim only
        filter parts of an incoming email - e.g. ignore large MIME attachments
        external email to the list - and if a match is found file the offending
        message into a special location? Also is it possible to make exim only
        filter parts of an incoming email - e.g. ignore large MIME attachments
@@ -4613,7 +5399,7 @@ A0820: You can do some of this in a system filter. For example:
        algorithm it liked for deciding what should be done.
 
 </P>
        algorithm it liked for deciding what should be done.
 
 </P>
-<A NAME="SEC180" HREF="FAQ.html#TOC180">Q0821</A>: I've hacked sendmail to make an ioctl call at the time of the SMTP RCPT
+<A NAME="SEC212" HREF="FAQ.html#TOC212">Q0821</A>: I've hacked sendmail to make an ioctl call at the time of the SMTP RCPT
        command, to check if a user has exceeded their email quota. If they have
        I issue a temporary failure and a message - can I do this with Exim?
 
        command, to check if a user has exceeded their email quota. If they have
        I issue a temporary failure and a message - can I do this with Exim?
 
@@ -4633,7 +5419,7 @@ A0821: This could be done by arranging for a quota check to happen during the
        immediately, otherwise try every hour for one day, then bounce").
 
 </P>
        immediately, otherwise try every hour for one day, then bounce").
 
 </P>
-<A NAME="SEC181" HREF="FAQ.html#TOC181">Q0822</A>: I'm looking for a rule to reject special unknown recipients.
+<A NAME="SEC213" HREF="FAQ.html#TOC213">Q0822</A>: I'm looking for a rule to reject special unknown recipients.
 
 
 <P>
 
 
 <P>
@@ -4669,10 +5455,10 @@ A0822: If the messages in question are coming in via SMTP, you can turn on
        router with a <TT>condition</TT> setting to send such messages to an autoreply
        transport that sends back an error message to the sender. See also
        
        router with a <TT>condition</TT> setting to send such messages to an autoreply
        transport that sends back an error message to the sender. See also
        
-        <A HREF="FAQ.html#SEC185">Q0826</A>.
+        <A HREF="FAQ.html#SEC217">Q0826</A>.
 
 </P>
 
 </P>
-<A NAME="SEC182" HREF="FAQ.html#TOC182">Q0823</A>: I'd like to pass all messages through a virus-scanning system before
+<A NAME="SEC214" HREF="FAQ.html#TOC214">Q0823</A>: I'd like to pass all messages through a virus-scanning system before
        delivery. Can Exim do this?
 
 
        delivery. Can Exim do this?
 
 
@@ -4704,10 +5490,12 @@ A0823: One way of achieving this is to deliver all messages via a pipe to a
        suitable checking program or script which runs as a trusted user. This
        can then re-submit the message to Exim, using <B>-oMr</B> to set the received
        protocol to "scanned-ok", and the <B>-f</B> option to set the correct envelope
        suitable checking program or script which runs as a trusted user. This
        can then re-submit the message to Exim, using <B>-oMr</B> to set the received
        protocol to "scanned-ok", and the <B>-f</B> option to set the correct envelope
-       sender address.
+       sender address. WARNING: If you forget to make the resubmitting process
+       run as a trusted user, the received protocol does not get set, and you
+       are likely to generate a loop.
 
 </P>
 
 </P>
-<A NAME="SEC183" HREF="FAQ.html#TOC183">Q0824</A>: How can I accomplish this: a message sent from any host must either be
+<A NAME="SEC215" HREF="FAQ.html#TOC215">Q0824</A>: How can I accomplish this: a message sent from any host must either be
        sending to a domain in a list (a dbm file) or the sender's address
        domain must be in the list.
 
        sending to a domain in a list (a dbm file) or the sender's address
        domain must be in the list.
 
@@ -4737,7 +5525,7 @@ A0824: First of all, set
        host may end up on one of the open relay blocking lists as a result.
 
 </P>
        host may end up on one of the open relay blocking lists as a result.
 
 </P>
-<A NAME="SEC184" HREF="FAQ.html#TOC184">Q0825</A>: I've set <TT>relay_domains</TT> and <TT>sender_address_relay</TT>, but if <B>user@mydomain</B>
+<A NAME="SEC216" HREF="FAQ.html#TOC216">Q0825</A>: I've set <TT>relay_domains</TT> and <TT>sender_address_relay</TT>, but if <B>user@mydomain</B>
        tries sending to an arbitrary domain, Exim rejects it.
 
 
        tries sending to an arbitrary domain, Exim rejects it.
 
 
@@ -4761,7 +5549,7 @@ A0825: The safest way to control relaying arbitrary domains is by host, not
        host may end up on one of the open relay blocking lists as a result.
 
 </P>
        host may end up on one of the open relay blocking lists as a result.
 
 </P>
-<A NAME="SEC185" HREF="FAQ.html#TOC185">Q0826</A>: I set <TT>sender_reject_recipients</TT>, but Exim is not rejecting those
+<A NAME="SEC217" HREF="FAQ.html#TOC217">Q0826</A>: I set <TT>sender_reject_recipients</TT>, but Exim is not rejecting those
        recipients.
 
 
        recipients.
 
 
@@ -4778,20 +5566,20 @@ A0826: You have misunderstood the option. A setting like that rejects <EM>all</E
        approach is to set up a router to send the address to your directors,
        and then use an alias file to generate a :fail: message as above.
        Alternatively, you can use the verification mechanism: see 
        approach is to set up a router to send the address to your directors,
        and then use an alias file to generate a :fail: message as above.
        Alternatively, you can use the verification mechanism: see 
-        <A HREF="FAQ.html#SEC181">Q0822</A>.
+        <A HREF="FAQ.html#SEC213">Q0822</A>.
 
 </P>
 
 </P>
-<A NAME="SEC186" HREF="FAQ.html#TOC186">Q0827</A>: I can't find an option to deny "RCPT TO:" addresses.
+<A NAME="SEC218" HREF="FAQ.html#TOC218">Q0827</A>: I can't find an option to deny "RCPT TO:" addresses.
 
 
 <P>
 A0827: Denying RCPT TO addresses is the job of verifying. You can set up
        directors and routers that are run only when verifying and not when
        delivering. This gives you a great deal of flexibility. See 
 
 
 <P>
 A0827: Denying RCPT TO addresses is the job of verifying. You can set up
        directors and routers that are run only when verifying and not when
        delivering. This gives you a great deal of flexibility. See 
-        <A HREF="FAQ.html#SEC181">Q0822</A>.
+        <A HREF="FAQ.html#SEC213">Q0822</A>.
 
 </P>
 
 </P>
-<A NAME="SEC187" HREF="FAQ.html#TOC187">Q0828</A>: My problem is that Exim replaces <B>$local_part</B> with an empty string in the
+<A NAME="SEC219" HREF="FAQ.html#TOC219">Q0828</A>: My problem is that Exim replaces <B>$local_part</B> with an empty string in the
        system filtering. What's wrong or what did I miss?
 
 
        system filtering. What's wrong or what did I miss?
 
 
@@ -4803,7 +5591,7 @@ A0828: A message may have many recipients. The system filter is run just once
        called <B><B>$recipients.</B></B>
 
 </P>
        called <B><B>$recipients.</B></B>
 
 </P>
-<A NAME="SEC188" HREF="FAQ.html#TOC188">Q0829</A>: Using <B>$recipients</B> in a system filter gives me another problem: how can
+<A NAME="SEC220" HREF="FAQ.html#TOC220">Q0829</A>: Using <B>$recipients</B> in a system filter gives me another problem: how can
        I do a string lookup if <B>$recipients</B> is a list of addresses?
 
 
        I do a string lookup if <B>$recipients</B> is a list of addresses?
 
 
@@ -4813,7 +5601,7 @@ A0829: Check out section 25 of the filter document ("Testing a list of
        embedded Perl interpreter - but that is expensive.
 
 </P>
        embedded Perl interpreter - but that is expensive.
 
 </P>
-<A NAME="SEC189" HREF="FAQ.html#TOC189">Q0830</A>: Is there a way to configure Exim to reject mail to a certain local host?
+<A NAME="SEC221" HREF="FAQ.html#TOC221">Q0830</A>: Is there a way to configure Exim to reject mail to a certain local host?
 
 
 <P>
 
 
 <P>
@@ -4833,7 +5621,7 @@ A0830: No, only to certain domains. Use a configuration like this:
            domains = rejected.domain
            verify_only
            fail_verify</PRE>
            domains = rejected.domain
            verify_only
            fail_verify</PRE>
-<A NAME="SEC190" HREF="FAQ.html#TOC190">Q0831</A>: Exim sometimes rejects messages with bad senders after the DATA and
+<A NAME="SEC222" HREF="FAQ.html#TOC222">Q0831</A>: Exim sometimes rejects messages with bad senders after the DATA and
        sometimes after the MAIL command. What is the difference?
 
 
        sometimes after the MAIL command. What is the difference?
 
 
@@ -4848,7 +5636,7 @@ A0831: The first time Exim encounters a particular bad sender, it rejects the
        rejects every RCPT command instead.
 
 </P>
        rejects every RCPT command instead.
 
 </P>
-<A NAME="SEC191" HREF="FAQ.html#TOC191">Q0832</A>: How can I get Exim to remove attachments from messages?
+<A NAME="SEC223" HREF="FAQ.html#TOC223">Q0832</A>: How can I get Exim to remove attachments from messages?
 
 
 <P>
 
 
 <P>
@@ -4866,7 +5654,7 @@ A0832: (A) The cleanest way is to check for the existence of a "Content-type"
            headers.
 
 </P>
            headers.
 
 </P>
-<A NAME="SEC192" HREF="FAQ.html#TOC192">Q0833</A>: I ran a relay test against my host and it failed with an address
+<A NAME="SEC224" HREF="FAQ.html#TOC224">Q0833</A>: I ran a relay test against my host and it failed with an address
        containing a %, though I don't have <TT>percent_hack_domains</TT> set. Is Exim
        broken? This is what the tester said:
 
        containing a %, though I don't have <TT>percent_hack_domains</TT> set. Is Exim
        broken? This is what the tester said:
 
@@ -4883,23 +5671,177 @@ A0832: (A) The cleanest way is to check for the existence of a "Content-type"
          Uh oh, host appeared to accept a message for relay.
          The host may reject this message internally, however</PRE>
 <P>
          Uh oh, host appeared to accept a message for relay.
          The host may reject this message internally, however</PRE>
 <P>
-A0833: This does not prove that your host is open for relaying. Notice the
-       wording of the last two sentences: "appeared to accept" and "may reject
-       internally". Assuming that your Exim configuration is correct, Exim will
-       discover that the local part <B>"relaytest%mail-abuse.org"</B> is not valid on
-       your host, and it will bounce the message.
+A0833: This does not prove that your host is open for relaying. Notice the
+       wording of the last two sentences: "appeared to accept" and "may reject
+       internally". Assuming that your Exim configuration is correct, Exim will
+       discover that the local part <B>"relaytest%mail-abuse.org"</B> is not valid on
+       your host, and it will bounce the message.
+
+</P>
+<P>
+       Why doesn't it reject the RCPT TO command? Answer: because you have not
+       set <TT>receiver_verify</TT> in your configuration file, or you have excluded
+       these particular sender or recipient domains from receiver verification.
+
+</P>
+<A NAME="SEC225" HREF="FAQ.html#TOC225">Q0834</A>: How can I arrange for each user to have a file listing the only sender
+       addresses from which she will accept mail? I want to do this so my
+       family members don't get any spam (or other inappropriate mail).
+
+
+<P>
+A0834: Arrange for each user you want to control to have a file called
+       .acceptlist, ignoring for the moment how this gets maintained. Then,
+       turn on <TT>receiver_verify</TT> and make the following your first director:
+
+</P>
+<PRE>
+         verify_known_sender:
+           driver = smartuser
+           require_files = /home/$local_part/.acceptlist
+           senders = ! /home/$local_part/.acceptlist
+           new_address = :fail: Sender unknown</PRE>
+<P>
+       That will stop such messages even getting into your host. (Replace
+       <B>/home/$local_part</B> with whatever the correct path to your user's home
+       directories is.) As written above, the accept list is interpolated into
+       the senders list and can contain wild cards. If there are no wild cards
+       and the lists get very long, it would be more efficient to convert them
+       into some indexed format, e.g. cdb and use a cdb lookup.
+
+</P>
+<P>
+       One problem with this is that it will block bounce messages, which have
+       empty senders. You can get round this, by changing the "senders" line to
+
+</P>
+<PRE>
+           senders = ! : ! /home/$local_part/.acceptlist</PRE>
+<P>
+       However, this will, of course, let in spam that has a null sender. Since
+       the "senders" option is expanded, you could perhaps include something
+       that tested a message without a sender for being a plausible bounce
+       message before including the null sender in the list. Another approach
+       would be to use a <TT>condition</TT> option to do various tests, including
+       looking up <B>$sender_address</B> in <B><B>/home/$local_part/.acceptlist</B>.</B>
+
+</P>
+<A NAME="SEC226" HREF="FAQ.html#TOC226">Q0835</A>: I have the POP-auth-before-relay support in, but I see that Exim still
+       does an RBL lookup before checking the POP authorisation file. How can I
+       prevent it doing an RBL check if the caller is authorized by virtue of a
+       recent POP authentication?
+
+
+<P>
+A0835: If the file containing a list of recent POP-authenticated hosts is
+       <B>/usr/local/etc/exim/popauth</B>, say, set
+
+</P>
+<PRE>
+         rbl_hosts = !/usr/local/etc/exim/popauth</PRE>
+<P>
+       so that hosts in the list are exempted from RBL checking.
+
+</P>
+<A NAME="SEC227" HREF="FAQ.html#TOC227">Q0836</A>: When using Nessus on a system that runs exim, a number of security
+       issues are raised. Nessus complains that exim answers to EXPN and/or
+       VRFY; sometimes it even complains that exim allows relaying.
+
+
+<P>
+A0836: Exim supports EXPN only if you permit it to do so by setting
+       <TT>smtp_expn_hosts</TT>. Likewise, it supports to VRFY only if you set
+       <TT>smtp_verify</TT>. Without these settings, its responses are
+
+</P>
+<PRE>
+         550 EXPN not available
+         252 VRFY not available</PRE>
+<P>
+       Maybe the use of 252 is the "problem". It is recommended that this be
+       done (by those that discuss these things) because there are stupid
+       clients that attempt VRFY before sending a message.
+
+</P>
+<A NAME="SEC228" HREF="FAQ.html#TOC228">Q0837</A>: Could anyone points me to right rules to prevent sending/receiving
+       messages to/for domains which have one MX to localhost or only have
+       address 127.0.0.1 ?
+
+
+<P>
+A0837: You need to turn on <TT>sender_verify</TT>. With the default configuration, this
+       will result in a temporary verification failure for these domains. You
+       can make this into a permanent failure by adding
+
+</P>
+<PRE>
+         self = fail</PRE>
+<P>
+       to your <B>lookuphost</B> router. The default action on encountering a routing
+       to the local host is to defer, and freeze the message if it is a
+       delivery address. Making this change applies to any routing to the local
+       host, not just to 127.0.0.1.
+
+</P>
+<P>
+       If you are running Exim release 3.16 or later, an alternative approach
+       is to set <TT>ignore_target_hosts</TT> = 127.0.0.1 on the relevant routers.
+
+</P>
+<A NAME="SEC229" HREF="FAQ.html#TOC229">Q0838</A>: How can I lock out domains that do not have any MX records?
+
+
+<P>
+A0838: You can do this by means of the <TT>mx_domains</TT> option, but you should NOT do
+       this for Internet domains in general. There are still a large number of
+       legitimate domains that do not have MX records.
+
+</P>
+<A NAME="SEC230" HREF="FAQ.html#TOC230">Q0839</A>: I would like to have a per-user limit for the maximum size of messages
+       that can be sent.
+
+
+<P>
+A0839: The simplest way to do this is to put something in a system filter along
+       these lines:
+
+</P>
+<PRE>
+       if $message_size is above
+         "${lookup{$sender_address}lsearch{/some/file}{$value}{10M}}"
+       then
+         fail "Message is larger than $sender_address is allowed to send"
+       endif</PRE>
+<A NAME="SEC231" HREF="FAQ.html#TOC231">Q0840</A>: I have set up a DBM (or cdb, or lsearch, or MySQL or whatever) file
+       containing a list of IP addresses for the hosts I want to allow to
+       relay, but when I set <TT>host_accept_relay</TT> to do a lookup on that data, it
+       doesn't work.
+
+
+<P>
+A0840: If you include any kind of lookup in a host list, it will by default
+       search on the host <EM>name</EM>, not on the IP address. What you want is
+       something like
+
+</P>
+<PRE>
+         host_accept_relay = net-dbm;/some/file</PRE>
+<P>
+       The prefix net- makes it look up the IP address instead of the name. You
+       can also look up IP networks by using entries like
 
 </P>
 
 </P>
+<PRE>
+         host_accept_relay = net24-dbm;/some/file</PRE>
 <P>
 <P>
-       Why doesn't it reject the RCPT TO command? Answer: because you have not
-       set <TT>receiver_verify</TT> in your configuration file, or you have excluded
-       these particular sender or recipient domains from receiver verification.
+       For a host with IP address 192.168.45.23 this would do the lookup using
+       the key "192.168.45.0/24".
 
 </P>
 
 </P>
-<BR><H2><A NAME="SEC193" HREF="FAQ.html#TOC193">9. MAJORDOMO
+<BR><H2><A NAME="SEC232" HREF="FAQ.html#TOC232">9. MAJORDOMO
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC194" HREF="FAQ.html#TOC194">Q0901</A>: How do I set up Majordomo to work with Exim?
+<A NAME="SEC233" HREF="FAQ.html#TOC233">Q0901</A>: How do I set up Majordomo to work with Exim?
 
 
 <P>
 
 
 <P>
@@ -4924,7 +5866,7 @@ A0901: Users have found several ways of setting up Exim for use with Majordomo.
        greater than 1 in the Exim configuration.
 
 </P>
        greater than 1 in the Exim configuration.
 
 </P>
-<A NAME="SEC195" HREF="FAQ.html#TOC195">Q0902</A>: I have set <B>$mailer</B> in <B>majordomo.cf,</B> but it still isn't setting the
+<A NAME="SEC234" HREF="FAQ.html#TOC234">Q0902</A>: I have set <B>$mailer</B> in <B>majordomo.cf,</B> but it still isn't setting the
        sender correctly in the messages it sends.
 
 
        sender correctly in the messages it sends.
 
 
@@ -4942,7 +5884,7 @@ A0902: Make sure you have got the quoting correct in the <B>$mailer</B> setting.
        start of <B>$sender</B> has to be escaped with a backslash.
 
 </P>
        start of <B>$sender</B> has to be escaped with a backslash.
 
 </P>
-<A NAME="SEC196" HREF="FAQ.html#TOC196">Q0903</A>: I'm trying to set up majordomo, but I'm getting a "wrong mode" error
+<A NAME="SEC235" HREF="FAQ.html#TOC235">Q0903</A>: I'm trying to set up majordomo, but I'm getting a "wrong mode" error
        when I try to send it mail. The panic log entry reads:
 
 
        when I try to send it mail. The panic log entry reads:
 
 
@@ -4958,7 +5900,7 @@ A0903: Check the mode of <B><B>/var/lib/majordomo/lists/lists.aliases</B></B> an
        file, and it defaults to 022.
 
 </P>
        file, and it defaults to 022.
 
 </P>
-<A NAME="SEC197" HREF="FAQ.html#TOC197">Q0904</A>: I'm getting return code 9 from <B><B>/home/majordomo/majordomo-1.94.4/wrapper</B></B>
+<A NAME="SEC236" HREF="FAQ.html#TOC236">Q0904</A>: I'm getting return code 9 from <B><B>/home/majordomo/majordomo-1.94.4/wrapper</B></B>
        when it is passed a message from Exim.
 
 
        when it is passed a message from Exim.
 
 
@@ -4967,10 +5909,33 @@ A0904: A problem like this turned out to be the Perl version that came with
        RedHat 5.2. Rebuilding Perl 5.005x solved it.
 
 </P>
        RedHat 5.2. Rebuilding Perl 5.005x solved it.
 
 </P>
-<BR><H2><A NAME="SEC198" HREF="FAQ.html#TOC198">10. REWRITING ADDRESSES
+<A NAME="SEC237" HREF="FAQ.html#TOC237">Q0905</A>: Exim is complaining about an invalid command line when Majordomo tries
+       to send it a message for delivery.
+
+
+<P>
+A0905: Take a look at your <B>majordomo.cf</B> file,  It should have something that
+       looks like
+
+</P>
+<PRE>
+         $sendmail_command = "/usr/lib/sendmail";</PRE>
+<P>
+       and another line like
+
+</P>
+<PRE>
+         $mailer = "$sendmail_command -oi -oee -f\$sender";</PRE>
+<P>
+       If you have modified resend (one of the majordomo programs) to use
+       <B>$sendmail_command</B> instead of <B>$mailer</B> you will be calling Exim with no
+       command line arguments.
+
+</P>
+<BR><H2><A NAME="SEC238" HREF="FAQ.html#TOC238">10. REWRITING ADDRESSES
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC199" HREF="FAQ.html#TOC199">Q1001</A>: How can I get Exim to strip the hostname from the sender's address?
+<A NAME="SEC239" HREF="FAQ.html#TOC239">Q1001</A>: How can I get Exim to strip the hostname from the sender's address?
 
 
 <P>
 
 
 <P>
@@ -4993,7 +5958,7 @@ A1001: If you set up a rewriting rule in the following form:
        From:, Reply-to:, and Sender: headers.
 
 </P>
        From:, Reply-to:, and Sender: headers.
 
 </P>
-<A NAME="SEC200" HREF="FAQ.html#TOC200">Q1002</A>: I have Exim configured to remove the hostname portion of the domain on
+<A NAME="SEC240" HREF="FAQ.html#TOC240">Q1002</A>: I have Exim configured to remove the hostname portion of the domain on
        outgoing mail, and yet the hostname is present when the mail gets
        delivered.
 
        outgoing mail, and yet the hostname is present when the mail gets
        delivered.
 
@@ -5005,24 +5970,84 @@ A1002: Check the DNS record for your domain. If the MX record points to a CNAME
        CNAME record.
 
 </P>
        CNAME record.
 
 </P>
-<A NAME="SEC201" HREF="FAQ.html#TOC201">Q1003</A>: I want to rewrite local addresses in mail that goes to the outside
+<A NAME="SEC241" HREF="FAQ.html#TOC241">Q1003</A>: I want to rewrite local addresses in mail that goes to the outside
        world, but not for messages that remain within the local intranet.
 
 
 <P>
        world, but not for messages that remain within the local intranet.
 
 
 <P>
-A1003: Exim wasn't really designed to handle this kind of split world. Because
-       it keeps only one copy of a message, and does all the rewriting at the
-       time of reception, a standard configuration cannot handle this kind of
-       rewriting in a message that has both internal and external recipients.
+A1003: Exim wasn't really designed to handle this kind of split world, and
+       doing this is not entirely straightforward.
+
+</P>
+<P>
+       (A) If you are running version 3.20 or later, you can use the
+       <TT>headers_rewrite</TT> option on a transport. This will apply to just those
+       copies of a message that pass through the transport. The <TT>return_path</TT>
+       option can similarly be used to rewrite the sender address, but there is
+       no way of rewriting recipient addresses at transport time. However, as
+       these are by definition remote addresses, you probably don't want to
+       rewrite them.
+
+</P>
+<P>
+       You have to set up the configuration so that it uses different SMTP
+       transports for internal and external mail. Typically this would be done
+       by setting the <TT>domains</TT> option on a router for handling your internal
+       domains. However, if all domains are routed in the same way (for
+       example, using a DNS lookup), another approach is to use a string
+       expansion for the transport name. For example:
+
+</P>
+<PRE>
+       lookuphost:
+         driver = lookuphost
+         transport = ${if match{$domain}{\\.my\\.domain\$}{int_smtp}{ext_smtp}}</PRE>
+<P>
+       This example uses the <TT>int_smtp</TT> transport for domains ending in
+       .<B>my.domain,</B> and <TT>ext_smtp</TT> for everything else. The <TT>ext_smtp</TT> transport
+       could be something like this:
+
+</P>
+<PRE>
+       ext_smtp:
+         driver = smtp
+         headers_rewrite = *@*.my.domain \
+              ${lookup{$1}cdb{/etc/$2/mail.handles.cdb}{$value}fail}
+         return_path = \
+           ${if match{$return_path}{^([^@]+)@(.*)\\.my\\.domain\$}\
+            {\
+            ${lookup{$1}cdb{/etc/$2/mail.handles.cdb}{$value}fail}\
+            }\
+            fail}</PRE>
+<P>
+       This example uses a separate file of local-to-external address
+       translations for each domain. This is not the only possibility, of
+       course. The <TT>headers_rewrite</TT> and <TT>return_path</TT> options apply the same
+       rewriting to the header lines and the envelope sender address,
+       respectively.
+
+</P>
+<P>
+       (B) If you are running a version of Exim that is earlier than 3.20,
+       doing this kind of rewriting is very much more difficult. Until the
+       <TT>headers_rewrite</TT> option was added, all header rewriting was done at the
+       time a message was received. A standard configuration cannot handle
+       rewriting that is specific to certain recipients only.
+
+</P>
+<P>
+       The simplest thing to do is to upgrade to the latest current Exim
+       release. For those that cannot do that, this old information from the
+       <B>pre-3.20</B> FAQ is retained:
 
 </P>
 <P>
 
 </P>
 <P>
-       However, what can be done is to split off a copy of the message to be
-       sent to all external recipients, and do the rewriting on that. This can
-       be achieved by running two differently-configured versions of Exim,
-       either on a single host, or on two different hosts. If you have a
-       gateway or firewall machine, that is the natural place to run the
-       rewriting version.
+       The trick is to split off a copy of the message to be sent to all
+       external recipients, and do the rewriting on that. This can be achieved
+       by running two differently-configured versions of Exim, either on a
+       single host, or on two different hosts. If you have a gateway or
+       firewall machine, that is the natural place to run the rewriting
+       version.
 
 </P>
 <P>
 
 </P>
 <P>
@@ -5120,7 +6145,7 @@ A1003: Exim wasn't really designed to handle this kind of split world. Because
        message, it will use the rewritten sender address.
 
 </P>
        message, it will use the rewritten sender address.
 
 </P>
-<A NAME="SEC202" HREF="FAQ.html#TOC202">Q1004</A>: I'm using this rewriting rule to change login names into "friendly"
+<A NAME="SEC242" HREF="FAQ.html#TOC242">Q1004</A>: I'm using this rewriting rule to change login names into "friendly"
        names, but if mail comes in for an upper case login name, it doesn't
        get rewritten.
 
        names, but if mail comes in for an upper case login name, it doesn't
        get rewritten.
 
@@ -5139,7 +6164,7 @@ A1004: Replace <B>$1</B> in your rule by <B>${lc:$1}</B> to force the local part
        case before it is used as a lookup key.
 
 </P>
        case before it is used as a lookup key.
 
 </P>
-<A NAME="SEC203" HREF="FAQ.html#TOC203">Q1005</A>: Is it possible to completely fail a message if the rewrite rules fail?
+<A NAME="SEC243" HREF="FAQ.html#TOC243">Q1005</A>: Is it possible to completely fail a message if the rewrite rules fail?
 
 
 <P>
 
 
 <P>
@@ -5160,7 +6185,7 @@ A1005: It depends on what you mean by "fail a message" and what addresses you
        This fails a single recipient - others are processed independently.
 
 </P>
        This fails a single recipient - others are processed independently.
 
 </P>
-<A NAME="SEC204" HREF="FAQ.html#TOC204">Q1006</A>: I'm using <B>$domain</B> as the key for a lookup in a rewriting rule, but its
+<A NAME="SEC244" HREF="FAQ.html#TOC244">Q1006</A>: I'm using <B>$domain</B> as the key for a lookup in a rewriting rule, but its
        contents are not being lowercased. Aren't domains supposed to be handled
        caselessly?
 
        contents are not being lowercased. Aren't domains supposed to be handled
        caselessly?
 
@@ -5187,23 +6212,24 @@ A1006: The value of <B>$domain</B> is the actual domain that appears in the addr
        Instead of "$domain" write "${lc:$domain}".
 
 </P>
        Instead of "$domain" write "${lc:$domain}".
 
 </P>
-<A NAME="SEC205" HREF="FAQ.html#TOC205">Q1007</A>: I want to rewrite local sender addresses depending on the domain of the
+<A NAME="SEC245" HREF="FAQ.html#TOC245">Q1007</A>: I want to rewrite local sender addresses depending on the domain of the
        recipient.
 
 
 <P>
 A1007: In general, this is not possible, because a message may have more than
        recipient.
 
 
 <P>
 A1007: In general, this is not possible, because a message may have more than
-       one recipient and Exim keeps just a single copy of each message. You can
-       do an incomplete job by using a regular expression match in a rewrite
-       rule to test, for example, the contents of the To: header. This would
-       work except in cases of multiple recipients. See also 
-        <A HREF="FAQ.html#SEC201">Q1003</A>.
+       one recipient and Exim keeps just a single copy of each message. It may
+       also deliver one copy of a message with several recipient addresses.
+       You can do an incomplete job by using a regular expression match in a
+       rewrite rule to test, for example, the contents of the To: header. This
+       would work except in cases of multiple recipients. See also 
+        <A HREF="FAQ.html#SEC241">Q1003</A>.
 
 </P>
 
 </P>
-<BR><H2><A NAME="SEC206" HREF="FAQ.html#TOC206">11. HEADERS
+<BR><H2><A NAME="SEC246" HREF="FAQ.html#TOC246">11. HEADERS
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC207" HREF="FAQ.html#TOC207">Q1101</A>: I would like add some custom headers to selected outgoing mail based on
+<A NAME="SEC247" HREF="FAQ.html#TOC247">Q1101</A>: I would like add some custom headers to selected outgoing mail based on
        a specific domain and the subject line.
 
 
        a specific domain and the subject line.
 
 
@@ -5221,7 +6247,7 @@ A1101: To the <TT>remote_smtp</TT> transport, add something like
        like, and multiple headers can be inserted by using \n to separate them.
 
 </P>
        like, and multiple headers can be inserted by using \n to separate them.
 
 </P>
-<A NAME="SEC208" HREF="FAQ.html#TOC208">Q1102</A>: Is it possible to have Exim add a header to only certain <TT>local_parts</TT> of
+<A NAME="SEC248" HREF="FAQ.html#TOC248">Q1102</A>: Is it possible to have Exim add a header to only certain <TT>local_parts</TT> of
        outgoing mail?
 
 
        outgoing mail?
 
 
@@ -5231,14 +6257,14 @@ A1102: Only if you arrange for each such local part to receive its own private
        conditions in an expansion string to add or not add a header.
 
 </P>
        conditions in an expansion string to add or not add a header.
 
 </P>
-<A NAME="SEC209" HREF="FAQ.html#TOC209">Q1103</A>: How can I remove some part of the Received: header?
+<A NAME="SEC249" HREF="FAQ.html#TOC249">Q1103</A>: How can I remove some part of the Received: header?
 
 
 <P>
 A1103: Set <TT>received_header_text</TT>.
 
 </P>
 
 
 <P>
 A1103: Set <TT>received_header_text</TT>.
 
 </P>
-<A NAME="SEC210" HREF="FAQ.html#TOC210">Q1104</A>: How I can insert the PGP header line using exim filters?
+<A NAME="SEC250" HREF="FAQ.html#TOC250">Q1104</A>: How I can insert the PGP header line using exim filters?
 
 
 <P>
 
 
 <P>
@@ -5246,10 +6272,32 @@ A1104: You can't insert headers in a user filter. A system filter can do so,
        but the inserted lines then are included for all recipients.
 
 </P>
        but the inserted lines then are included for all recipients.
 
 </P>
-<BR><H2><A NAME="SEC211" HREF="FAQ.html#TOC211">12. FETCHMAIL
+<A NAME="SEC251" HREF="FAQ.html#TOC251">Q1105</A>: I know I can use a system filter to replace certain headers in messages,
+       but how can I add text to existing headers? I want to add [SPAM] to
+       the subject line of messages that appear to be spam.
+
+
+<P>
+A1105: You can only do this in a round about way, using filter commands like
+       this:
+
+</P>
+<PRE>
+         headers add "New-Subject: SPAM: $h_subject:"
+         headers remove subject
+         neaders add "Subject: $h_new-subject:"
+         headers remove new-subject</PRE>
+<P>
+       This trick works only in system filters, where the commands are obeyed
+       in order, and affect the master list of headers that apply to the whole
+       message. You cannot do this with the <TT>headers_add</TT> and <TT>headers_remove</TT>
+       options on drivers.
+
+</P>
+<BR><H2><A NAME="SEC252" HREF="FAQ.html#TOC252">12. FETCHMAIL
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC212" HREF="FAQ.html#TOC212">Q1201</A>: When I run fetchmail, I get the error "SMTP listener doesn't like
+<A NAME="SEC253" HREF="FAQ.html#TOC253">Q1201</A>: When I run fetchmail, I get the error "SMTP listener doesn't like
        recipient address <B><I>xxx</I>@localhost</B>".
 
 
        recipient address <B><I>xxx</I>@localhost</B>".
 
 
@@ -5258,7 +6306,7 @@ A1201: Put "localhost" in a list of local domains, that is, add it to the
        <TT>local_domains</TT> option in your Exim configuration file.
 
 </P>
        <TT>local_domains</TT> option in your Exim configuration file.
 
 </P>
-<A NAME="SEC213" HREF="FAQ.html#TOC213">Q1202</A>: Fetchmail is passing on bounce messages to Exim with the sender address
+<A NAME="SEC254" HREF="FAQ.html#TOC254">Q1202</A>: Fetchmail is passing on bounce messages to Exim with the sender address
        set to <B><B>&#60;@some.domain</B>&#62;</B> which causes Exim to complain, because there is no
        local part.
 
        set to <B><B>&#60;@some.domain</B>&#62;</B> which causes Exim to complain, because there is no
        local part.
 
@@ -5273,7 +6321,7 @@ A1202: This was a fetchmail problem which has been fixed. Ideally, you should
        with mangled addresses coming in over SMTP.
 
 </P>
        with mangled addresses coming in over SMTP.
 
 </P>
-<A NAME="SEC214" HREF="FAQ.html#TOC214">Q1203</A>: I'm currently using Exim with fetchmail and I'd like to use the RBL on
+<A NAME="SEC255" HREF="FAQ.html#TOC255">Q1203</A>: I'm currently using Exim with fetchmail and I'd like to use the RBL on
        Exim, but will it work? Do I need to configure fetchmail any particular
        way? As far as Exim knows, all mail is coming from 127.0.01. Will it
        check the source address against RBL? Or will it check the From: header?
        Exim, but will it work? Do I need to configure fetchmail any particular
        way? As far as Exim knows, all mail is coming from 127.0.01. Will it
        check the source address against RBL? Or will it check the From: header?
@@ -5289,19 +6337,19 @@ A1203: It will check 127.0.0.1 (not very useful). The point of the RBL is to
        Exim does if you run RBL checks in warning mode.
 
 </P>
        Exim does if you run RBL checks in warning mode.
 
 </P>
-<BR><H2><A NAME="SEC215" HREF="FAQ.html#TOC215">13. PERL
+<BR><H2><A NAME="SEC256" HREF="FAQ.html#TOC256">13. PERL
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC216" HREF="FAQ.html#TOC216">Q1301</A>: Exim built with Perl support exits with the error message <B>"./exim:</B> can't
+<A NAME="SEC257" HREF="FAQ.html#TOC257">Q1301</A>: Exim built with Perl support exits with the error message <B>"./exim:</B> can't
        load library <B>'libperl.so'".</B>
 
 
 <P>
 A1301: If you are using BSDI, see 
        load library <B>'libperl.so'".</B>
 
 
 <P>
 A1301: If you are using BSDI, see 
-        <A HREF="FAQ.html#SEC273">Q9401</A>.
+        <A HREF="FAQ.html#SEC324">Q9401</A>.
 
 </P>
 
 </P>
-<A NAME="SEC217" HREF="FAQ.html#TOC217">Q1302</A>: Exim built with Perl support exits with several error messages of the
+<A NAME="SEC258" HREF="FAQ.html#TOC258">Q1302</A>: Exim built with Perl support exits with several error messages of the
        form "undefined reference to `PL_stack_sp'".
 
 
        form "undefined reference to `PL_stack_sp'".
 
 
@@ -5311,10 +6359,10 @@ A1302: This has been seen on FreeBSD systems that had two different versions of
        ELF library. Ensure that the older package is removed.
 
 </P>
        ELF library. Ensure that the older package is removed.
 
 </P>
-<BR><H2><A NAME="SEC218" HREF="FAQ.html#TOC218">14. DIAL-UP
+<BR><H2><A NAME="SEC259" HREF="FAQ.html#TOC259">14. DIAL-UP
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC219" HREF="FAQ.html#TOC219">Q1401</A>: How can I arrange for mail to other hosts on my local network to be
+<A NAME="SEC260" HREF="FAQ.html#TOC260">Q1401</A>: How can I arrange for mail to other hosts on my local network to be
        delivered when I'm not connected to the Internet?
 
 
        delivered when I'm not connected to the Internet?
 
 
@@ -5330,7 +6378,7 @@ A1401: Use the <TT>queue_remote_domains</TT> option to control which domains are
        others.
 
 </P>
        others.
 
 </P>
-<A NAME="SEC220" HREF="FAQ.html#TOC220">Q1402</A>: I have a dial-up machine, and I use the <TT>queue_smtp_domains</TT> option so
+<A NAME="SEC261" HREF="FAQ.html#TOC261">Q1402</A>: I have a dial-up machine, and I use the <TT>queue_smtp_domains</TT> option so
        that remote mail only goes out when I do a queue run. However, any email
        I send with an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15
        minutes saying 'retry time exceeded', and all addresses are affected.
        that remote mail only goes out when I do a queue run. However, any email
        I send with an address <B><B>&#60;anything&#62;@aol.com</B></B> is returned within about 15
        minutes saying 'retry time exceeded', and all addresses are affected.
@@ -5361,10 +6409,10 @@ A1402: (A) You should be using <TT>queue_remote_domains</TT> rather than <TT>que
        found without the need of a DNS lookup. Then you can use <TT>queue_smtp_</TT>
        domains so that Exim does the routing for every message, but doesn't try
        to deliver it. See also 
        found without the need of a DNS lookup. Then you can use <TT>queue_smtp_</TT>
        domains so that Exim does the routing for every message, but doesn't try
        to deliver it. See also 
-        <A HREF="FAQ.html#SEC221">Q1403</A>.
+        <A HREF="FAQ.html#SEC262">Q1403</A>.
 
 </P>
 
 </P>
-<A NAME="SEC221" HREF="FAQ.html#TOC221">Q1403</A>: How should Exim be configured when it is acting as a temporary storage
+<A NAME="SEC262" HREF="FAQ.html#TOC262">Q1403</A>: How should Exim be configured when it is acting as a temporary storage
        system for a domain on a dial-up host?
 
 
        system for a domain on a dial-up host?
 
 
@@ -5382,12 +6430,12 @@ A1403: Exim isn't really designed for this, but... The lowest-numbered MX
        the mail for the dial-in hosts into some local files which then get
        transmitted by other software when the host connects. See the manual
        chapter entitled "Intermittently connected hosts" and also 
        the mail for the dial-in hosts into some local files which then get
        transmitted by other software when the host connects. See the manual
        chapter entitled "Intermittently connected hosts" and also 
-        <A HREF="FAQ.html#SEC242">Q5014</A> and
+        <A HREF="FAQ.html#SEC283">Q5014</A> and
        
        
-        <A HREF="FAQ.html#SEC136">Q0521</A>.
+        <A HREF="FAQ.html#SEC162">Q0521</A>.
 
 </P>
 
 </P>
-<A NAME="SEC222" HREF="FAQ.html#TOC222">Q1404</A>: I have <TT>queue_remote_domains</TT> or <TT>queue_smtp_domains</TT> set, and use <B>-qf</B> to
+<A NAME="SEC263" HREF="FAQ.html#TOC263">Q1404</A>: I have <TT>queue_remote_domains</TT> or <TT>queue_smtp_domains</TT> set, and use <B>-qf</B> to
        force delivery of waiting mail when I dial in. How can I arrange for any
        new messages that arrive while I'm connected to be delivered immediately?
 
        force delivery of waiting mail when I dial in. How can I arrange for any
        new messages that arrive while I'm connected to be delivered immediately?
 
@@ -5412,10 +6460,10 @@ A1404: (A) Instead of <TT>queue_remote_domains</TT> or <TT>queue_smtp_domains</T
        switch that file appropriately.
 
 </P>
        switch that file appropriately.
 
 </P>
-<BR><H2><A NAME="SEC223" HREF="FAQ.html#TOC223">15. MODIFYING MESSAGE BODIES
+<BR><H2><A NAME="SEC264" HREF="FAQ.html#TOC264">15. MODIFYING MESSAGE BODIES
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC224" HREF="FAQ.html#TOC224">Q1501</A>: How can I add a disclaimer or an advertisement to a message?
+<A NAME="SEC265" HREF="FAQ.html#TOC265">Q1501</A>: How can I add a disclaimer or an advertisement to a message?
 
 
 <P>
 
 
 <P>
@@ -5478,12 +6526,13 @@ A1501: There are a number of technical and potential legal problems that arise
 <P>
        1. It breaks digital signatures, which are becoming legally binding
           in some countries (already in the UK, likely to be 1 October 2000 in
 <P>
        1. It breaks digital signatures, which are becoming legally binding
           in some countries (already in the UK, likely to be 1 October 2000 in
-          the USA).
+          the USA). It may well also break encryption.
 
 </P>
 <P>
        2. It is likely to break MIME encoding, that is, it is likely to wreck
 
 </P>
 <P>
        2. It is likely to break MIME encoding, that is, it is likely to wreck
-          attachments, unless great care is taken.
+          attachments, unless great care is taken. And what about the case of a
+          message containing only binary MIME parts?
 
 </P>
 <P>
 
 </P>
 <P>
@@ -5512,6 +6561,21 @@ A1501: There are a number of technical and potential legal problems that arise
        5. Some mail clients (old versions of MS outlook) crash if the message
           body of an incoming MIME message has been tampered with.
 
        5. Some mail clients (old versions of MS outlook) crash if the message
           body of an incoming MIME message has been tampered with.
 
+</P>
+<P>
+       There are also potential problems that could arise if a scheme to add
+       disclaimers goes wrong for some messages:
+
+</P>
+<P>
+       1. False negatives: "Ah, this guy usually says he does not represent
+          their views, but in this message he doesn't have the disclaimer".
+
+</P>
+<P>
+       2. False positives: "This official announcement does not represent our
+          views, oh no".
+
 </P>
 <P>
        An alternative approach to the disclaimer problem would be to insist
 </P>
 <P>
        An alternative approach to the disclaimer problem would be to insist
@@ -5523,18 +6587,29 @@ A1501: There are a number of technical and potential legal problems that arise
        an Exim system filter in order to adopt this approach.
 
 </P>
        an Exim system filter in order to adopt this approach.
 
 </P>
-<A NAME="SEC225" HREF="FAQ.html#TOC225">Q1502</A>: How can I remove attachments from messages?
+<P>
+       Finally, it's a trivial matter to add customized headers of the sort:
+
+</P>
+<PRE>
+         X-Disclaimer:  This is a standard disclaimer that says that the views
+         X-Disclaimer:  contained within this message are somebody elses.</PRE>
+<P>
+       which is a much easier alternative to modifying message bodies.
+
+</P>
+<A NAME="SEC266" HREF="FAQ.html#TOC266">Q1502</A>: How can I remove attachments from messages?
 
 
 <P>
 A1502: The answer to this is essentially the same as for 
 
 
 <P>
 A1502: The answer to this is essentially the same as for 
-        <A HREF="FAQ.html#SEC224">Q1501</A>.
+        <A HREF="FAQ.html#SEC265">Q1501</A>.
 
 </P>
 
 </P>
-<BR><H2><A NAME="SEC226" HREF="FAQ.html#TOC226">20. MILLENNIUM
+<BR><H2><A NAME="SEC267" HREF="FAQ.html#TOC267">20. MILLENNIUM
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC227" HREF="FAQ.html#TOC227">Q2000</A>: Are there any Y2K issues with Exim?
+<A NAME="SEC268" HREF="FAQ.html#TOC268">Q2000</A>: Are there any Y2K issues with Exim?
 
 
 <P>
 
 
 <P>
@@ -5548,10 +6623,15 @@ A2000: The author of Exim believes that it is Y2K-compliant, as long as the
        been done are not available.
 
 </P>
        been done are not available.
 
 </P>
-<BR><H2><A NAME="SEC228" HREF="FAQ.html#TOC228">50. MISCELLANEOUS
+<P>
+       Well, it's now August 2000, and no Y2K problems have been reported, so
+       it looks like I was right.
+
+</P>
+<BR><H2><A NAME="SEC269" HREF="FAQ.html#TOC269">50. MISCELLANEOUS
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC229" HREF="FAQ.html#TOC229">Q5001</A>: What does the error "Unable to get interface configuration: 22 Invalid
+<A NAME="SEC270" HREF="FAQ.html#TOC270">Q5001</A>: What does the error "Unable to get interface configuration: 22 Invalid
        argument" mean?
 
 
        argument" mean?
 
 
@@ -5564,7 +6644,7 @@ A5001: This is an error that occurs when Exim is trying to find out the all the
        connections.
 
 </P>
        connections.
 
 </P>
-<A NAME="SEC230" HREF="FAQ.html#TOC230">Q5002</A>: How can I arrange to allow a limited set of users to perform a limited
+<A NAME="SEC271" HREF="FAQ.html#TOC271">Q5002</A>: How can I arrange to allow a limited set of users to perform a limited
        set of Exim administration functions? I don't want to put them all in
        the exim group.
 
        set of Exim administration functions? I don't want to put them all in
        the exim group.
 
@@ -5579,7 +6659,7 @@ A5002: See <B><A HREF="http://www.chiark.greenend.org.uk/~ian/userv/.">http://ww
        `unparsing' properly in shell or Perl it will be secure.
 
 </P>
        `unparsing' properly in shell or Perl it will be secure.
 
 </P>
-<A NAME="SEC231" HREF="FAQ.html#TOC231">Q5003</A>: How can I test for a message's size being greater or less than a given
+<A NAME="SEC272" HREF="FAQ.html#TOC272">Q5003</A>: How can I test for a message's size being greater or less than a given
        value in an expansion string?
 
 
        value in an expansion string?
 
 
@@ -5599,7 +6679,7 @@ A5003: This isn't straightforward in versions of Exim prior to 2.10, because
 </P>
 <PRE>
        ${if eq{${expand:\$\{substr_-1000000_$message_size:x\}}} {} {yes} {no}}</PRE>
 </P>
 <PRE>
        ${if eq{${expand:\$\{substr_-1000000_$message_size:x\}}} {} {yes} {no}}</PRE>
-<A NAME="SEC232" HREF="FAQ.html#TOC232">Q5004</A>: I want to "tail" the Exim log, but I have a number of other logs I also
+<A NAME="SEC273" HREF="FAQ.html#TOC273">Q5004</A>: I want to "tail" the Exim log, but I have a number of other logs I also
        want to "tail", and the number of tailing windows is getting to be a
        nuisance.
 
        want to "tail", and the number of tailing windows is getting to be a
        nuisance.
 
@@ -5610,14 +6690,14 @@ A5004: Look for a program called 'xtail' (despite its name, it's not an
        entire directories.
 
 </P>
        entire directories.
 
 </P>
-<A NAME="SEC233" HREF="FAQ.html#TOC233">Q5005</A>: I would like to have Exim log information written to syslog.
+<A NAME="SEC274" HREF="FAQ.html#TOC274">Q5005</A>: I would like to have Exim log information written to syslog.
 
 
 <P>
 A5005: Support for this is available from version 3.10 onwards.
 
 </P>
 
 
 <P>
 A5005: Support for this is available from version 3.10 onwards.
 
 </P>
-<A NAME="SEC234" HREF="FAQ.html#TOC234">Q5006</A>: What does the error "Failed to create spool file" mean?
+<A NAME="SEC275" HREF="FAQ.html#TOC275">Q5006</A>: What does the error "Failed to create spool file" mean?
 
 
 <P>
 
 
 <P>
@@ -5653,23 +6733,23 @@ A5006: Exim has been unable to create a file in its spool area in which to
        permission must be "s" rather than "x".
 
 </P>
        permission must be "s" rather than "x".
 
 </P>
-<A NAME="SEC235" HREF="FAQ.html#TOC235">Q5007</A>: Exim keeps crashing with segmentation errors (signal 11 or 139).
+<A NAME="SEC276" HREF="FAQ.html#TOC276">Q5007</A>: Exim keeps crashing with segmentation errors (signal 11 or 139).
 
 
 <P>
 A5007: This might be a problem with the db library. See 
 
 
 <P>
 A5007: This might be a problem with the db library. See 
-        <A HREF="FAQ.html#SEC120">Q0505</A>.
+        <A HREF="FAQ.html#SEC146">Q0505</A>.
 
 </P>
 
 </P>
-<A NAME="SEC236" HREF="FAQ.html#TOC236">Q5008</A>: Exim's databases keep getting corrupted.
+<A NAME="SEC277" HREF="FAQ.html#TOC277">Q5008</A>: Exim's databases keep getting corrupted.
 
 
 <P>
 A5008: See 
 
 
 <P>
 A5008: See 
-        <A HREF="FAQ.html#SEC120">Q0505</A>.
+        <A HREF="FAQ.html#SEC146">Q0505</A>.
 
 </P>
 
 </P>
-<A NAME="SEC237" HREF="FAQ.html#TOC237">Q5009</A>: I've been using an autoreply director to try and mimic a bounce message,
+<A NAME="SEC278" HREF="FAQ.html#TOC278">Q5009</A>: I've been using an autoreply director to try and mimic a bounce message,
        but I can't get it to have an envelope from of &#60;&#62;.
 
 
        but I can't get it to have an envelope from of &#60;&#62;.
 
 
@@ -5678,7 +6758,7 @@ A5009: You haven't, by any chance, put "exim" in the list of <TT>never_users</TT
        you?
 
 </P>
        you?
 
 </P>
-<A NAME="SEC238" HREF="FAQ.html#TOC238">Q5010</A>: I see entries in the log that mention two different IP addresses for the
+<A NAME="SEC279" HREF="FAQ.html#TOC279">Q5010</A>: I see entries in the log that mention two different IP addresses for the
        same connection. Why is this? For example:
 
 
        same connection. Why is this? For example:
 
 
@@ -5698,7 +6778,7 @@ A5010: The actual IP address from which the call came is the final one.
        misleading.
 
 </P>
        misleading.
 
 </P>
-<A NAME="SEC239" HREF="FAQ.html#TOC239">Q5011</A>: How can I persuade Exim to accept ETRN commands without the leading
+<A NAME="SEC280" HREF="FAQ.html#TOC280">Q5011</A>: How can I persuade Exim to accept ETRN commands without the leading
        # character?
 
 
        # character?
 
 
@@ -5741,7 +6821,7 @@ A5011: Set the option
        serialization lock (which is set by default) never gets removed.
 
 </P>
        serialization lock (which is set by default) never gets removed.
 
 </P>
-<A NAME="SEC240" HREF="FAQ.html#TOC240">Q5012</A>: I've recently noticed that emails I send with a Bcc: line are being
+<A NAME="SEC281" HREF="FAQ.html#TOC281">Q5012</A>: I've recently noticed that emails I send with a Bcc: line are being
        delivered to their final destination with the Bcc: line still present.
 
 
        delivered to their final destination with the Bcc: line still present.
 
 
@@ -5770,7 +6850,7 @@ A5012: Exim removes Bcc lines only if you call it with the <B>-t</B> option (i.e
        Bcc; any MTA software has to leave it alone.
 
 </P>
        Bcc; any MTA software has to leave it alone.
 
 </P>
-<A NAME="SEC241" HREF="FAQ.html#TOC241">Q5013</A>: I used gv <B>v3.5.8</B> (ghostview) to try printing <B>spec.ps.</B> After every
+<A NAME="SEC282" HREF="FAQ.html#TOC282">Q5013</A>: I used gv <B>v3.5.8</B> (ghostview) to try printing <B>spec.ps.</B> After every
        printed page, the printer ejects a blank sheet. Is this something to do
        with using "letter" rather than A4 paper?
 
        printed page, the printer ejects a blank sheet. Is this something to do
        with using "letter" rather than A4 paper?
 
@@ -5793,7 +6873,7 @@ A5013: This seems to be an effect of using ghostview. Although the PostScript
        ghostview.
 
 </P>
        ghostview.
 
 </P>
-<A NAME="SEC242" HREF="FAQ.html#TOC242">Q5014</A>: I would like to have a separate queue per domain for hosts which dial
+<A NAME="SEC283" HREF="FAQ.html#TOC283">Q5014</A>: I would like to have a separate queue per domain for hosts which dial
        in to collect their mail.
 
 
        in to collect their mail.
 
 
@@ -5814,16 +6894,16 @@ A5014: Exim isn't really designed for this kind of operation. The only way to
 
 </P>
 <P>
 
 </P>
 <P>
-       An alternative approach would be to get Exim to deliver mail for such
-       hosts in batch SMTP format into some directory, and have the ETRN run
+       An alternative approach id to get Exim to deliver mail for such hosts
+       in batch SMTP format into some directory, and have the ETRN run
        something to pass such messages to the dialled-in host. See also 
        something to pass such messages to the dialled-in host. See also 
-        <A HREF="FAQ.html#SEC118">Q0503</A>
+        <A HREF="FAQ.html#SEC144">Q0503</A>
        and 
        and 
-        <A HREF="FAQ.html#SEC136">Q0521</A>.
+        <A HREF="FAQ.html#SEC162">Q0521</A>.
 
 </P>
 
 </P>
-<A NAME="SEC243" HREF="FAQ.html#TOC243">Q5015</A>: A short time after I start Exim I see a &#60;defunct&#62; process. What is
-       causing this?
+<A NAME="SEC284" HREF="FAQ.html#TOC284">Q5015</A>: A short time after I start Exim I see a &#60;defunct&#62; zombie process. What
+       is causing this?
 
 
 <P>
 
 
 <P>
@@ -5835,7 +6915,7 @@ A5015: Your system must be lightly loaded as far as mail is concerned. The
        perfectly normal.
 
 </P>
        perfectly normal.
 
 </P>
-<A NAME="SEC244" HREF="FAQ.html#TOC244">Q5016</A>: On a reboot, or a restart of the mail system, I see the message "Mailer
+<A NAME="SEC285" HREF="FAQ.html#TOC285">Q5016</A>: On a reboot, or a restart of the mail system, I see the message "Mailer
        daemons: exim abandoned: unknown, malformed, or incomplete option
        <B>-bz</B> sendmail". What does this mean?
 
        daemons: exim abandoned: unknown, malformed, or incomplete option
        <B>-bz</B> sendmail". What does this mean?
 
@@ -5858,16 +6938,16 @@ A5016: <B>-bz</B> is a Sendmail option requesting it to create a "configuration
        The first of these lines should be commented out.
 
 </P>
        The first of these lines should be commented out.
 
 </P>
-<A NAME="SEC245" HREF="FAQ.html#TOC245">Q5017</A>: I would like to restrict e-mail usage for some users to the local
+<A NAME="SEC286" HREF="FAQ.html#TOC286">Q5017</A>: I would like to restrict e-mail usage for some users to the local
        machine, ideally on a group basis.
 
 
 <P>
 A5017: See 
        machine, ideally on a group basis.
 
 
 <P>
 A5017: See 
-        <A HREF="FAQ.html#SEC296">A9802</A>
+        <A HREF="FAQ.html#SEC349">A9802</A>
 
 </P>
 
 </P>
-<A NAME="SEC246" HREF="FAQ.html#TOC246">Q5018</A>: Whenever exim restarts it takes up to 3-5 minutes to start responding on
+<A NAME="SEC287" HREF="FAQ.html#TOC287">Q5018</A>: Whenever exim restarts it takes up to 3-5 minutes to start responding on
        the SMTP port. Why is this?
 
 
        the SMTP port. Why is this?
 
 
@@ -5877,7 +6957,7 @@ A5018: Something else is hanging onto port 25 and not releasing it. One place
        configured there.
 
 </P>
        configured there.
 
 </P>
-<A NAME="SEC247" HREF="FAQ.html#TOC247">Q5019</A>: Why aren't there any man pages for Exim? I don't always carry my printed
+<A NAME="SEC288" HREF="FAQ.html#TOC288">Q5019</A>: Why aren't there any man pages for Exim? I don't always carry my printed
        documentation.
 
 
        documentation.
 
 
@@ -5911,7 +6991,7 @@ A5019: As well as plain ASCII text, the Exim documentation is provided in two
        This contains some introductory text and the command line options only.
 
 </P>
        This contains some introductory text and the command line options only.
 
 </P>
-<A NAME="SEC248" HREF="FAQ.html#TOC248">Q5020</A>: When I send a message using the <B>-t</B> command line option, Exim sends only
+<A NAME="SEC289" HREF="FAQ.html#TOC289">Q5020</A>: When I send a message using the <B>-t</B> command line option, Exim sends only
        to the addresses within the message, not to those on the command line.
 
 
        to the addresses within the message, not to those on the command line.
 
 
@@ -5947,7 +7027,7 @@ A5020: By default Exim operates according to the Sendmail documentation, and
        the ambiguity differently.
 
 </P>
        the ambiguity differently.
 
 </P>
-<A NAME="SEC249" HREF="FAQ.html#TOC249">Q5021</A>: If I set up, for example, 
+<A NAME="SEC290" HREF="FAQ.html#TOC290">Q5021</A>: If I set up, for example, 
           <TT>local_domains = *customer.com</TT>, then it matches
        <B>"customer.com"</B> and <B>"abc.customer.com"</B> as required, but it also matches
        <B>"noncustomer.com",</B> which is wrong. How can I get round this?
           <TT>local_domains = *customer.com</TT>, then it matches
        <B>"customer.com"</B> and <B>"abc.customer.com"</B> as required, but it also matches
        <B>"noncustomer.com",</B> which is wrong. How can I get round this?
@@ -5990,7 +7070,7 @@ A5021: (A) You have to specify two entries in the list:
        the same as when it appears directly in a domain list.
 
 </P>
        the same as when it appears directly in a domain list.
 
 </P>
-<A NAME="SEC250" HREF="FAQ.html#TOC250">Q5022</A>: I want to match all local domains of the form <B>*.oyoy.org</B> but want a few
+<A NAME="SEC291" HREF="FAQ.html#TOC291">Q5022</A>: I want to match all local domains of the form <B>*.oyoy.org</B> but want a few
        exceptions. For instance I don't want <B>foo.oyoy.org</B> or <B>bar.oyoy.org</B> to be
        treated as local. What is the best way to do this?
 
        exceptions. For instance I don't want <B>foo.oyoy.org</B> or <B>bar.oyoy.org</B> to be
        treated as local. What is the best way to do this?
 
@@ -6033,7 +7113,7 @@ A5022: (A) From release 3.00 onwards, you can put negative items in the
        upgrading!
 
 </P>
        upgrading!
 
 </P>
-<A NAME="SEC251" HREF="FAQ.html#TOC251">Q5023</A>: I can't seem to find a pre-built version of Exim anywhere. The machine
+<A NAME="SEC292" HREF="FAQ.html#TOC292">Q5023</A>: I can't seem to find a pre-built version of Exim anywhere. The machine
        is a Sparc 5 running Solaris 2.6.
 
 
        is a Sparc 5 running Solaris 2.6.
 
 
@@ -6069,7 +7149,7 @@ A5023: The problem is that there are a number of build-time options, requiring
        would probably please nobody.
 
 </P>
        would probably please nobody.
 
 </P>
-<A NAME="SEC252" HREF="FAQ.html#TOC252">Q5024</A>: Is there a Windows NT version of Exim available?
+<A NAME="SEC293" HREF="FAQ.html#TOC293">Q5024</A>: Is there a Windows NT version of Exim available?
 
 
 <P>
 
 
 <P>
@@ -6077,16 +7157,16 @@ A5024: A long time ago somebody took a copy of the Exim source with the aim of
        trying to port it to NT. However, I never heard anything more.
 
 </P>
        trying to port it to NT. However, I never heard anything more.
 
 </P>
-<A NAME="SEC253" HREF="FAQ.html#TOC253">Q5025</A>: Does Exim support Delivery Status Notificaion (DSN), Message Status
+<A NAME="SEC294" HREF="FAQ.html#TOC294">Q5025</A>: Does Exim support Delivery Status Notificaion (DSN), Message Status
        Notification (MSN), or any other form of delivery acknowledgement?
 
 
 <P>
 A5025: See 
        Notification (MSN), or any other form of delivery acknowledgement?
 
 
 <P>
 A5025: See 
-        <A HREF="FAQ.html#SEC132">A0517</A>.
+        <A HREF="FAQ.html#SEC158">A0517</A>.
 
 </P>
 
 </P>
-<A NAME="SEC254" HREF="FAQ.html#TOC254">Q5026</A>: What does "Exim" stand for?
+<A NAME="SEC295" HREF="FAQ.html#TOC295">Q5026</A>: What does "Exim" stand for?
 
 
 <P>
 
 
 <P>
@@ -6097,16 +7177,16 @@ A5026: Originally, it was "EXperimental Internet Mailer", which was the best I
        to start using it, and told other people about it...
 
 </P>
        to start using it, and told other people about it...
 
 </P>
-<A NAME="SEC255" HREF="FAQ.html#TOC255">Q5027</A>: What does the log message "no immediate delivery: more than 10 messages
+<A NAME="SEC296" HREF="FAQ.html#TOC296">Q5027</A>: What does the log message "no immediate delivery: more than 10 messages
        received in one connection" mean?
 
 
 <P>
 A5027: See 
        received in one connection" mean?
 
 
 <P>
 A5027: See 
-        <A HREF="FAQ.html#SEC133">A0518</A>.
+        <A HREF="FAQ.html#SEC159">A0518</A>.
 
 </P>
 
 </P>
-<A NAME="SEC256" HREF="FAQ.html#TOC256">Q5028</A>: Although I haven't set <TT>check_spool_space</TT>, Exim is still checking the
+<A NAME="SEC297" HREF="FAQ.html#TOC297">Q5028</A>: Although I haven't set <TT>check_spool_space</TT>, Exim is still checking the
        amount of space on the spool for incoming SMTP messages that use the
        SIZE option. Can I suppress this?
 
        amount of space on the spool for incoming SMTP messages that use the
        SIZE option. Can I suppress this?
 
@@ -6131,7 +7211,7 @@ A5028: The RFC for the SIZE option says
        <TT>smtp_check_spool_space</TT>.
 
 </P>
        <TT>smtp_check_spool_space</TT>.
 
 </P>
-<A NAME="SEC257" HREF="FAQ.html#TOC257">Q5029</A>: I just noticed log entries that start off "&#60;= &#60;&#62;". Am I correct in
+<A NAME="SEC298" HREF="FAQ.html#TOC298">Q5029</A>: I just noticed log entries that start off "&#60;= &#60;&#62;". Am I correct in
        assuming that the "&#60;&#62;" indicates that the envelope did not contain any
        "From" data?
 
        assuming that the "&#60;&#62;" indicates that the envelope did not contain any
        "From" data?
 
@@ -6168,7 +7248,7 @@ A5029: Yes. This indicates a delivery failure report (aka "bounce message").
        uses them when sending out warnings about delivery delays.
 
 </P>
        uses them when sending out warnings about delivery delays.
 
 </P>
-<A NAME="SEC258" HREF="FAQ.html#TOC258">Q5030</A>: I've received a message which does not have my address in the To:
+<A NAME="SEC299" HREF="FAQ.html#TOC299">Q5030</A>: I've received a message which does not have my address in the To:
        line. It is a spam message with the same address in both the From: and
        the To: headers. How can this happen, and why doesn't Exim reject it?
 
        line. It is a spam message with the same address in both the From: and
        the To: headers. How can this happen, and why doesn't Exim reject it?
 
@@ -6196,7 +7276,7 @@ A5030: There is an important distinction between the "envelope" from and to and
        messages forwarded from mailing lists and delivery failure reports.
 
 </P>
        messages forwarded from mailing lists and delivery failure reports.
 
 </P>
-<A NAME="SEC259" HREF="FAQ.html#TOC259">Q5031</A>: Can (or will) Exim ever handle a message delivery purely in memory,
+<A NAME="SEC300" HREF="FAQ.html#TOC300">Q5031</A>: Can (or will) Exim ever handle a message delivery purely in memory,
        that is, it is handled without it ever hitting the disc?
 
 
        that is, it is handled without it ever hitting the disc?
 
 
@@ -6206,7 +7286,7 @@ A5031: It doesn't, and never will. Accepting and delivering a message are two
        writing/reading the message on the disc.
 
 </P>
        writing/reading the message on the disc.
 
 </P>
-<A NAME="SEC260" HREF="FAQ.html#TOC260">Q5032</A>: If I am using dbm files for data that Exim reads, can I rebuild them
+<A NAME="SEC301" HREF="FAQ.html#TOC301">Q5032</A>: If I am using dbm files for data that Exim reads, can I rebuild them
        on the fly, or do I need to restart Exim every time I make a change?
 
 
        on the fly, or do I need to restart Exim every time I make a change?
 
 
@@ -6219,7 +7299,7 @@ A5032: Exim re-reads the file every time it consults it, so if you are using a
        inconsistent. On lightly loaded systems this may not matter.
 
 </P>
        inconsistent. On lightly loaded systems this may not matter.
 
 </P>
-<A NAME="SEC261" HREF="FAQ.html#TOC261">Q5033</A>: What are the main differences between using an Exim filter and using
+<A NAME="SEC302" HREF="FAQ.html#TOC302">Q5033</A>: What are the main differences between using an Exim filter and using
        procmail?
 
 
        procmail?
 
 
@@ -6248,7 +7328,7 @@ A5033: Exim filters and procmail provide different facilities. Exim filters run
        both.
 
 </P>
        both.
 
 </P>
-<A NAME="SEC262" HREF="FAQ.html#TOC262">Q5034</A>: I need an option that is the opposite of <B>-bpa,</B> that is, a listing of
+<A NAME="SEC303" HREF="FAQ.html#TOC303">Q5034</A>: I need an option that is the opposite of <B>-bpa,</B> that is, a listing of
        those addresses generated from a top-level address that have not yet
        been delivered.
 
        those addresses generated from a top-level address that have not yet
        been delivered.
 
@@ -6267,7 +7347,7 @@ A5034: Exim does not keep this information. It saves only the top-level
        are pipes, files, or autoreplies.
 
 </P>
        are pipes, files, or autoreplies.
 
 </P>
-<A NAME="SEC263" HREF="FAQ.html#TOC263">Q5035</A>: I am getting complaints from a customer who uses my EXIM server for
+<A NAME="SEC304" HREF="FAQ.html#TOC304">Q5035</A>: I am getting complaints from a customer who uses my EXIM server for
        relaying that they are being blocked with a "Too many connections"
        error.
 
        relaying that they are being blocked with a "Too many connections"
        error.
 
@@ -6276,7 +7356,7 @@ A5034: Exim does not keep this information. It saves only the top-level
 A5035: See <TT>smtp_accept_max</TT> and related options such as <TT>smtp_accept_reserve</TT>.
 
 </P>
 A5035: See <TT>smtp_accept_max</TT> and related options such as <TT>smtp_accept_reserve</TT>.
 
 </P>
-<A NAME="SEC264" HREF="FAQ.html#TOC264">Q5036</A>: When I try "exim <B>-bf"</B> to test a system filter, I received the following
+<A NAME="SEC305" HREF="FAQ.html#TOC305">Q5036</A>: When I try "exim <B>-bf"</B> to test a system filter, I received the following
        error message: "Filter error: unavailable filtering command "fail" near
        line 8 of filter file".
 
        error message: "Filter error: unavailable filtering command "fail" near
        line 8 of filter file".
 
@@ -6286,7 +7366,7 @@ A5036: Use the <B>-bF</B> option to test system filters. This gives you access t
        freeze and fail actions.
 
 </P>
        freeze and fail actions.
 
 </P>
-<A NAME="SEC265" HREF="FAQ.html#TOC265">Q5037</A>: How can I make Exim receive incoming mail, queue it, but NOT attempt to
+<A NAME="SEC306" HREF="FAQ.html#TOC306">Q5037</A>: How can I make Exim receive incoming mail, queue it, but NOT attempt to
        deliver it? I want to be in this state while moving some mailboxes.
 
 
        deliver it? I want to be in this state while moving some mailboxes.
 
 
@@ -6310,7 +7390,7 @@ A5037: (1) Set <TT>queue_only</TT> in the Exim configuration. (2) Kill off your
        was not available for use in <B>smartuser</B>.
 
 </P>
        was not available for use in <B>smartuser</B>.
 
 </P>
-<A NAME="SEC266" HREF="FAQ.html#TOC266">Q5038</A>: What does the rejection message "reject all recipients: 3 times bad
+<A NAME="SEC307" HREF="FAQ.html#TOC307">Q5038</A>: What does the rejection message "reject all recipients: 3 times bad
        sender" mean?
 
 
        sender" mean?
 
 
@@ -6320,7 +7400,7 @@ A5038: See the section of the manual entitled "Sender verification". Exim has
        24 hours.
 
 </P>
        24 hours.
 
 </P>
-<A NAME="SEC267" HREF="FAQ.html#TOC267">Q5039</A>: The menu in Eximon isn't working. It displays, but I can't select
+<A NAME="SEC308" HREF="FAQ.html#TOC308">Q5039</A>: The menu in Eximon isn't working. It displays, but I can't select
        anything from it.
 
 
        anything from it.
 
 
@@ -6333,7 +7413,7 @@ A5039: On some X implementations, if the numlock key is pressed (so that the
        encountered.
 
 </P>
        encountered.
 
 </P>
-<A NAME="SEC268" HREF="FAQ.html#TOC268">Q5040</A>: What does "ridiculously long message header" in an error report mean?
+<A NAME="SEC309" HREF="FAQ.html#TOC309">Q5040</A>: What does "ridiculously long message header" in an error report mean?
 
 
 <P>
 
 
 <P>
@@ -6352,10 +7432,10 @@ A5040: There has to be some limit to the length of a message's header lines,
        of an individual header line and one on the total number of header
        lines. A header line longer than 8192 used to provoke the error "Header
        line is ridiculously overlong". In subsequent releases there is no limit
        of an individual header line and one on the total number of header
        lines. A header line longer than 8192 used to provoke the error "Header
        line is ridiculously overlong". In subsequent releases there is no limit
-       on individual header lines; only the total matters.
+       on individual header lines; only the total header size matters.
 
 </P>
 
 </P>
-<A NAME="SEC269" HREF="FAQ.html#TOC269">Q5041</A>: What does Exim use for POP as a default?  Do I have to install anything
+<A NAME="SEC310" HREF="FAQ.html#TOC310">Q5041</A>: What does Exim use for POP as a default?  Do I have to install anything
        else?
 
 
        else?
 
 
@@ -6365,10 +7445,229 @@ A5041: Yes. Exim provides MTA functionality. That is, it delivers mail. POP is
        provide that functionality.
 
 </P>
        provide that functionality.
 
 </P>
-<BR><H2><A NAME="SEC270" HREF="FAQ.html#TOC270">93. HP-UX
+<A NAME="SEC311" HREF="FAQ.html#TOC311">Q5042</A>: I see that Exim doesn't support SSL. Can it be made to work with stunnel?
+
+
+<P>
+A5042: From release 3.20, Exim does support SSL/TLS, by making use of the
+       OpenSSL library.
+
+</P>
+<P>
+       The problem with using stunnel is that all your SSL connections look
+       like they come from 127.0.0.1 - none of your IP based policies will
+       have any effect. This means that you are basically an open relay,
+       anyone who connects to your server via SSL can relay through you,
+       whether they are local or not (and who knows, spammers may someday
+       evolve brains enough to try using SSL ports).
+
+</P>
+<P>
+       One solution to this is to force all SSL connections to authenticate
+       before relaying. This is how one user has done this:
+
+</P>
+<P>
+       First make sure you are set up to do SMTP AUTH properly (see the sample
+       configuration C034). Then add MUSTAUTH to the <TT>auth_hosts</TT> line in your
+       configure file. If you don't already have a list of IPs there, it will
+       look like this:
+
+</P>
+<PRE>
+         auth_hosts = MUSTAUTH</PRE>
+<P>
+       If you have some IPs you want to authenticate, add them like this:
+
+</P>
+<PRE>
+         auth_hosts = MUSTAUTH:10.1.1.1:10.1.1.2</PRE>
+<P>
+       Then invoke stunnel like this:
+
+</P>
+<PRE>
+         /usr/local/sbin/stunnel -d 465 -l /usr/exim/bin/exim \
+           -p /usr/local/ssl/certs/exim.pem -- exim -bs -DMUSTAUTH=127.0.0.1</PRE>
+<P>
+       Whenever an SSL connection is established, Exim is invoked with the
+       macro MUSTAUTH defined as 127.0.0.1, which forces that one particular
+       instance to authenticate, without disrupting normal 127.0.0.1 operations
+       via non-SSL sessions.
+
+</P>
+<A NAME="SEC312" HREF="FAQ.html#TOC312">Q5043</A>: Is there an easy way of removing all queued messages at once in a safe
+       way?
+
+
+<P>
+A5043: Try this command:
+
+</P>
+<PRE>
+       exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | sh</PRE>
+<A NAME="SEC313" HREF="FAQ.html#TOC313">Q5044</A>: What is the best way to provide backup MX for clients?
+
+
+<P>
+A5044: If the clients are always online, all you need to do is to have MX
+       records for their domains pointing to your host, with suitable
+       preference values, and ensure that their domains are listed in
+       <TT>relay_domains</TT>. If the clients are not always online, see 
+        <A HREF="FAQ.html#SEC262">Q1403</A>.
+
+</P>
+<A NAME="SEC314" HREF="FAQ.html#TOC314">Q5045</A>: Why does Exim do "ident" callbacks by default? Isn't this just a waste
+       of resources? I've been told this is an ancient way of authentication.
+       Is it obsolete?
+
+
+<P>
+A5045: This is a common mistake, at least partially resulting from the
+       incorrect naming of the protocol when it was first published.
+       The service on port 113 is an identification service, which allows a
+       target host to record information identifying the user responsible for
+       making a connection to it. The information may not be intelligible to
+       the recording host - it could, for example, be encrypted so that only
+       someone on the calling host can make sense of it. It is useful for
+       providing additional information in an audit trail.
+
+</P>
+<P>
+       The data should not be used for authentication in any form except
+       on a closed secure network between cooperating hosts (probably not
+       even then). The information from the source host is only as reliable
+       as the host itself - if it's not under your control then you have to
+       treat the information as opaque data that can be used by the sysadmin
+       of the source system to trace back connection data - and some ident
+       implementations send out opaque cookies or DES encrypted information.
+       Ident is hugely useful at times - especially for checking back on
+       connections from multiuser machines (as opposed to one-person desktop
+       boxes).
+
+</P>
+<P>
+       You can stop Exim making ident calls by adding
+
+</P>
+<PRE>
+         rfc1413_query_timeout = 0s</PRE>
+<P>
+       to its configuration, but it is better to leave it active (reducing the
+       timeout if it is causing problems) - it costs very little, and in cases
+       of mail forgery from a multiuser system can track the sinner concerned
+       very quickly.
+
+</P>
+<A NAME="SEC315" HREF="FAQ.html#TOC315">Q5046</A>: I often have the problem that a message gets stuck in the mailq and I
+       want it to be bounced to a certain address.
+
+
+<P>
+A5046: You can do this using a combination of four command line options, like
+       this:
+
+</P>
+<PRE>
+         exim -Mf   14Fdlq-0003kM-00
+         exim -Mmad 14Fdlq-0003kM-00
+         exim -Mar  14Fdlq-0003kM-00  new@ddress
+         exim -M    14Fdlq-0003kM-00</PRE>
+<P>
+       The first command freezes the message so that a queue runner won't start
+       to deliver it while you are changing things. The second command marks
+       all existing recipients as delivered. The third command adds a new
+       recipient, and the fourth command forces a delivery of the message,
+       which will cause it to be delivered to the new address, and then
+       deleted.
+
+</P>
+<A NAME="SEC316" HREF="FAQ.html#TOC316">Q5047</A>: What precautions should I take when editing <B>exim.conf?</B>
+
+
+<P>
+A5047: Edit <B>exim.conf</B> to <B>exim.conf.new.</B> Then run
+
+</P>
+<PRE>
+         exim -bV -C exim.conf.new</PRE>
+<P>
+       That will check for syntax errors without disturbing your running
+       configuration. If you are paranoid enough, <EM>as</EM> <EM>root</EM> run
+
+</P>
+<PRE>
+         exim -C exim.conf.new &#60;some address&#62;
+         &#60;some message&#62;
+         .</PRE>
+<P>
+       and see if it delivers it. Carry on testing until happy. When happy,
+
+</P>
+<PRE>
+         mv exim.conf.new exim.conf
+         kill -HUP `cat /var/spool/exim/exim-daemon.pid`</PRE>
+<P>
+       Then check the Exim log to be sure the daemon restarted OK. Watch the
+       log for a bit to see that mail is flowing.
+
+</P>
+<A NAME="SEC317" HREF="FAQ.html#TOC317">Q5048</A>: Is exim able to use RFC 2645, On-demand Mail Relay (ODMR)?
+
+
+<P>
+A5048: No.
+
+</P>
+<A NAME="SEC318" HREF="FAQ.html#TOC318">Q5049</A>: I want to send every bounced mail that is received by my server, as
+       "headers-only" to the sysadmin. How can I do this?
+
+
+<P>
+A5049: 1. Set up a transport with <TT>headers_only</TT> to do the delivery.
+
+</P>
+<P>
+       2. Set up a <B>smartuser</B> director that directs messages to a special local
+          alias (e.g. "sysadmin-header") to that transport.
+
+</P>
+<P>
+       3. Set up a system filter file, containing something like
+
+</P>
+<PRE>
+         if first_delivery and error_message then
+           unseen deliver sysadmin-header@your.domain
+         endif</PRE>
+<A NAME="SEC319" HREF="FAQ.html#TOC319">Q5050</A>: What POP3 daemon should I use with Exim? I want something with
+       configurable authentication mechanisms.
+
+
+<P>
+A5050: Qmail-pop has a checkpasswd part that can be hacked to add whatever
+       authentication you want. There is also Solid POP which has a lot of
+       Exim support in it (e.g. nhash). There is also Cyrus, which is
+       self-contained, so you don't have to worry about ownership of mailboxes
+       and also it can be poked into authenticating from just about anything.
+       However, in general, YMMV, and really what suits one user may not suit
+       another. There is a mailing list at <B><B>pop-imap@exim.org</B></B> for the discussion
+       of POP/IMAP issues. More information can be found in its archives.
+
+</P>
+<A NAME="SEC320" HREF="FAQ.html#TOC320">Q5051</A>: Is there any way I can send bounces to the postmaster, and nobody else?
+       Basically, I want to recieve them, and I don't want the reply/from
+       person to get them. If I think they need it I will forward it myself.
+
+
+<P>
+A5051: Put <TT>errors_to=postmaster</TT> on every router and director.
+
+</P>
+<BR><H2><A NAME="SEC321" HREF="FAQ.html#TOC321">93. HP-UX
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC271" HREF="FAQ.html#TOC271">Q9301</A>: I'm trying to compile on an HP machine and I don't have gcc there. So I
+<A NAME="SEC322" HREF="FAQ.html#TOC322">Q9301</A>: I'm trying to compile on an HP machine and I don't have gcc there. So I
        put <TT>CC=cc</TT> in the <B>Local/Makefile</B>, but I got this error:
 
 
        put <TT>CC=cc</TT> in the <B>Local/Makefile</B>, but I got this error:
 
 
@@ -6400,13 +7699,14 @@ A9301: The bundled compiler is not an ANSI C compiler. You either have to get a
          HP workstation, that usually isn't a problem."
 
 </P>
          HP workstation, that usually isn't a problem."
 
 </P>
-<BR><H2><A NAME="SEC272" HREF="FAQ.html#TOC272">94. BSDI
+<BR><H2><A NAME="SEC323" HREF="FAQ.html#TOC323">94. BSDI
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC273" HREF="FAQ.html#TOC273">Q9401</A>: On BSDI 4.0, Exim built with Perl support exits with the error message
-       <B>"./exim:</B> can't load library <B>'libperl.so'".</B>
+<A NAME="SEC324" HREF="FAQ.html#TOC324">Q9401</A>: On BSDI 4.0, Exim built with Perl support exits with the error message
 
 
 
 
+<PRE>
+         ./exim: can't load library 'libperl.so'</PRE>
 <P>
 A9401: You probably compiled perl5 yourself, without looking into
 
 <P>
 A9401: You probably compiled perl5 yourself, without looking into
 
@@ -6440,10 +7740,10 @@ A9401: You probably compiled perl5 yourself, without looking into
        guys did to compile perl5 which comes with BSDI 4.0 distribution.
 
 </P>
        guys did to compile perl5 which comes with BSDI 4.0 distribution.
 
 </P>
-<BR><H2><A NAME="SEC274" HREF="FAQ.html#TOC274">95. IRIX
+<BR><H2><A NAME="SEC325" HREF="FAQ.html#TOC325">95. IRIX
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC275" HREF="FAQ.html#TOC275">Q9501</A>: I'm running IRIX 6.2 with a number of alias IP addresses set up, but
+<A NAME="SEC326" HREF="FAQ.html#TOC326">Q9501</A>: I'm running IRIX 6.2 with a number of alias IP addresses set up, but
        Exim doesn't seem to recognize them as local addresses.
 
 
        Exim doesn't seem to recognize them as local addresses.
 
 
@@ -6453,25 +7753,49 @@ A9501: This problem was fixed in Exim release 2.03. If you are running an
        all your IP addresses explicitly.
 
 </P>
        all your IP addresses explicitly.
 
 </P>
-<A NAME="SEC276" HREF="FAQ.html#TOC276">Q9502</A>: The IP addresses for incoming calls are all being given as
-       255.255.255.255.
+<A NAME="SEC327" HREF="FAQ.html#TOC327">Q9502</A>: The IP addresses for incoming calls are all being given as
+       255.255.255.255 or 0.0.0.0.
 
 
 <P>
 
 
 <P>
-A9502: If you used the gcc compiler 2.8.x there is a known bug with the
-       "gethost" function under Irix. SGI recommends using either their cc
-       compiler in Irix 6.5, or a lesser version of the gnu compiler (2.6.x).
+A9502: From release 3.21, Exim contains a workaround that should fix this
+       problem. If you are using an earlier release, read on...
 
 </P>
 <P>
 
 </P>
 <P>
-       Alternatively, there is an Inst-able port of exim for Irix at
+       If you used the gcc compiler 2.8.x or a version in the 2.95 series,
+       there is a known bug with the "gethost" function under Irix. SGI
+       recommends using either their cc compiler in Irix 6.5, or a lesser
+       version of the gnu compiler. Version 2.7.2.3 is known to work.
+       Alternatively, there is an Inst-able port of Exim for Irix at
        <B><A HREF="http://freeware.sgi.com">http://freeware.sgi.com</A>,</B> but it is not likely to be the latest release.
        <B><A HREF="http://freeware.sgi.com">http://freeware.sgi.com</A>,</B> but it is not likely to be the latest release.
+       There is further information about this problem, which is described as a
+       "classic gcc structure-in-a-register bug" at this URL:
+
+</P>
+<P>
+         <B><A HREF="http://www.ccp14.ac.uk/ccp14admin/apache13/apache255error.html">http://www.ccp14.ac.uk/ccp14admin/apache13/apache255error.html</A></B>
+
+</P>
+<P>
+       This is a summary that I was sent:
+
+</P>
+<P>
+         "Gcc does not correctly pass/return structures which are smaller than
+         16 bytes and which are not 8 bytes. The problem is very involved and
+         difficult to fix. It affects a number of other targets also, but irix6
+         is affected the most, because it is a 64 bit target, and 4 byte
+         structures are common. The exact problem is that structures are being
+         padded at the wrong end, e.g. a 4 byte structure is loaded into the
+         lower 4 bytes of the register when it should be loaded into the upper
+         4 bytes of the register."
 
 </P>
 
 </P>
-<BR><H2><A NAME="SEC277" HREF="FAQ.html#TOC277">96. LINUX
+<BR><H2><A NAME="SEC328" HREF="FAQ.html#TOC328">96. LINUX
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC278" HREF="FAQ.html#TOC278">Q9601</A>: Exim is mysteriously crashing, usually when forking to send a delivery
+<A NAME="SEC329" HREF="FAQ.html#TOC329">Q9601</A>: Exim is mysteriously crashing, usually when forking to send a delivery
        error message.
 
 
        error message.
 
 
@@ -6487,7 +7811,7 @@ A9601: This has been seen in cases where Exim has been incorrectly built with
        process stops with signal 11, your hardware is to blame.
 
 </P>
        process stops with signal 11, your hardware is to blame.
 
 </P>
-<A NAME="SEC279" HREF="FAQ.html#TOC279">Q9602</A>: Exim has created a directory called <B>build-Linux-libc5-i386</B> but is
+<A NAME="SEC330" HREF="FAQ.html#TOC330">Q9602</A>: Exim has created a directory called <B>build-Linux-libc5-i386</B> but is
        trying to reference <B>build-Linux-libc5-i386-linux</B> while building.
 
 
        trying to reference <B>build-Linux-libc5-i386-linux</B> while building.
 
 
@@ -6505,7 +7829,7 @@ A9602: You have several shells installed, which are setting conflicting values
        preferentially.
 
 </P>
        preferentially.
 
 </P>
-<A NAME="SEC280" HREF="FAQ.html#TOC280">Q9603</A>: I want to use logrotate which is standard with <B>RH5.2</B> Linux to rotate
+<A NAME="SEC331" HREF="FAQ.html#TOC331">Q9603</A>: I want to use logrotate which is standard with <B>RH5.2</B> Linux to rotate
        my mail logs. Anyone worked out the logrotate config file that will
        do this?
 
        my mail logs. Anyone worked out the logrotate config file that will
        do this?
 
@@ -6527,7 +7851,7 @@ A9603: Here's one suggestion:
        reject log, of course.
 
 </P>
        reject log, of course.
 
 </P>
-<A NAME="SEC281" HREF="FAQ.html#TOC281">Q9604</A>: I'm seeing the message "<B>inetd</B>[334]: imap/tcp server failing (looping),
+<A NAME="SEC332" HREF="FAQ.html#TOC332">Q9604</A>: I'm seeing the message "<B>inetd</B>[334]: imap/tcp server failing (looping),
        service terminated" on a RedHat 5.2 system, causing imap connections to
        be refused. The imapd in use is Washington Uni vers 12.250. Could this
        be anything to do with Exim?
        service terminated" on a RedHat 5.2 system, causing imap connections to
        be refused. The imapd in use is Washington Uni vers 12.250. Could this
        be anything to do with Exim?
@@ -6551,7 +7875,7 @@ A9604: No, it's nothing to do with Exim, but here's the answer anyway: there
        provide similar functionality, but in different ways.
 
 </P>
        provide similar functionality, but in different ways.
 
 </P>
-<A NAME="SEC282" HREF="FAQ.html#TOC282">Q9605</A>: I get the "too many open files" error especially when a lot of messages
+<A NAME="SEC333" HREF="FAQ.html#TOC333">Q9605</A>: I get the "too many open files" error especially when a lot of messages
        land for majordomo at the same time.
 
 
        land for majordomo at the same time.
 
 
@@ -6578,7 +7902,7 @@ A9605: The problem appears to be the number of open files the system can
        you actually change the kernel parameters.
 
 </P>
        you actually change the kernel parameters.
 
 </P>
-<A NAME="SEC283" HREF="FAQ.html#TOC283">Q9606</A>: I'm having a problem with an Exim RPM.
+<A NAME="SEC334" HREF="FAQ.html#TOC334">Q9606</A>: I'm having a problem with an Exim RPM.
 
 
 <P>
 
 
 <P>
@@ -6623,10 +7947,38 @@ A9606: Normally the thing to do if you have a problem with an RPM package is
        debs, tarballs, and POSIX packages.
 
 </P>
        debs, tarballs, and POSIX packages.
 
 </P>
-<BR><H2><A NAME="SEC284" HREF="FAQ.html#TOC284">97. SUN SYSTEMS
+<A NAME="SEC335" HREF="FAQ.html#TOC335">Q9607</A>: I installed debian 2.2 linux on a small 325mb 486 laptop. When I try
+       to test the Mail program, I get the following error: "Failed to open
+       configuration file <B><B>/etc/exim.conf</B>".</B>
+
+
+<P>
+A9607: The Debian installation should have given you <B>/usr/sbin/eximconfig</B>,
+       which asks you some questions and then sets up the configuration file
+       in <B><B>/etc/exim.conf</B>.</B> Try running that (you'll probably need root) and see
+       how it goes. In any case you get a thoroughly commented conf file at
+       the end, which will give you a sample from which to work if you need
+       further modification.
+
+</P>
+<P>
+       The exim docs in the Debian package are in <B>/usr/doc/exim</B> and the full
+       reference manual is <B>spec.txt.gz</B>
+
+</P>
+<A NAME="SEC336" HREF="FAQ.html#TOC336">Q9608</A>: I'm getting the error <B>"db.h:</B> No such file or directory" when I try to
+       build Exim under RedHat 7.0.
+
+
+<P>
+A9608: See 
+        <A HREF="FAQ.html#SEC62">Q0113</A>.
+
+</P>
+<BR><H2><A NAME="SEC337" HREF="FAQ.html#TOC337">97. SUN SYSTEMS
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC285" HREF="FAQ.html#TOC285">Q9701</A>: Exim builds fine with gcc on SunOS 4 but crashes inside <B>sscanf()</B>.
+<A NAME="SEC338" HREF="FAQ.html#TOC338">Q9701</A>: Exim builds fine with gcc on SunOS 4 but crashes inside <B>sscanf()</B>.
 
 
 <P>
 
 
 <P>
@@ -6634,7 +7986,7 @@ A9701: Make sure you are liking with the GNU <B>ld</B> linker and not the system
        version of <B>ld</B>.
 
 </P>
        version of <B>ld</B>.
 
 </P>
-<A NAME="SEC286" HREF="FAQ.html#TOC286">Q9702</A>: How can I get rid of spurious ^M characters in messages sent from
+<A NAME="SEC339" HREF="FAQ.html#TOC339">Q9702</A>: How can I get rid of spurious ^M characters in messages sent from
        CDE <B>dtmail</B>?
 
 
        CDE <B>dtmail</B>?
 
 
@@ -6652,7 +8004,7 @@ A9702: CDE <B>dtmail</B> passes messages to Exim via the command line interface
        before passing it to Exim.
 
 </P>
        before passing it to Exim.
 
 </P>
-<A NAME="SEC287" HREF="FAQ.html#TOC287">Q9703</A>: On SunOS 4 Exim crashes when looking up domains in the DNS that have
+<A NAME="SEC340" HREF="FAQ.html#TOC340">Q9703</A>: On SunOS 4 Exim crashes when looking up domains in the DNS that have
        more than 10 A records.
 
 
        more than 10 A records.
 
 
@@ -6669,7 +8021,7 @@ A9703: There are Sun library patches to fix this. It is not Exim's problem.
        those.
 
 </P>
        those.
 
 </P>
-<A NAME="SEC288" HREF="FAQ.html#TOC288">Q9704</A>: The menu in Eximon isn't working on my Sun system.
+<A NAME="SEC341" HREF="FAQ.html#TOC341">Q9704</A>: The menu in Eximon isn't working on my Sun system.
 
 
 <P>
 
 
 <P>
@@ -6680,7 +8032,7 @@ A9704: With OpenWindows, if the numlock key is pressed (so that the numeric
        be encountered.
 
 </P>
        be encountered.
 
 </P>
-<A NAME="SEC289" HREF="FAQ.html#TOC289">Q9705</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
+<A NAME="SEC342" HREF="FAQ.html#TOC342">Q9705</A>: I am experiencing mailbox locking problems with Sun's <B>mailtool</B> used
        over a network.
 
 
        over a network.
 
 
@@ -6707,7 +8059,7 @@ A9705: Under the "Expert" settings of mailtool is a option to turn on "Use
        to hit the "done" button to make it release the lock.
 
 </P>
        to hit the "done" button to make it release the lock.
 
 </P>
-<A NAME="SEC290" HREF="FAQ.html#TOC290">Q9706</A>: Exim has been crashing on my Solaris x86 system, apparently while
+<A NAME="SEC343" HREF="FAQ.html#TOC343">Q9706</A>: Exim has been crashing on my Solaris x86 system, apparently while
        running DBM functions.
 
 
        running DBM functions.
 
 
@@ -6717,7 +8069,7 @@ A9706: The use of ndbm with gcc has caused problems on x86 Solaris systems.
        WS compiler with ndbm, has fixed this in the past.
 
 </P>
        WS compiler with ndbm, has fixed this in the past.
 
 </P>
-<A NAME="SEC291" HREF="FAQ.html#TOC291">Q9707</A>: The exiwhat utility isn't working for me on a Solaris 2 system.
+<A NAME="SEC344" HREF="FAQ.html#TOC344">Q9707</A>: The exiwhat utility isn't working for me on a Solaris 2 system.
 
 
 <P>
 
 
 <P>
@@ -6726,7 +8078,7 @@ A9707: Have you got <B>/usr/ucb</B> on your path? If so, it is probably picking
        Solaris to expect the normal Solaris version of <B>ps</B>.
 
 </P>
        Solaris to expect the normal Solaris version of <B>ps</B>.
 
 </P>
-<A NAME="SEC292" HREF="FAQ.html#TOC292">Q9708</A>: How do I stop Sun's <B>dtcm</B> from hanging?
+<A NAME="SEC345" HREF="FAQ.html#TOC345">Q9708</A>: How do I stop Sun's <B>dtcm</B> from hanging?
 
 
 <P>
 
 
 <P>
@@ -6735,7 +8087,7 @@ A9708: From qmail's FAQ: "There is a novice programming error in <B>dtcm</B>, kn
        at the time of this writing, not yet provided a patch."
 
 </P>
        at the time of this writing, not yet provided a patch."
 
 </P>
-<A NAME="SEC293" HREF="FAQ.html#TOC293">Q9709</A>: I want Exim to use only the resolver (i.e. ignore <B>/etc/hosts</B>), but don't
+<A NAME="SEC346" HREF="FAQ.html#TOC346">Q9709</A>: I want Exim to use only the resolver (i.e. ignore <B>/etc/hosts</B>), but don't
        want to alter the <B>nsswitch.conf</B> file in Solaris 2.
 
 
        want to alter the <B>nsswitch.conf</B> file in Solaris 2.
 
 
@@ -6761,10 +8113,10 @@ A9709: You need to rebuild Exim after fiddling with <B>OS/os.h-SunOS5:</B>
        that Exim uses.
 
 </P>
        that Exim uses.
 
 </P>
-<BR><H2><A NAME="SEC294" HREF="FAQ.html#TOC294">98. COOKBOOK
+<BR><H2><A NAME="SEC347" HREF="FAQ.html#TOC347">98. COOKBOOK
 
 </A></H2>
 
 </A></H2>
-<A NAME="SEC295" HREF="FAQ.html#TOC295">Q9801</A>: How do I configure Exim as part of TPC <B>(<A HREF="http://www.tpc.int">http://www.tpc.int</A>)?</B>
+<A NAME="SEC348" HREF="FAQ.html#TOC348">Q9801</A>: How do I configure Exim as part of TPC <B>(<A HREF="http://www.tpc.int">http://www.tpc.int</A>)?</B>
 
 
 <P>
 
 
 <P>
@@ -6786,8 +8138,8 @@ A9801: (1) add <B>partial-lsearch;/etc/mail/tpc.domains</B> to <TT>local_domains
 <PRE>
              tpc:
                driver = pipe
 <PRE>
              tpc:
                driver = pipe
-               command = "/usr/local/tpc/tpcmailer.pl ${local_part}@${domain} \
-                  ${sender_address}"
+               command = /usr/local/tpc/tpcmailer.pl ${local_part}@${domain} \
+                  ${sender_address}
                pipe_as_creator</PRE>
 <P>
            <B><B>/usr/local/tpc/tpcmailer.pl</B></B> is the mail processing script that can
                pipe_as_creator</PRE>
 <P>
            <B><B>/usr/local/tpc/tpcmailer.pl</B></B> is the mail processing script that can
@@ -6802,13 +8154,13 @@ A9801: (1) add <B>partial-lsearch;/etc/mail/tpc.domains</B> to <TT>local_domains
              tpc_director:
                driver = smartuser
                transport = tpc
              tpc_director:
                driver = smartuser
                transport = tpc
-               domains = "partial-lsearch;/etc/mail/tpc.domains"</PRE>
+               domains = partial-lsearch;/etc/mail/tpc.domains</PRE>
 <P>
        Of course, there are other things to do as well before your system is
        a functioning TPC server.
 
 </P>
 <P>
        Of course, there are other things to do as well before your system is
        a functioning TPC server.
 
 </P>
-<A NAME="SEC296" HREF="FAQ.html#TOC296">Q9802</A>: How do I configure Exim so that it sends mail to the outside world only
+<A NAME="SEC349" HREF="FAQ.html#TOC349">Q9802</A>: How do I configure Exim so that it sends mail to the outside world only
        from a restricted list of our local users?
 
 
        from a restricted list of our local users?
 
 
@@ -6823,8 +8175,8 @@ A9802: There are several possible ways that this can be done.
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-             senders = ":^[^@]+@(?!${rxquote:your.domain}\\$):\
-                       lsearch;/permitted/senders"</PRE>
+             senders = :^[^@]+@(?!${rxquote:your.domain}\$):\
+                       lsearch;/permitted/senders</PRE>
 <P>
            The first item in this list is empty, to match the empty sender.
            This is necessary because bounce messages have null senders. The
 <P>
            The first item in this list is empty, to match the empty sender.
            This is necessary because bounce messages have null senders. The
@@ -6850,13 +8202,13 @@ A9802: There are several possible ways that this can be done.
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-             condition = "\
+             condition = \
                ${lookup{${domain:$sender_address}}lsearch{/domain/list}\
                {\
                  ${lookup{${local_part:$sender_address}}lsearch\
                  {/permitted/senders}{yes}{no}}\
                }\
                ${lookup{${domain:$sender_address}}lsearch{/domain/list}\
                {\
                  ${lookup{${local_part:$sender_address}}lsearch\
                  {/permitted/senders}{yes}{no}}\
                }\
-               {yes}}"</PRE>
+               {yes}}</PRE>
 <P>
            Obviously other means of testing the domain and local part could be
            substituted, for example, by having separate files of valid local
 <P>
            Obviously other means of testing the domain and local part could be
            substituted, for example, by having separate files of valid local
@@ -6872,11 +8224,11 @@ A9802: There are several possible ways that this can be done.
 
 </P>
 <PRE>
 
 </P>
 <PRE>
-             condition = "\
+             condition = \
                ${lookup{groupname}lsearch{/etc/group}\
                {${if match {$value}\
                ${lookup{groupname}lsearch{/etc/group}\
                {${if match {$value}\
-               {[:,]${rxquote:${local_part:$sender_address}}(,|\\\$)}\
-               {yes}{no}}}{no}}"</PRE>
+               {[:,]${rxquote:${local_part:$sender_address}}(,|\$)}\
+               {yes}{no}}}{no}}</PRE>
 <P>
            This is checking the local part of the sender; a alternative might
            be to check <B><B>$sender_ident.</B></B> However, you should really also check
 <P>
            This is checking the local part of the sender; a alternative might
            be to check <B><B>$sender_ident.</B></B> However, you should really also check
@@ -6901,7 +8253,7 @@ A9802: There are several possible ways that this can be done.
            part of <B><B>user@your.domain</B>.</B>
 
 </P>
            part of <B><B>user@your.domain</B>.</B>
 
 </P>
-<A NAME="SEC297" HREF="FAQ.html#TOC297">Q9803</A>: How do I configure Exim to run with SmartList?
+<A NAME="SEC350" HREF="FAQ.html#TOC350">Q9803</A>: How do I configure Exim to run with SmartList?
 
 
 <P>
 
 
 <P>
@@ -6923,8 +8275,8 @@ A9803: This is what was done for Exim's own mailing list, using SmartList/
 <PRE>
          list_transport:
            driver = pipe
 <PRE>
          list_transport:
            driver = pipe
-           command = "/var/spool/slist/.bin/flist \
-                     ${local_part}${local_part_suffix}"
+           command = /var/spool/slist/.bin/flist \
+                     ${local_part}${local_part_suffix}
            current_directory = /var/spool/slist
            home_directory = /var/spool/slist
            user = slist
            current_directory = /var/spool/slist
            home_directory = /var/spool/slist
            user = slist
@@ -6965,21 +8317,21 @@ A9803: This is what was done for Exim's own mailing list, using SmartList/
        and was written by Michelle Dick.
 
 </P>
        and was written by Michelle Dick.
 
 </P>
-<A NAME="SEC298" HREF="FAQ.html#TOC298">Q9804</A>: How do I configure Exim to minic PP's "tripnote" facility?
+<A NAME="SEC351" HREF="FAQ.html#TOC351">Q9804</A>: How do I configure Exim to minic PP's "tripnote" facility?
 
 
 <P>
 A9804: See C005.
 
 </P>
 
 
 <P>
 A9804: See C005.
 
 </P>
-<A NAME="SEC299" HREF="FAQ.html#TOC299">Q9805</A>: How do I configure Exim to handle local parts with extensions?
+<A NAME="SEC352" HREF="FAQ.html#TOC352">Q9805</A>: How do I configure Exim to handle local parts with extensions?
 
 
 <P>
 A9805: See C010.
 
 </P>
 
 
 <P>
 A9805: See C010.
 
 </P>
-<A NAME="SEC300" HREF="FAQ.html#TOC300">Q9806</A>: How do I configure Exim so that only a restricted list of users can
+<A NAME="SEC353" HREF="FAQ.html#TOC353">Q9806</A>: How do I configure Exim so that only a restricted list of users can
        receive mail from external domains?
 
 
        receive mail from external domains?
 
 
@@ -6987,7 +8339,7 @@ A9805: See C010.
 A9806: See C013.
 
 </P>
 A9806: See C013.
 
 </P>
-<A NAME="SEC301" HREF="FAQ.html#TOC301">Q9807</A>: I have <B><B>someuser@mydomain.com</B></B> that I only want certain users to be able
+<A NAME="SEC354" HREF="FAQ.html#TOC354">Q9807</A>: I have <B><B>someuser@mydomain.com</B></B> that I only want certain users to be able
        to mail to. How do I accomplish this?
 
 
        to mail to. How do I accomplish this?
 
 
@@ -7020,7 +8372,7 @@ A9807: This is a transport:
        file as complete addresses, including a domain.
 
 </P>
        file as complete addresses, including a domain.
 
 </P>
-<A NAME="SEC302" HREF="FAQ.html#TOC302">Q9808</A>: A site for which I provide secondary MX is down for some time. Is there
+<A NAME="SEC355" HREF="FAQ.html#TOC355">Q9808</A>: A site for which I provide secondary MX is down for some time. Is there
        a way to run the queue for that destination separately from the main
        queue?
 
        a way to run the queue for that destination separately from the main
        queue?
 
@@ -7034,14 +8386,14 @@ A9808: No, because Exim does not have the concept of "the queue for that
        BSMTP files. There is an example of the latter approach in C014.
 
 </P>
        BSMTP files. There is an example of the latter approach in C014.
 
 </P>
-<A NAME="SEC303" HREF="FAQ.html#TOC303">Q9809</A>: How do I implement VERP (Variable Envelope Return Paths) in Exim?
+<A NAME="SEC356" HREF="FAQ.html#TOC356">Q9809</A>: How do I implement VERP (Variable Envelope Return Paths) in Exim?
 
 
 <P>
 A9809: See C017.
 
 </P>
 
 
 <P>
 A9809: See C017.
 
 </P>
-<A NAME="SEC304" HREF="FAQ.html#TOC304">Q9810</A>: I'd like to make a copy of all outgoing messages to a local mailbox. Is
+<A NAME="SEC357" HREF="FAQ.html#TOC357">Q9810</A>: I'd like to make a copy of all outgoing messages to a local mailbox. Is
        there a solution for this using an Exim filter?
 
 
        there a solution for this using an Exim filter?
 
 
@@ -7086,10 +8438,10 @@ A9810: The following filter makes a copy of every message, except for delivery
        This takes copies of messages whose From: header contains <B>your.domain</B>
        and whose To: and Cc: headers contain at least one address that does not
        contain <B>your.domain.</B> See also 
        This takes copies of messages whose From: header contains <B>your.domain</B>
        and whose To: and Cc: headers contain at least one address that does not
        contain <B>your.domain.</B> See also 
-        <A HREF="FAQ.html#SEC311">Q9817</A>.
+        <A HREF="FAQ.html#SEC364">Q9817</A>.
 
 </P>
 
 </P>
-<A NAME="SEC305" HREF="FAQ.html#TOC305">Q9811</A>: I want to make a copy of outgoing messages to a specific file for each
+<A NAME="SEC358" HREF="FAQ.html#TOC358">Q9811</A>: I want to make a copy of outgoing messages to a specific file for each
        user in a specific directory, using a "save" command in a system filter.
        How can I arrange for Exim to write to these files under the correct
        UID/GID?
        user in a specific directory, using a "save" command in a system filter.
        How can I arrange for Exim to write to these files under the correct
        UID/GID?
@@ -7119,7 +8471,7 @@ A9811: You need to set up a special transport and tell Exim to use it for
        use <TT>user=exim</TT> and do all the writing under the same UID/GID.
 
 </P>
        use <TT>user=exim</TT> and do all the writing under the same UID/GID.
 
 </P>
-<A NAME="SEC306" HREF="FAQ.html#TOC306">Q9812</A>: How can I keep an archive of all mail for some specific local email
+<A NAME="SEC359" HREF="FAQ.html#TOC359">Q9812</A>: How can I keep an archive of all mail for some specific local email
        addresses?
 
 
        addresses?
 
 
@@ -7139,10 +8491,10 @@ A9812: You could use a system filter, along the lines of
        this, you will need to set <TT>message_filter_file_transport</TT> to point to an
        appropriate transport which includes a setting of "user" to specify
        which uid to run the saving under, as is described in 
        this, you will need to set <TT>message_filter_file_transport</TT> to point to an
        appropriate transport which includes a setting of "user" to specify
        which uid to run the saving under, as is described in 
-        <A HREF="FAQ.html#SEC305">Q9811</A>.
+        <A HREF="FAQ.html#SEC358">Q9811</A>.
 
 </P>
 
 </P>
-<A NAME="SEC307" HREF="FAQ.html#TOC307">Q9813</A>: How can I configure Exim to provide a vacation message when there are
+<A NAME="SEC360" HREF="FAQ.html#TOC360">Q9813</A>: How can I configure Exim to provide a vacation message when there are
        no local users on my mail hub?
 
 
        no local users on my mail hub?
 
 
@@ -7150,7 +8502,7 @@ A9812: You could use a system filter, along the lines of
 A9813: See C019.
 
 </P>
 A9813: See C019.
 
 </P>
-<A NAME="SEC308" HREF="FAQ.html#TOC308">Q9814</A>: We want to be able to temporarily lock out a user by disabling the
+<A NAME="SEC361" HREF="FAQ.html#TOC361">Q9814</A>: We want to be able to temporarily lock out a user by disabling the
        password and moving the home directory to another place. How can we
        arrange to reject mail for users in this state?
 
        password and moving the home directory to another place. How can we
        arrange to reject mail for users in this state?
 
@@ -7198,7 +8550,7 @@ A9814: Change the home directory pointer in the passwd file to something
        instead of setting <TT>match_directory</TT>.
 
 </P>
        instead of setting <TT>match_directory</TT>.
 
 </P>
-<A NAME="SEC309" HREF="FAQ.html#TOC309">Q9815</A>: I need an alias, say "fakeaddress" that should receive a message,
+<A NAME="SEC362" HREF="FAQ.html#TOC362">Q9815</A>: I need an alias, say "fakeaddress" that should receive a message,
        strip all reply-to: headers present, substitute another one pointing to
        "otheraddress" and forward a message to "realaddress".
 
        strip all reply-to: headers present, substitute another one pointing to
        "otheraddress" and forward a message to "realaddress".
 
@@ -7221,20 +8573,20 @@ A9815: Add this director:
        the fixed values shown above.
 
 </P>
        the fixed values shown above.
 
 </P>
-<A NAME="SEC310" HREF="FAQ.html#TOC310">Q9816</A>: How can I set up Exim to work with Listar?
+<A NAME="SEC363" HREF="FAQ.html#TOC363">Q9816</A>: How can I set up Exim to work with Listar?
 
 
 <P>
 A9816: See <B><A HREF="http://www.cs.huji.ac.il/~vadik/listar-exim/.">http://www.cs.huji.ac.il/~vadik/listar-exim/.</A></B>
 
 </P>
 
 
 <P>
 A9816: See <B><A HREF="http://www.cs.huji.ac.il/~vadik/listar-exim/.">http://www.cs.huji.ac.il/~vadik/listar-exim/.</A></B>
 
 </P>
-<A NAME="SEC311" HREF="FAQ.html#TOC311">Q9817</A>: I need to take copies of all incoming and outgoing mail for certain
+<A NAME="SEC364" HREF="FAQ.html#TOC364">Q9817</A>: I need to take copies of all incoming and outgoing mail for certain
        users. For each user there may be a different monitoring address.
 
 
 <P>
 A9817: You can adapt the filter solution given in 
        users. For each user there may be a different monitoring address.
 
 
 <P>
 A9817: You can adapt the filter solution given in 
-        <A HREF="FAQ.html#SEC304">Q9810</A> by adding a test for
+        <A HREF="FAQ.html#SEC357">Q9810</A> by adding a test for
        the relevant local parts. Create a file containing lines like this:
 
 </P>
        the relevant local parts. Create a file containing lines like this:
 
 </P>
@@ -7263,29 +8615,24 @@ A9817: You can adapt the filter solution given in
        because Exim caches the results of successful lookups.
 
 </P>
        because Exim caches the results of successful lookups.
 
 </P>
-<A NAME="SEC312" HREF="FAQ.html#TOC312">Q9818</A>: How can I add a disclaimer to the end of every message?
+<A NAME="SEC365" HREF="FAQ.html#TOC365">Q9818</A>: How can I add a disclaimer to the end of every message?
 
 
 <P>
 
 
 <P>
-A9818: This isn't as easy as it appears. You cannot just add text to the bottom
-       of messages because of the possibility of MIME attachments. In any case,
-       it is not the job of an MTA to mess with the contents of messages. You
-       can perhaps do things with Exim's transport filters if you really have
-       to, but if the messages originate locally, it would be better to do
-       what you want in the MUA (e.g. force all your local users to have it in
-       their .sig files).
+A9818: See 
+        <A HREF="FAQ.html#SEC265">Q1501</A>.
 
 </P>
 
 </P>
-<A NAME="SEC313" HREF="FAQ.html#TOC313">Q9819</A>: I would like to append a simple advertisement text to all outgoing
+<A NAME="SEC366" HREF="FAQ.html#TOC366">Q9819</A>: I would like to append a simple advertisement text to all outgoing
        and local mails.
 
 
 <P>
 A9819: See 
        and local mails.
 
 
 <P>
 A9819: See 
-        <A HREF="FAQ.html#SEC312">Q9818</A>.
+        <A HREF="FAQ.html#SEC265">Q1501</A>.
 
 </P>
 
 </P>
-<A NAME="SEC314" HREF="FAQ.html#TOC314">Q9820</A>: How can I configure Exim so that all mails adressed to
+<A NAME="SEC367" HREF="FAQ.html#TOC367">Q9820</A>: How can I configure Exim so that all mails adressed to
        <B><B>something@username.domain.net</B></B> get delivered to <B>/var/spool/mail/username</B>?
 
 
        <B><B>something@username.domain.net</B></B> get delivered to <B>/var/spool/mail/username</B>?
 
 
@@ -7314,14 +8661,14 @@ A9820: There are several possibilities, depending on exactly how you are set
        This should be the first director.
 
 </P>
        This should be the first director.
 
 </P>
-<A NAME="SEC315" HREF="FAQ.html#TOC315">Q9821</A>: How do I get exim not to add a Sender: header to locally originated
+<A NAME="SEC368" HREF="FAQ.html#TOC368">Q9821</A>: How do I get exim not to add a Sender: header to locally originated
        mail?
 
 
 <P>
 A9821: It only adds it if the From: header doesn't correspond to the user
        mail?
 
 
 <P>
 A9821: It only adds it if the From: header doesn't correspond to the user
-       sending the message. You can't remove it in general (but this may be
-       possible in a future release). However:
+       sending the message. From release 3.14 onwards, you can suppress this
+       by setting <TT>no_local_from_check</TT>. Alternatively,
 
 </P>
 <P>
 
 </P>
 <P>
@@ -7345,18 +8692,18 @@ A9821: It only adds it if the From: header doesn't correspond to the user
 <P>
        (2) If your <EM>real</EM> question "how do I submit mail from UUCP
        without it adding Sender:?" Then see 
 <P>
        (2) If your <EM>real</EM> question "how do I submit mail from UUCP
        without it adding Sender:?" Then see 
-        <A HREF="FAQ.html#SEC154">Q0603</A>.
+        <A HREF="FAQ.html#SEC185">Q0603</A>.
 
 </P>
 
 </P>
-<A NAME="SEC316" HREF="FAQ.html#TOC316">Q9822</A>: How can I get Exim to work with mailman?
+<A NAME="SEC369" HREF="FAQ.html#TOC369">Q9822</A>: How can I get Exim to work with mailman?
 
 
 <P>
 
 
 <P>
-A9822: The Exim mailing list uses the configuration that is given in the "how
-       to" information at <B><A HREF="http://www.exim.org/howto/mailman.html">http://www.exim.org/howto/mailman.html.</A></B>
+A9822: The configuration in <B><A HREF="http://www.exim.org/howto/mailman.html">http://www.exim.org/howto/mailman.html</A></B> was used for
+       the Exim mailing list before it switched to SmartList.
 
 </P>
 
 </P>
-<A NAME="SEC317" HREF="FAQ.html#TOC317">Q9823</A>: Is there any way to have messages sent to a specific local address
+<A NAME="SEC370" HREF="FAQ.html#TOC370">Q9823</A>: Is there any way to have messages sent to a specific local address
        delayed by - say - 24 hours?
 
 
        delayed by - say - 24 hours?
 
 
@@ -7377,7 +8724,87 @@ A9823: Using Exim 3.10 or later, the answer is "yes". Set up a <B>smartuser</B>
        the address. You may want to set a special retry rule for it.
 
 </P>
        the address. You may want to set a special retry rule for it.
 
 </P>
-<BR><H2><A NAME="SEC318" HREF="FAQ.html#TOC318">99. LIST OF SAMPLE CONFIGURATIONS
+<A NAME="SEC371" HREF="FAQ.html#TOC371">Q9824</A>: I have a mailing list exploder on one host, and three other hosts where
+       I want to do the actual deliveries from. How can I get Exim to split
+       a message into groups of recipients between the three hosts?
+
+
+<P>
+A9824: Splitting into groups of recipients can be done by setting <TT>max_rcpt</TT> in
+       the SMTP transport. Persuading Exim to spread the groups between three
+       hosts is a little harder. Suppose you have 300 addresses, and <TT>max_rcpt</TT>
+       is set to 100. One approach is to try <TT>hosts_randomize</TT> in a <B>domainlist</B>
+       router, like this:
+
+</P>
+<PRE>
+         split:
+           driver = domainlist
+           transport = remote_smtp
+           hosts_randomize
+           route_list = *  hostA:hostB:hostC  byname</PRE>
+<P>
+       Unfortunately, this doesn't work quite as you might expect. There are
+       six different permutations of the host list, and so if the randomizing
+       works perfectly, Exim will end up with
+
+</P>
+<PRE>
+         50 addresses routed to hostA:hostB:hostC
+         50 addresses routed to hostA:hostC:hostB
+         50 addresses routed to hostB:hostC:hostA
+         50 addresses routed to hostB:hostA:hostC
+         50 addresses routed to hostC:hostA:hostB
+         50 addresses routed to hostC:hostB:hostA</PRE>
+<P>
+       Although a total of 100 addresses have hostA as their first host, Exim
+       will still send them in two separate SMTP calls, because it can only
+       batch up addresses that have identical host lists. If hostA is down, it
+       will send 50 of these to host B and 50 to host C. It will aways send six
+       copies of the message.
+
+</P>
+<P>
+       With only three hosts, this isn't a major problem, but if the number of
+       hosts increases, it becomes more serious. If there are four delivery
+       hosts, there are 24 different permuations, and with five hosts there are
+       120, so 120 messages are sent. When the hosts are not all of the same
+       power, you might want to use a list like
+
+</P>
+<PRE>
+         hostA:hostA:hostA:hostB:hostB:hostC</PRE>
+<P>
+       to send more to hostA, and this makes the situation worse. There is,
+       however, a way to solve this. Instead of putting the host list on the
+       router, put it on the transport. The router just contains one host:
+
+</P>
+<PRE>
+         split:
+           driver = domainlist
+           transport = special_smtp
+           route_list = *  hostA  byname</PRE>
+<P>
+       and the transport has the full list, set to override the router's host:
+
+</P>
+<PRE>
+         special_smtp:
+           driver = smtp
+           hosts = hostA:hostA:hostA:hostB:hostB:hostC
+           hosts_override
+           hosts_randomize
+           max_rcpt = 100</PRE>
+<P>
+       Now all 300 addresses are routed to the same host, so they are sent to
+       the transport 100 at a time. The transport overrides the router's host
+       with its own list, which it randomizes each time. (This works only for
+       releases of Exim after 3.16 - up to and including that release, there is
+       a bug that prevents it re-randomizing for each group.) See also C040.
+
+</P>
+<BR><H2><A NAME="SEC372" HREF="FAQ.html#TOC372">99. LIST OF SAMPLE CONFIGURATIONS
 
 </A></H2>
 <P>
 
 </A></H2>
 <P>
@@ -7399,7 +8826,7 @@ C002:  "Although exim not intended for use in UUCP environment (it doesn't
 </P>
 <P>
 C003:  "I've read down through 
 </P>
 <P>
 C003:  "I've read down through 
-        <A HREF="FAQ.html#SEC152">Q0601</A> and your request for UUCP examples. Here's
+        <A HREF="FAQ.html#SEC183">Q0601</A> and your request for UUCP examples. Here's
        how I'm doing it." (This example uses routers.)
 
 </P>
        how I'm doing it." (This example uses routers.)
 
 </P>
@@ -7593,6 +9020,41 @@ C034:  "This is a HOW-TO for setting up Exim to support SMTP authentication
 C035:  "These configurations enable exim and hylafax <B>(www.hylafax.org)</B>  work
        together, I mean sending fax by email <B><B>(user@123456.fax</B>)."</B>
 
 C035:  "These configurations enable exim and hylafax <B>(www.hylafax.org)</B>  work
        together, I mean sending fax by email <B><B>(user@123456.fax</B>)."</B>
 
+</P>
+<P>
+C036:  "My aim was to have an LDAP-driven system for mail delivery."
+
+</P>
+<P>
+C037:  An elegant way of using ETRN, which does immediate delivery if the host
+       is online, but saves mail in a BSMTP file after some time on the queue.
+       ETRN then re-injects the mail.
+
+</P>
+<P>
+C038:  Amavis virus scanning: "Here ya go. This is the config we use... this
+       box is our main MX host then relays it to our real server for delivery."
+
+</P>
+<P>
+C039:  "For reference, this is how I got PAM authentication from a standard
+       UNIX password database with Eudora 4.3 clients to work on a Debian 2.2
+       (Intel) system. This configuration assumes that you are using standard
+       UNIX crypt passwords; pam-pwdfile is NOT compatible with MD5 encrypted
+       passwords."
+
+</P>
+<P>
+C040:  "Exim 3.20 has a feature that allows a large mailing of a single message
+       to be sent to many different relays. This is useful for mailing lists,
+       as it allows the message to be relayed to multiple machines, in groups
+       of 100 addresses, for final delivery."
+
+</P>
+<P>
+C041:  "Attached you will find a plain text file where I explain how to set up
+        mailman to use virtual environment (single setup for many domains)."
+
 </P>
 <P>
 F001:  "I thought that the rest of the list may be interested in reviewing our
 </P>
 <P>
 F001:  "I thought that the rest of the list may be interested in reviewing our
index 6b314eeb3447c842c647eaad515428b2aa0cdb66..e281fe96b5d2b7a3c32edaff9c6937e90a2c62ce 100644 (file)
@@ -57,6 +57,6 @@ where alpha, beta, and gamma are UUCP neighbors.
 
 
 For example, our mail server, hermes, uses UUCP to transport email to my
 
 
 For example, our mail server, hermes, uses UUCP to transport email to my
-laptop, ulysses.  Ulysses can poll hermes on TCP port 520 from anywhere
+laptop, ulysses.  Ulysses can poll hermes on TCP port 540 from anywhere
 on the net.  This is independent of ulysses's IP address, and there's
 no messing with SMTP/ETRN.
 on the net.  This is independent of ulysses's IP address, and there's
 no messing with SMTP/ETRN.
index eb6eafa7c1651f90fe5355f7dbcb920b67e5616c..ad89a7d86a20697d3f8ab89d3f6bbe3c380794ce 100644 (file)
@@ -3,7 +3,21 @@ From: David M Walker <davidw@datamgmt.com>
 
 Thanks to Philip and others I now have my ISP style config built and
 therefore am posting the final configuration fragments to the list in
 
 Thanks to Philip and others I now have my ISP style config built and
 therefore am posting the final configuration fragments to the list in
-case anyone else wants to do a similar thing
+case anyone else wants to do a similar thing.
+
+Date: Mon, 26 Jul 1999 00:02:14 +0100
+From: David M Walker <davidw@datamgmt.com>
+
+Some time ago I posted ISP nstyle configuration C011 and continue
+to get mails of the form:
+
+>   But can you please explain me how do the clients get their
+>   email if it's placed in many directories and the password
+>   are stored in "private" passwd files. The popper is not able
+>   to understand it. What approach do you use?
+
+The way I approach this is described after the configuration.
+
 
 ######################################################################
 
 
 ######################################################################
 
@@ -133,3 +147,302 @@ virtual_alias:
    qualify_preserve_domain 
 
 end
    qualify_preserve_domain 
 
 end
+######################################################################
+
+
+Our domains each have a unique last number from their IP address
+in the form x.y.z.222 etc. but a simple serial number would do.
+We prefix this domain number with an 'm' because it's a bad thing 
+to create a username that starts with a digit. The 'm' stands for
+nothing special - originally I think it meant mail.
+
+As a result we get a username of the form m222.dwalker
+
+We now use the shell script below to create the user, setup
+symbolic links from /var/spool/mail/m222.dwalker to the user's
+account directory etc. This is either called from a web page via
+ssl or an ssh login.
+
+Therefore mail sent to dwalker@datamgmt.com will be accessable
+from a pop or imap account called m222.dwalker and uniqueness
+across multiple domains is preserved.
+
+
+#!/bin/ksh -
+
+PATH=${PATH}:/usr/sbin; export PATH
+
+# General Configuration
+export PROGNAME=`basename $0`
+export POPGID=198
+export SHELL=/bin/false
+export SYSPASS=/etc/passwd
+export SYSSHAD=/etc/shadow
+export PREFIX=m
+
+# Global Parameters
+export DOMAIN=""
+export DOMGID=""
+export DOMPASS=""
+export DOMROOT=""
+export DOMUID=""
+export DOMUSER=""
+export HOMEDIR=""
+export MAILBOX=""
+export MAILLNK=""
+export POPUSER=""
+export STRNGTST=""
+
+fn_check_exit()
+{
+ESTATUS=$1
+if [ "${ESTATUS}" != 0 ]
+then
+   echo "Command exited with non-zero value (${ESTATUS})"
+   exit ${ESTATUS}
+else
+   echo "Command successful"
+fi
+}
+
+fn_getdomain()
+{
+DOMUID=$(id -u ${USER})
+DOMGRP=${USER}
+. getdomain ${DOMGRP}
+
+# Derived Variables
+DOMROOT=/monza/clients/${DOMAIN}
+POPUSER=${PREFIX}${DOMUID}.${DOMUSER}
+DOMGID=${DOMUID}
+DOMPASS=${DOMROOT}/etc/passwd
+HOMEDIR=${DOMROOT}/users/${DOMUSER}
+MAILBOX=${DOMROOT}/mail/${DOMUSER}
+MAILLNK=/var/spool/mail/${POPUSER}
+}
+
+fn_mkpasswd()
+{
+STRNGTST=`grep "^${POPUSER}:" ${SYSPASS}`
+if [ -z "${STRNGTST}" ]
+then
+   echo "Making ${SYSPASS} entry"
+   useradd -u ${DOMUID} -g ${DOMGRP} -d ${HOMEDIR} -s ${SHELL} -m -n ${POPUSER}
+   fn_check_exit $?
+   #echo "${POPUSER}:x:${DOMUID}:${POPGID}::${HOMEDIR}:${SHELL}" >> ${SYSPASS}
+else
+   echo "User ${POPUSER} already in ${SYSPASS}"
+fi
+}
+
+fn_mkdomuser()
+{
+STRNGTST=`grep "^${DOMUSER}:" ${DOMPASS}`
+if [ -z "${STRNGTST}" ]
+then
+   echo "Making ${DOMPASS} entry"
+   echo "${DOMUSER}:x:${DOMUID}:${DOMGID}::${HOMEDIR}:" >> ${DOMPASS}
+else
+   echo "User ${DOMUSER} already in ${DOMPASS}"
+fi
+}
+
+fn_mkmaildir()
+{
+if [ ! -e ${HOMEDIR}/mail ]
+then
+    echo "Making ${HOMEDIR}/mail"
+    mkdir ${HOMEDIR}/mail
+    fn_check_exit $?
+    echo "Setting permissions on ${HOMEDIR}"
+    chown ${DOMUID}:${DOMGID} ${HOMEDIR}
+    fn_check_exit $?
+fi
+}
+    
+fn_creatembox()
+{
+if [ ! -e ${MAILBOX} ]
+then
+   echo "Creating empty mailbox"
+   touch ${MAILBOX}
+   fn_check_exit $?
+fi
+echo "Setting ownership"
+chown ${DOMUID}.mail ${MAILBOX}
+fn_check_exit $?
+echo "Setting permissions"
+chmod 660 ${MAILBOX}
+fn_check_exit $?
+}
+
+fn_dellink()
+{
+if [ -e ${MAILLNK} ]
+then
+   if [ -L ${MAILLNK} ]
+   then
+      echo "Removing old link"
+      rm ${MAILLNK}
+      fn_check_exit $?
+   else
+      echo "${MAILLNK} is not a link - moving to .old"
+      mv ${MAILLNK} ${MAILLNK}.old
+      fn_check_exit $?
+   fi
+fi
+}
+
+fn_mklink()
+{
+if [ -e ${MAILLNK} ]
+then
+   if [ -L ${MAILLNK} ]
+   then
+      echo "Removing old link"
+      rm ${MAILLNK}
+      fn_check_exit $?
+   else
+      echo "File ${MAILLNK} exists moving to .old"
+      mv ${MAILLNK} ${MAILLNK}.old
+      fn_check_exit $?
+   fi
+fi
+echo "Creating a new link"
+ln -s ${MAILBOX} ${MAILLNK}
+fn_check_exit $?
+}
+
+fn_setpasswd()
+{
+echo "Set password for ${DOMUSER}"
+passwd ${POPUSER}
+fn_check_exit $?
+}
+
+fn_delpopuser()
+{
+fn_getdomain
+fn_delpass
+fn_dellink
+echo ""
+echo "Pop account deleted for ${POPUSER}"
+echo "Files in the domain user and mail directories must be deleted manually"
+echo "The entry in the domain passwd file is also redundant"
+echo ""
+}
+
+fn_connect()
+{
+   echo ""
+   echo "E-Mail Address: ${DOMUSER}@${DOMAIN}"
+   echo "Pop username:   ${POPUSER}"
+   echo "Pop password:   ********"
+   echo "Inbound mail:   mail.${DOMAIN}"
+   echo "Inbound port:   110"
+   echo "Outbound mail:  mail.${DOMAIN}"
+   echo "Outbound mail:  25"
+   echo ""
+}
+
+fn_addpopuser()
+{
+fn_getdomain
+fn_mkpasswd
+fn_mkmaildir
+fn_mkdomuser
+fn_creatembox
+fn_mklink
+fn_setpasswd
+fn_connect
+}
+
+fn_setuserpass()
+{
+fn_getdomain
+fn_setpasswd
+fn_connect
+}
+
+fn_usage()
+{
+   echo "Usage: ${PROGNAME} -a username [add a user]"
+   echo "       ${PROGNAME} -c username [change a users password]"
+   echo "       ${PROGNAME} -d username [delete a user]"
+   echo "       ${PROGNAME} -l          [lists all user]"
+   echo ""
+   echo "There is also a -n option to set the prefix to null rather"
+   echo "than m for backward compatiblity with earlier versions"
+   echo "Note: -n must proceed any other parameters"
+   exit 1
+}
+
+fn_delpass()
+{
+STRNGTST=`grep "^${POPUSER}:" ${SYSPASS}`
+if [ -n "${STRNGTST}" ]
+then
+userdel ${POPUSER}
+fn_check_exit $?
+else
+   echo "User ${POPUSER} already deleted from ${SYSPASS}"
+fi
+}
+
+fn_listpops()
+{
+    fn_getdomain
+    echo "Username\t/etc/passwd\t/etc/shadow\tLocal Password"
+    for POPUSER in `grep "^${PREFIX}${DOMUID}\." ${SYSPASS} | cut -d: -f1 -s`
+    do
+       echo "${POPUSER}\tOK\t\t\c"
+       OKS=`grep "^${POPUSER}:" ${SYSSHAD}`
+       if [ -n "${OKS}" ]
+       then
+          echo "OK\t\t\c"
+       else
+          echo "Bad\t\t\c"
+       fi
+       DUS=`echo ${POPUSER} | cut -d"." -f2 -s`
+       OKD=`grep "^${DUS}:" ${DOMPASS}`
+       if [ -n "${OKD}" ]
+       then
+          echo "OK\t\c"
+       else
+          echo "Bad\t\c"
+       fi
+       echo ""
+    done
+}
+
+DONE=""
+while getopts a:c:d:ln PARAM
+do
+   case ${PARAM} in
+       a) DOMUSER=${OPTARG}
+         fn_addpopuser
+          DONE=TRUE
+         ;;
+       c) DOMUSER=${OPTARG}
+         fn_setuserpass
+          DONE=TRUE
+         ;;
+       d) DOMUSER=${OPTARG}
+         fn_delpopuser
+          DONE=TRUE
+         ;;
+       l) fn_listpops
+          DONE=TRUE
+         ;;
+       n) PREFIX=""
+         POPUSER=${PREFIX}${DOMUID}.${DOMUSER}
+         ;;
+       ?) fn_usage
+   esac
+done
+shift $(($OPTIND -1))
+
+if [ -z "${DONE}" ]
+then
+   fn_usage
+fi
index 70c9cfb1dc1fb96efc311557b3bd8965a162a1c5..ada338012ff91f7e233e87503d0fd5991ecbbe1a 100644 (file)
@@ -7,7 +7,7 @@ and would be glad if it could be included in the exim documentation.
 
 --------------------------------------------------------------------------8<---
 \input texinfo                                               @c -*- texinfo -*-
 
 --------------------------------------------------------------------------8<---
 \input texinfo                                               @c -*- texinfo -*-
-@c $Id: C012,v 1.2 2000/01/09 21:33:19 nigel Exp $
+@c $Id: exim-uucp.texi,v 1.2 1998/10/24 19:35:37 david Rel $
 
 @c %** start of header
 @setfilename exim-uucp.info
 
 @c %** start of header
 @setfilename exim-uucp.info
index 80fbcc9e619edf9251938c78f72eaa6e4018eb80..646ead6786317915ae0718adfe0cb9dd878ebf09 100644 (file)
@@ -1,5 +1,6 @@
 From: Andromeda <andromeda@htmlworkshop.com> 
 From: Andromeda <andromeda@htmlworkshop.com> 
-Date: Sun, 15 Nov 1998 23:24:05 +0200   
+Date: Sun, 15 Nov 1998 23:24:05 +0200  (original)  
+Date: Wed, 14 Jul 1999 21:42:18 +0200  (small change)
 
 This approach to virtual domains has helped me a great deal, and is so easy
 to maintain (add and modify as appropriate):
 
 This approach to virtual domains has helped me a great deal, and is so easy
 to maintain (add and modify as appropriate):
@@ -39,7 +40,7 @@ virtual:
   driver = aliasfile
   no_more
   file = /usr/exim/aliases/$domain-aliases
   driver = aliasfile
   no_more
   file = /usr/exim/aliases/$domain-aliases
-  search_type = lsearch
+  search_type = lsearch*@
 
 Voila. Done. This requires the following files from you:
 
 
 Voila. Done. This requires the following files from you:
 
@@ -65,4 +66,13 @@ etc.
 easier for administration.
 
 This way it works just fine, and mail to non-existent aliases gets bounced.
 easier for administration.
 
 This way it works just fine, and mail to non-existent aliases gets bounced.
-You can check whether selecting *: allows you to do a catch-all.
+
+The "search_type = lsearch*@" line in the "virtual" director allows you to
+specify a default mailbox at the end of each domain file, as shown below
+for domain1.com-aliases:
+
+bob: bob@ibm.net
+adam: adam@otherdomain.com
+*: mike
+
+All other email sent to the domain gets sent to the local user "mike".
index ae3c182a82e5015ecc33e13fe10db218510bd888..a552ee834e7ada4d9025e53e901dd887d99f1363 100644 (file)
@@ -1,5 +1,6 @@
 From: Andromeda <andromeda@htmlworkshop.com>
 From: Andromeda <andromeda@htmlworkshop.com>
-Date: Sun, 15 Nov 1998 23:24:10 +0200
+Date: Sun, 15 Nov 1998 23:24:10 +0200 (original)
+Date: Wed, 14 Jul 1999 21:42:18 +0200 (small modification)
 
 Herewith my configuration:
 
 
 Herewith my configuration:
 
@@ -201,7 +202,7 @@ virtual:
   driver = aliasfile,
   no_more;
   file = /usr/exim/aliases/$domain-aliases,
   driver = aliasfile,
   no_more;
   file = /usr/exim/aliases/$domain-aliases,
-  search_type = lsearch
+  search_type = lsearch*@
 
 end
 
 
 end
 
index 17bb2c84f82a05fed38d210582aea33d0444dfcc..5ce2a00a8d587b9d618b793a8d6d106de032ba84 100644 (file)
@@ -1,9 +1,14 @@
-Date: Mon, 17 May 1999 22:34:10 -0700
+Date: Tue, 10 Apr 2001 16:01:16 -0700
 From: Thomas Robinson <roo@marsh.cts.com>
 
 This configuration removes a lot of the aliases, and automates a
 lot of the other functions based on whether the files /
 From: Thomas Robinson <roo@marsh.cts.com>
 
 This configuration removes a lot of the aliases, and automates a
 lot of the other functions based on whether the files /
-directories exist. Only three aliases per list are needed:
+directories exist. 
+
+The number 73 in the listresend director must be modified to match 
+the UID of Majordomo on the host system.
+
+Only three aliases per list are needed:
 
 <list>-approval
 <list>-owner
 
 <list>-approval
 <list>-owner
@@ -15,6 +20,8 @@ trusted_users = mail:majordomo
 
 end
 
 
 end
 
+
+
 ######################################################################
 #                      TRANPORTS CONFIGURATION                       #
 ######################################################################
 ######################################################################
 #                      TRANPORTS CONFIGURATION                       #
 ######################################################################
@@ -26,7 +33,9 @@ end
 majordomo:
   driver = pipe
   user = majordomo
 majordomo:
   driver = pipe
   user = majordomo
-  command = "/usr/local/mail/majordomo/wrapper majordomo -l ${local_part}"
+  command = "/usr/local/mail/majordomo/wrapper majordomo \
+    -C /usr/local/mail/${domain}/majordomo.cf \
+    -l ${local_part}"
   return_fail_output = true
 
 
   return_fail_output = true
 
 
@@ -35,7 +44,9 @@ majordomo:
 resend:
   driver = pipe
   user = majordomo
 resend:
   driver = pipe
   user = majordomo
-  command = "/usr/local/mail/majordomo/wrapper resend -l ${local_part} ${local_part}"
+  command = "/usr/local/mail/majordomo/wrapper resend \
+    -C /usr/local/mail/${domain}/majordomo.cf \
+    -l ${local_part} ${local_part}\@${domain}"
   return_fail_output = true
 
 
   return_fail_output = true
 
 
@@ -43,7 +54,9 @@ resend:
 digestify:
   driver = pipe
   user = majordomo
 digestify:
   driver = pipe
   user = majordomo
-  command = "/usr/local/mail/majordomo/wrapper digest -r -C -l ${local_part}-digest ${local_part}-digest"
+  command = "/usr/local/mail/majordomo/wrapper digest \
+    -c /usr/local/mail/${domain}/majordomo.cf \
+    -r -C -l ${local_part}-digest ${local_part}-digest\@${domain}"
   return_fail_output = true
 
 
   return_fail_output = true
 
 
@@ -51,7 +64,10 @@ digestify:
 archivate:
   driver = pipe
   user = majordomo
 archivate:
   driver = pipe
   user = majordomo
-  command = "/usr/local/mail/majordomo/wrapper archive2.pl -f /usr/local/mail/lists/${local_part}.archive/${local_part} -M -a"
+  command = "/usr/local/mail/majordomo/wrapper archive2.pl \
+    -C /usr/local/mail/${domain}/majordomo.cf \
+    -f /usr/local/mail/${domain}/lists/${local_part}.archive/${local_part} \
+    -M -a"
   return_fail_output = true
 
 end
   return_fail_output = true
 
 end
@@ -79,7 +95,7 @@ end
 listrequest:
   driver = smartuser
   suffix = -request
 listrequest:
   driver = smartuser
   suffix = -request
-  require_files = +/usr/local/mail/lists/${local_part}.config
+  require_files = +/usr/local/mail/${domain}/lists/${local_part}.config
   transport = majordomo
 
 
   transport = majordomo
 
 
@@ -91,18 +107,19 @@ listresend:
   driver = smartuser
   suffix = -digest
   suffix_optional = true
   driver = smartuser
   suffix = -digest
   suffix_optional = true
-  require_files = +/usr/local/mail/lists/${local_part}${local_part_suffix}.config
+  condition = ${if eq {${originator_uid}}{73} {no}{yes}}
+  require_files = +/usr/local/mail/${domain}/lists/${local_part}${local_part_suffix}.config
   transport = resend
   transport = resend
-  except_senders = owner-${local_part}@marsh.cts.com:majordomo:owner-${local_part}-digest@marsh.cts.com
 
 
 
 
-# This director handles creation of the archive files for a list.
+# This director handles processing of the archive files for a
+# list.
 
 archives:
   driver = smartuser
   suffix = -digest
   suffix_optional = true
 
 archives:
   driver = smartuser
   suffix = -digest
   suffix_optional = true
-  require_files = +/usr/local/mail/lists/${local_part}.archive:!+/usr/local/mail/lists/${local_part}-digest.config
+  require_files = +/usr/local/mail/${domain}/lists/${local_part}.archive:!+/usr/local/mail/${domain}/lists/${local_part}-digest.config
   transport = archivate
   unseen = true
 
   transport = archivate
   unseen = true
 
@@ -111,7 +128,7 @@ archives:
 
 digests:
   driver = smartuser
 
 digests:
   driver = smartuser
-  require_files = +/usr/local/mail/lists/${local_part}-digest.config
+  require_files = +/usr/local/mail/${domain}/lists/${local_part}-digest.config
   transport = digestify
   unseen = true
 
   transport = digestify
   unseen = true
 
@@ -120,8 +137,8 @@ digests:
 
 listout:
   driver = forwardfile
 
 listout:
   driver = forwardfile
-  require_files = +/usr/local/mail/lists/${local_part}.config
-  file = /usr/local/mail/lists/${local_part}
+  require_files = +/usr/local/mail/${domain}/lists/${local_part}.config
+  file = /usr/local/mail/${domain}/lists/${local_part}
   modemask = 2
   user = majordomo
   no_check_local_user
   modemask = 2
   user = majordomo
   no_check_local_user
@@ -129,7 +146,6 @@ listout:
   forbid_file
   one_time
   skip_syntax_errors
   forbid_file
   one_time
   skip_syntax_errors
-  errors_to = owner-${local_part}
 
 
 # This director handles aliasing using a traditional /etc/aliases
 
 
 # This director handles aliasing using a traditional /etc/aliases
@@ -141,8 +157,11 @@ listout:
 
 system_aliases:
   driver = aliasfile
 
 system_aliases:
   driver = aliasfile
-  file = /etc/aliases
+  file = /etc/mail/aliases/${domain}
   search_type = lsearch
   user = mail
   search_type = lsearch
   user = mail
+  pipe_transport = address_pipe
+
 
 # The rest of the file goes here . . .
 
 # The rest of the file goes here . . .
+
index fefac980cab1c1c51f788a0285bb4ec5031a63a8..18f606453e54b117bae0cf196386bf450a30f47a 100644 (file)
Binary files a/config.samples/C022 and b/config.samples/C022 differ
index d6d80cc2e07346ef387e019613d60edd13fe2ca4..534c97e71199a03afddf24ebe178dc112a17dcda 100644 (file)
Binary files a/config.samples/C022.tar and b/config.samples/C022.tar differ
index 4115635a68aab19a5a8aa672cf36fa1af33d4f57..1cf958fe6959ef5cb7aa124931631530cfde8c8b 100644 (file)
Binary files a/config.samples/C032.tar and b/config.samples/C032.tar differ
index d50cc9a0dbccee8ef31360961afdca5c35ba35b8..525e82bfbbcf3fc2167019bfecb7c231d905b56e 100644 (file)
Binary files a/config.samples/C033 and b/config.samples/C033 differ
diff --git a/config.samples/C035 b/config.samples/C035
new file mode 100644 (file)
index 0000000..67762aa
--- /dev/null
@@ -0,0 +1,57 @@
+Date: Tue, 8 Feb 2000 11:19:35 -0200
+From: Joao Alves <cpd@cosco.com.br>
+
+These configurations enable exim and hylafax (www.hylafax.org)  work
+together, i mean sending fax by email (user@123456.fax).
+
+Obs: There is a problem faxmail does not  support email in html format. If
+someone solved this problem, pls tell me.
+
+a cortesy
+            Joao Alves/ Cosco Brazil
+
+-------------------------------------------
+
+
+exim.conf
+
+
+######################################################################
+#                      TRANSPORTS CONFIGURATION                      #
+######################################################################
+#                       ORDER DOES NOT MATTER                        #
+#     Only one appropriate transport is called for each delivery.    #
+######################################################################
+
+# A transport is used only when referenced from a director or a router that
+# successfully handles an address.
+
+# Estas configuracoes sao para habilitar a envio de fax por email
+fax:
+  driver = pipe
+  user = cpd
+  command ="/usr/bin/faxmail -d ${local_part}@${extract{1}{.}{$domain}}"
+  home_directory = /usr/bin
+
+######################################################################
+#                      ROUTERS CONFIGURATION                         #
+#            Specifies how remote addresses are handled              #
+######################################################################
+#                          ORDER DOES MATTER                         #
+#  A remote address is passed to each in turn until it is accepted.  #
+######################################################################
+
+# Estas configuracoes sao para habilitar o envia de fax por email
+fax:
+   driver = domainlist
+   transport = fax
+   route_list ="*.fax"
+
+# End of Exim configuration file
+
+
+
+
+--
+## List details at http://www.exim.org/mailman/listinfo/exim-users Exim details at http://www.exim.org/ ##
+
diff --git a/config.samples/C036 b/config.samples/C036
new file mode 100644 (file)
index 0000000..d386671
--- /dev/null
@@ -0,0 +1,126 @@
+Date: 25 Jul 2000 13:30:24 +0200
+From: Oliver Seidel <seidel@in-medias-res.com>
+
+Hello Everybody,
+
+my aim was to have an LDAP-driven system for mail delivery.  My
+configuration uses an LDAP directory structure that operates as
+follows (sensitive parts replaced by "xxx"):
+
+dn: dc=in medias res,dc=com
+dc: in medias res
+objectclass: top
+objectclass: domain
+
+dn: ou=People,dc=in medias res,dc=com
+ou: People
+objectclass: top
+objectclass: organizationalUnit
+
+dn: uid=seidel,ou=People,dc=in medias res,dc=com
+telephonenumber: 02166 9999 xxx
+mobile: (none)
+mailalias: Oliver.Seidel
+mailalias: os10000
+mailalias: oslist
+objectclass: addressbook
+objectclass: account
+objectclass: shadowaccount
+objectclass: posixAccount
+objectclass: top
+mailbox: /var/spool/mail/seidel
+mail: os10000@in-medias-res.com
+uid: seidel
+cn: Oliver Seidel
+sn: Seidel
+givenname: Oliver
+loginshell: /bin/bash
+uidnumber: xxx
+gidnumber: xxx
+homedirectory: /home/seidel
+gecos: Oliver Seidel
+userpassword: {crypt}xxx
+
+This allows the use of the "MS Outlook" address book feature and
+allows the delivery of email to local mailboxes, with ".forward"
+processing.
+
+My Exim Makefile in "$(EXIM)/Local/Makefile" differs from the original
+in "$(EXIM)/src/EDITME" as follows:
+
+---------------------------------------------------------------------------
+< # AUTH_CRAM_MD5=yes
+---
+> AUTH_CRAM_MD5=yes
+339c339
+< # LOOKUP_LDAP=yes
+---
+> LOOKUP_LDAP=yes
+352a353,355
+> LOOKUP_INCLUDE= -I/tmp/openldap/include
+> LOOKUP_LIBS= -L/tmp/openldap/lib -lldap -llber
+> 
+360c363
+< # LDAP_LIB_TYPE=UMICHIGAN
+---
+> LDAP_LIB_TYPE=UMICHIGAN
+458c461
+< # SPOOL_DIRECTORY=/var/spool/exim
+---
+> SPOOL_DIRECTORY=/var/spool/exim
+---------------------------------------------------------------------------
+
+Finally, after building and installing exim, I use a "directors
+section" in the file "/usr/exim/configure" that contains the following
+entries:
+
+---------------------------------------------------------------------------
+ldap_aliases:
+  driver = aliasfile
+  search_type = ldap
+  query = "ldap://192.168.2.89:389/ou=People,dc=in%20medias%20res,dc=com?uid?one?(mailAlias=${local_part})"
+  new_director = ldap_forward
+
+ldap_forward:
+  driver = forwardfile
+  file = .forward
+  no_verify
+  no_expn
+  check_ancestor
+  filter = true
+  user = ${lookup ldap{ldap://192.168.2.89:389/uid=${local_part},ou=People,dc=in%20medias%20res,dc=com?uidnumber?base?}{$value}fail}
+  group = users
+  file_transport = address_file
+  pipe_transport = address_pipe
+  reply_transport = address_reply
+
+ldap_uids:
+  driver = aliasfile
+  search_type = ldap
+  query = "ldap://192.168.2.89:389/uid=${local_part},ou=People,dc=in%20medias%20res,dc=com?mailbox?base?"
+  user = ${lookup ldap{ldap://192.168.2.89:389/uid=${local_part},ou=People,dc=in%20medias%20res,dc=com?uidnumber?base?}{$value}fail}
+  group = users
+  file_transport = address_file
+  pipe_transport = address_pipe
+
+just_eat_it:
+  driver = smartuser
+  new_address = maildump@in-medias-res.com
+---------------------------------------------------------------------------
+
+The "ldap_aliases" director checks for entries of the form
+"mailalias".  This ensures that the names "os10000", "oslist" and
+"Oliver.Seidel" from the above example are recognised.  The difference
+between this director and the others lies in the fact that it looks up
+the entry "uid" (as can be seen between the "com?" and "?one".
+
+The director "ldap_forward" performs the processing of "~/.forward"
+files.  It needs to look up the UNIX uid number.
+
+The next entry handles direct delivery to the mailbox, and
+
+the last director handles unknown addresses.
+
+I hope I was of assistance and thanks to Philip for his software!
+
+Oliver Seidel
diff --git a/config.samples/C037 b/config.samples/C037
new file mode 100644 (file)
index 0000000..db98586
--- /dev/null
@@ -0,0 +1,126 @@
+Date: Wed, 22 Nov 2000 17:51:42 -0500 (EST)
+From: Dave C. <djc@microwave.com>
+
+Ok.. Ive come up with something which might be worth including in the
+cookbook. Credit where it is due, the idea for this came from Nigel's
+C014..
+
+I have a setup to support ETRN for a few small (ok, two) domains.
+Currently it just leaves all the mail in the exim spool, and uses the
+default exim etrn response to flush it out.
+
+I don't like that - I agree with the opinion expressed on the list that
+mail should be delivered somewhere else, and then shoved down an SMTP
+session by some other program. Ive searched far and wide for something
+suitable to do that shoving, and finally hit upon the only program I
+trust to do that, handling errors and rejections correctly - exim
+itself.
+
+Nigel's solution for 'situation where a site I MX for has a known
+outage', combined with a bit of bash scriptery, seems to form a neat
+solution. (An intermittently connected host sort of falls under the
+'known outage' category ;)
+
+Without any further fluff, here are the details. Additional comments
+appear below..
+
+Either the real (intermittently connected) destination host needs to be
+listed as the lowest MX (with the exim server as a less preferred) , or
+the exim server needs to be the lowest MX, but have a router before the
+lookuphost router which uses route_list or something appropriate to
+normally deliver mail to the dialup host. The former is probably better
+for a host which is usually connected and is only occasionally
+disconnected (since other hosts would be able to delivery directly most
+of the time, skipping an extra relay), while the latter would probably
+work better for the converse ;) This paragraph actually applies anytime
+you are using ETRN..
+
+In either case, the routers below must precede whatever router handles
+the normal direct-to-dialup-destination..
+
+--
+
+smtp_etrn_command = /etc/exim/etrn_script $domain
+
+[- Content of /etc/exim/etrn_script: -]
+#!/bin/sh
+# Where exim lives
+EXIM=/usr/sbin/exim
+# Something appropriate to generate a temporary unique string 
+UNIQ=`head -c100 /dev/urandom | md5sum | cut -f 1 -d" "`
+
+arg=$1
+domain=`echo $arg | sed 's/^\#//g'`
+if ( test -f /var/spool/etrn/${domain} ); then
+ exim_lock -q /var/spool/etrn/${domain} "mv /var/spool/etrn/${domain} /tmp/etrn-bsmtp-${UNIQ}"
+ ( cat /tmp/etrn-bsmtp-${UNIQ}
+   echo "QUIT" ) | $EXIM -bS -oMr etrn_requeue
+ rm -f /tmp/etrn-bsmtp-${UNIQ}
+fi
+$EXIM -R $domain
+
+# If you use smtp_etrn_serialize, the following ensures that the
+# serialize hint is removed for the argument exactly as specified by
+# the client (which might have an # prepended if they are issuing an
+# ETRN argument as required by exim's default ETRN support
+
+$EXIM -R $arg
+
+[- end of etrn_script -]
+
+[- exim transport -]
+
+bsmtp_for_etrn:
+ driver=appendfile
+ file=/var/spool/etrn/${domain}
+ user=exim
+ bsmtp=domain
+ check_string = "."
+ escape_string = ".."
+ prefix = ""
+ suffix = ""
+
+[- routers -]
+[- You probably would want to put the domains in a file or a dbm and
+[- adjused the 'domains' setting appropriately for both of these..
+
+# If any message has already been delivered to the bsmtp file,
+# this will detect the existence of the file and all messages will
+# go there, regardless of age..
+etrn_already:
+ driver = domainlist
+ transport = bsmtp_for_etrn
+ require_files = /var/spool/etrn/${domain}
+ domains = etrntest.somedomain.com
+ route_list = *
+# If a message has been on the queue for over the specified amount of
+# time, this will catch it and drop it into the bsmtp file
+etrn_delay:
+ driver = domainlist
+ transport = bsmtp_for_etrn
+ condition = "${if >{$message_age}{1800} {yes}{no}}"
+ domains = etrntest.somedomain.com
+ route_list = *
+
+[- -]
+
+Basically, this setup lets exim try to deliver to the real host for up
+to whatever time is specified in the etrn_delay router. (1800 seconds =
+30 minutes), and then delivers all waiting messages, and any further
+messages, directly to a bsmtp file.. This setup uses one big BSMTP
+file, it probably wouldnt be too complex to have it use seperate
+files..
+
+When the etrn_script runs, it locks and renames the bsmtp file, and
+reinjects the messages to exim, which (presumably) will now be able to
+deliver them. If it can't, then once they are too old they will again
+be sent off to the bsmtp file.. (If for som reason this occurs over and
+over without exim being able to deliver them, eventually the messages
+will be returned with "too many Received headers"; this is a good
+thing, since their age will never get high enough for them to be
+returned by any retry rules)
diff --git a/config.samples/C038 b/config.samples/C038
new file mode 100644 (file)
index 0000000..99880b6
--- /dev/null
@@ -0,0 +1,134 @@
+From: "Brian K. West" <brian@bkw.org>
+Date: Wed, 6 Sep 2000 11:18:19 -0500
+Subject: Amavis virus relaying
+
+
+Here ya go.  This is the config we use.. this box is our main MX host then
+relays it to our real server for delivery...
+
+
+
+######################################################################
+# Exim Anti-Virus Relay Server Setup      #
+# Config by Brian West <brian@bkw.org>      #
+# IP FOR BOX 208.165.104.37      #
+#                    MAIN CONFIGURATION SETTINGS                     #
+######################################################################
+
+queue_only_load = 5
+primary_hostname = av.cwis.net
+trusted_users = amavis:nobody
+local_domains =
+auto_thaw = 60s
+forbid_domain_literals
+never_users = root
+host_accept_relay = localhost
+#ignore_errmsg_errors_after = 3h
+ignore_errmsg_errors
+# this is the list of relay domains
+relay_domains = cwis.net
+host_lookup = 0.0.0.0/0
+rbl_domains = rbl.maps.vix.com:dul.maps.vix.com:relays.mail-abuse.org
+rbl_warn_header = true
+rbl_reject_recipients = true
+smtp_banner = "av.cwis.net ESMTP"
+sender_verify
+sender_verify_fixup
+#headers_sender_verify
+end
+
+######################################################################
+#                      TRANSPORTS CONFIGURATION                      #
+######################################################################
+#                       ORDER DOES NOT MATTER                        #
+#     Only one appropriate transport is called for each delivery.    #
+######################################################################
+
+address_pipe:
+  driver = pipe
+  return_output
+
+# This transport is used for handling deliveries directly to files that are
+# generated by aliassing or forwarding.
+
+address_file:
+  driver = appendfile
+  delivery_date_add
+  envelope_to_add
+  return_path_add
+
+scanmails_remote:
+  driver = pipe
+  bsmtp = all
+  batch_max = 32767
+  command = "/usr/sbin/scanmails -f ${sender_address} -d
+${local_part}@${domain}"
+  log_output = true
+  prefix =
+  return_output = false
+  return_path_add = false
+  user = amavis
+  group = amavis
+  path = "/bin:/sbin:/usr/bin:/usr/sbin"
+  headers_add = "X-AntiVirus: Amavis/CWIS Internet Anti-Virus Server"
+
+remote_smtp:
+  driver = smtp
+#  fallback_hosts = mail1.cwis.net
+# I have not seen this work. so its commented out.
+end
+
+######################################################################
+#                      DIRECTORS CONFIGURATION                       #
+#             Specifies how local addresses are handled              #
+######################################################################
+#                          ORDER DOES MATTER                         #
+#   A local address is passed to each in turn until it is accepted.  #
+######################################################################
+
+# Well we will not have any local mailboxes so this is not needed.
+
+end
+
+######################################################################
+#                      ROUTERS CONFIGURATION                         #
+#            Specifies how remote addresses are handled              #
+######################################################################
+#                          ORDER DOES MATTER                         #
+#  A remote address is passed to each in turn until it is accepted.  #
+######################################################################
+
+vircheck:
+  condition = "${if eq {$received_protocol}{scanned-ok} {0}{1}}"
+  driver = domainlist
+  route_list = "*"
+  transport = scanmails_remote
+
+# this is where we tell it what domain to direct and
+# where to direct it too.
+send_to_gateway:
+           driver = domainlist
+           transport = remote_smtp
+           route_list = "cwis.net mail1.cwis.net byname"
+
+lookuphost:
+  driver = lookuphost
+  transport = remote_smtp
+
+end
+
+######################################################################
+#                      RETRY CONFIGURATION                           #
+######################################################################
+
+*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,8h
+
+end
+
+######################################################################
+#                      REWRITE CONFIGURATION                         #
+######################################################################
+
+# There are no rewriting specifications in this configuration file.
+
+end
diff --git a/config.samples/C039 b/config.samples/C039
new file mode 100644 (file)
index 0000000..6fe8576
--- /dev/null
@@ -0,0 +1,49 @@
+Date: Thu, 14 Sep 2000 14:49:18 +0100
+From: Christi Alice Scarborough <christi.scarborough@futuretv.com>
+
+Thanks very much to everyone who helped out with this - I now have a
+working system.  For reference, this is how I got PAM authentication from a
+standard UNIX password database with Eudora 4.3 clients to work on a Debian 2.2
+(Intel) system. This configuration assumes that you are using standard UNIX
+crypt passwords; pam-pwdfile is NOT compatible with MD5 encrypted passwords.
+
+1) Installed the following packages from the Debian unstable tree
+exim_3.16-3.deb  eximon_3.16-3.deb  libpcre3_3.3-2.deb
+
+2) Installed the following stable package
+libpam-pwdfile_0.1-1.deb
+
+3) Added the following authentication section to exim.conf
+
+login:
+   driver = plaintext
+   public_name = LOGIN
+   server_condition = "${if pam{$1:$2}{1}{0}}"
+   server_prompts = "Username:: : Password::"
+   server_set_id = $1
+
+4) Added the following line to the first Exim configuration section
+
+host_auth_accept_relay = * 
+
+5) Created /etc/pam.d/exim with contents as follows
+
+auth     required       pam_pwdfile.so pwdfile /etc/exim.passwd 
+account  required       pam_pwdb.so 
+
+6) Run the following script from crontab to keep the exim password
+file synchronised with our shadow password file.  (Logins to this 
+machine are firewalled off.  If you want to allow local logins, 
+you might want to use a completely seperate password file for 
+security reasons.)
+
+#!/bin/sh
+# 
+# This script copies the shadow password file to exim.passwd and sets
+# permissions so that exim can read it for pam-pwdfile authentication
+
+cp /etc/shadow /etc/exim.passwd.temp
+chmod 600 /etc/exim.passwd.temp
+chown mail:mail /etc/exim.passwd.temp
+mv /etc/exim.passwd.temp /etc/exim.passwd
+
diff --git a/config.samples/C040 b/config.samples/C040
new file mode 100644 (file)
index 0000000..235564f
--- /dev/null
@@ -0,0 +1,43 @@
+From: mark david mcCreary <mdm@internet-tools.com>
+Date: Tue, 5 Dec 2000 09:25:20 -0600
+
+Exim 3.20 has a feature that allows a large mailing of a single message to
+be sent to many different relays.  This is useful for mailing lists, as it
+allows the message to be relayed to multiple machines, in groups of 100
+addresses, for final delivery.
+
+The router lists a host, but it does not really use that host.  Instead the
+list of host machines in the transport are used in a random order, thus
+getting a reasonable coverage and compensating for delivery machines and
+networks that are down.
+
+######################################################################
+#                      TRANPORTS CONFIGURATION                       #
+######################################################################
+
+one_hundred_smtp:
+  driver = smtp
+  gethostbyname
+  hosts = a.domain.com:\
+          b.domain.com:\
+          c.domain.com:\
+          d.domain.com
+  hosts_override
+  hosts_randomize
+  max_rcpt = 100
+
+######################################################################
+#                      ROUTERS CONFIGURATION                         #
+######################################################################
+
+disperse_mail:
+    driver = domainlist
+    transport = one_hundred_smtp
+    self = fail_soft
+    host_find_failed = fail_soft
+    route_list = "* a.domain.com bydns_a"
+
+mark david mcCreary
+Internet Tools, Inc.            1302 Waugh Drive, #438
+mdm@internet-tools.com          Houston, Texas 77019
+http://www.internet-tools.com   713.627.9600
diff --git a/config.samples/C041 b/config.samples/C041
new file mode 100644 (file)
index 0000000..277f783
--- /dev/null
@@ -0,0 +1,162 @@
+Date: Mon, 19 Mar 2001 17:33:11 +0300
+From: "Alexei V. Alexandrov" <ava@elcomsoft.com>
+
+  Attaced  you  will  find a plain text file where i explain how to
+  setup  mailman  to use virtual environment (single setup for many
+  domains). I think this will help exim users.
+
+  If you have any questions, don not hesitate to contact me.
+
+
+Using Mailman in virtual environment.
+
+Download mailman and install it in a directory you prefer. (Note: compile mailman
+to use the GID that your virtual accounts use. mine is "virtual").
+Let`s presume that all virtual servers have an account in group named "virtual".
+Setup exim to use mailman in the following way:
+
+MAILMAN_HOME  = /virtual/usr/mailman
+MAILMAN_WRAP  = MAILMAN_HOME/mail/wrapper
+MAILMAN_UID   = exim
+MAILMAN_GID   = virtual
+
+######################################################################
+#                      TRANSPORTS CONFIGURATION                      #
+######################################################################
+
+mailman:
+        driver = pipe
+        command = MAILMAN_WRAP post ${lc:$local_part}
+        current_directory = MAILMAN_HOME
+        home_directory = MAILMAN_HOME
+        user = MAILMAN_UID
+        group = MAILMAN_GID
+
+mailman_request:
+        driver = pipe
+        command = MAILMAN_WRAP mailcmd ${lc:$local_part}
+        current_directory = MAILMAN_HOME
+        home_directory = MAILMAN_HOME
+        user = MAILMAN_UID
+        group = MAILMAN_GID
+
+mailman_admin:
+        driver = pipe
+        command = MAILMAN_WRAP mailowner ${lc:$local_part}
+        current_directory = MAILMAN_HOME
+        home_directory = MAILMAN_HOME
+        user = MAILMAN_UID
+        group = MAILMAN_GID
+
+######################################################################
+#                      DIRECTORS CONFIGURATION                       #
+#             Specifies how local addresses are handled              #
+######################################################################
+
+# Note: these directors should go after forward file driver
+#       and before smart user driver (if you use "catchall" for your
+#       virtual domains)
+
+virtual_list_owner:
+        driver = smartuser
+        require_files = MAILMAN_HOME/${lc:$domain}/lists/${lc:$local_part}/config.db
+        suffix = "-owner"
+        new_address = "${lc:$local_part}-admin@${domain}"
+
+virtual_owner_list:
+        driver = smartuser
+        require_files = MAILMAN_HOME/${lc:$domain}/lists/${lc:$local_part}/config.db
+        prefix = "owner-"
+        new_address = "${lc:$local_part}-admin@${domain}"
+
+virtual_list_admin:
+        driver = smartuser
+        suffix = -admin
+        require_files = MAILMAN_HOME/${lc:$domain}/lists/${lc:$local_part}/config.db
+        transport = mailman_admin
+
+virtual_list_request:
+        driver = smartuser
+        suffix = -request
+        require_files = MAILMAN_HOME/${lc:$domain}/lists/${lc:$local_part}/config.db
+        transport = mailman_request
+
+virtual_list:
+        driver = smartuser
+        require_files = MAILMAN_HOME/${lc:$domain}/lists/${lc:$local_part}/config.db
+        transport = mailman
+
+# The trick is that we create in MAILMAN_HOME directories named like domains that we
+# recieve mail for. The sufficient directory structure is the following:
+# MAILMAN_HOME
+# |__/data/
+# |__/lists/
+# |__/logs/
+# |__/qfiles/
+# |__/locks/
+
+We have succesfully setup exim to use mailman listmanager. Next we will have to tweak
+mailman to suite our virtual setup. What we do. Mailman has its default configuration
+stored in MAILMAN_HOME/Mailman/Defaults.py this file is imported by mm_cfg.py and is
+used by all other modules. We will twak it to use defaults.py for different domains.
+Here is how i did it:
+
+MAILMAN_HOME/Mailman/mm_cfg.py:
+
+import os
+import string
+
+def loadDefaults ( name ):
+        definition = ""
+        module = '/vhost/usr/mailman/' + name + '/Defaults.py'
+        hFile = open ( module, "r" )
+        for line in hFile.readlines():
+                definition = definition + line
+        definition = definition + "\n"
+        exec definition in globals()
+
+if os.environ.get('HTTP_HOST') :
+        junk, domain = tuple(string.split(os.environ['HTTP_HOST'], '.', 1))
+        loadDefaults(domain)
+elif os.environ.get('DOMAIN') :
+        loadDefaults(os.environ['DOMAIN'])
+else:
+        loadDefaults('Mailman')
+
+# from Defaults import *
+
+The Defaults.py is stored in the directory: MAILMAN_HOME/domain.com/Defaults.py
+and is not different from the original one. The lines you should modify are:
+
+DEFAULT_HOST_NAME   = 'domain.com'
+DEFAULT_URL         = 'http://mail.%s/' % DEFAULT_HOST_NAME
+
+LIST_DATA_DIR   = os.path.join(VAR_PREFIX, DEFAULT_HOST_NAME + '/lists')
+LOG_DIR         = os.path.join(VAR_PREFIX, DEFAULT_HOST_NAME + '/logs')
+LOCK_DIR        = os.path.join(VAR_PREFIX, DEFAULT_HOST_NAME + '/locks')
+DATA_DIR        = os.path.join(VAR_PREFIX, DEFAULT_HOST_NAME + '/data')
+QUEUE_DIR       = os.path.join(VAR_PREFIX, DEFAULT_HOST_NAME + '/qfiles')
+
+We use two environment variables on is HTTP_HOST (to be able to use mailman
+managment interface for different domains). Other one is DOMAIN (this variable
+is set by exim). Another thing is is to be able to run the man mailman script
+called qrunner. As users have there accounts in the system, they are able to use cron.
+Create a crontab file in the user`s directory with the following contents:
+
+DOMAIN=domain.com
+
+* * * * * /virtual/bin/python -S /virtual/usr/mailman/cron/qrunner
+
+This will set the DOMAIN variable so the qrunner will use the right settings.
+
+If you want to create a new list. first set the environment variable DOMAIN to the
+desired domain and run the command MAILMAN_HOME/bin/newlist
+
+About the managment interface everything is simple. Run the apache server and bind
+it to a specific address (for ex.: 192.168.10.10). Create for each domain DNS record
+listserv       IN      A       192.168.10.10
+When the user will point his browser to http://listserv.domain.com/ he will see a list
+of available mailing lists or he will get an error message indicating that the default settings
+for this domain are not available.
+
+That`s it. This setup works for me and it handles over 50 domains.
index 4f56627dbec6b2d4ecc75054941bc0d4504818f2..79fd23cd84b60810eb95faf89556dd12f43f6fb8 100644 (file)
@@ -5,7 +5,7 @@ The files in this directory have been contributed by Exim users. I have not
 tested them in any way. If you want to ask questions about how they work, 
 please approach the original contributor, not me!
 
 tested them in any way. If you want to ask questions about how they work, 
 please approach the original contributor, not me!
 
-Files in the series C001, C002, ... are exim configuration samples. Those in 
-the series F001, F002, ... are filter file samples.
+Files in the series C001, C002, ... are exim configuration samples and 
+associated files. Those in the series F001, F002, ... are filter file samples.
 
 Philip Hazel
 
 Philip Hazel
diff --git a/filter/process_re2filtermatch.pl b/filter/process_re2filtermatch.pl
new file mode 100644 (file)
index 0000000..c826702
--- /dev/null
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+#
+use strict;
+
+my $re;
+while(<>) {
+    chomp();
+    # dispose of comments with their leading spaces
+    s/\s+\#.*$//;
+    # recode \" -> "
+    s/\\\"/\"/g;
+    # double all \ (twice)
+    s/\\/\\\\/g;
+    s/\\/\\\\/g;
+    # escape " again
+    s/\"/\\\"/g;
+    # remove all space
+    s/\s+//g;
+    # add to re
+    $re .= $_;
+}
+print "\"$re\"\n";
diff --git a/filter/system_filter.exim b/filter/system_filter.exim
new file mode 100644 (file)
index 0000000..abbd023
--- /dev/null
@@ -0,0 +1,177 @@
+# Exim filter
+## Version: 0.10
+
+## If you haven't worked with exim filters before, read
+## the install notes at the end of this file.
+
+#
+# Only run any of this stuff on the first pass through the
+# filter - this is an optomisation for messages that get
+# queued and have several delivery attempts
+#
+# we express this in reverse so we can just bail out
+# on inappropriate messages
+#
+if not first_delivery
+then
+  finish
+endif
+
+# Check for MS buffer overruns as per latest BUGTRAQ.
+# http://www.securityfocus.com/frames/?content=/templates/article.html%3Fid%3D61
+# This could happen in error messages, hence its placing
+# here...
+# We substract the first n characters of the date header
+# and test if its the same as the date header... which
+# is a lousy way of checking if the date is longer than
+# n chars long
+if ${length_80:$header_date:} is not $header_date:
+then
+  fail text "This message has been rejected because it has\n\
+            \tan overlength date field which can be used\n\
+            \tto subvert Microsoft mail programs\n\
+             \tThe following URL has further information\n\
+            \thttp://www.securityfocus.com/frames/?content=/templates/article.html%3Fid%3D61"
+  seen finish
+endif
+
+# This is a nasty compromise.
+# This crud is now being sent with a <> envelope sender, but
+# blocking all error messages that pattern match prevents
+# bounces getting back.... so we fudge it somewhat
+if $header_from: contains "@sexyfun.net"
+then
+  fail text "This message has been rejected since it has\n\
+               \tthe signature of a known virus in the header."
+  seen finish
+endif
+if error_message and $header_from: contains "Mailer-Daemon@"
+then
+  # looks like a real error message - just ignore it
+  finish
+endif
+
+# Look for single part MIME messages with suspicious name extensions
+# Check Content-Type header [vb2_regexp]
+if $header_content-type: matches "(?:file)?name=(\"[^\"]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif)\"|[\\\\w.-]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif))"
+then
+  fail text "This message has been rejected because it has\n\
+            \ta potentially executable attachment $1\n\
+            \tThis form of attachment has been used by\n\
+             \trecent viruses such as that described in\n\
+            \thttp://www.fsecure.com/v-descs/love.htm\n\
+            \tIf you meant to send this file then please\n\
+            \tpackage it up as a zip file and resend it."
+  seen finish
+endif
+
+# Attempt to catch embedded VBS attachments
+# in emails.   These were used as the basis for 
+# the ILOVEYOU virus and its variants
+# [vb_regexp]
+if $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\"[^\"]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif)\"|[\\\\w.-]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif))[\\\\s;]"
+then
+  fail text "This message has been rejected because it has\n\
+            \ta potentially executable attachment $1\n\
+            \tThis form of attachment has been used by\n\
+             \trecent viruses such as that described in\n\
+            \thttp://www.fsecure.com/v-descs/love.htm\n\
+            \tIf you meant to send this file then please\n\
+            \tpackage it up as a zip file and resend it."
+  seen finish
+endif
+
+#### Version history
+#
+# 0.01 5 May 2000
+#      Initial release
+# 0.02 8 May 2000
+#      Widened list of content-types accepted, added WSF extension
+# 0.03 8 May 2000
+#      Embedded the install notes in for those that don't do manuals
+# 0.04 9 May 2000
+#      Check global content-type header.  Efficiency mods to REs
+# 0.05 9 May 2000
+#      More minor efficiency mods, doc changes
+# 0.06 20 June 2000
+#      Added extension handling - thx to Douglas Gray Stephens & Jeff Carnahan
+# 0.07 19 July 2000
+#      Latest MS Outhouse bug catching
+# 0.08 19 July 2000
+#      Changed trigger length to 80 chars, fixed some spelling
+# 0.09 29 September 2000
+#      More extensions... its getting so we should just allow 2 or 3 through
+# 0.10 18 January 2001
+#      Removed exclusion for error messages - this is a little nasty
+#      since it has other side effects, hence we do still exclude
+#      on unix like error messages
+#
+#### Install Notes
+#
+# Exim filters run the exim filter language - a very primitive
+# scripting language - in place of a user .forward file, or on
+# a per system basis (on all messages passing through).
+# The filtering capability is documented in the main set of manuals
+# a copy of which can be found on the exim web site
+#      http://www.exim.org/
+#
+# To install, copy the filter file (with appropriate permissions)
+# to /etc/exim/system_filter.exim and add to your exim config file
+# [location is installation depedant - typicaly /etc/exim/config ]
+# at the top the line:-
+#      message_filter = /etc/exim/system_filter.exim
+#      message_body_visible = 5000
+#
+# Any message that matches the filter will then be bounced.
+# If you wish you can change the error message by editing it
+# in the section above - however be careful you don't break it.
+#
+# After install exim should be restarted - a kill -HUP to the
+# daemon will do this.
+#
+#### LIMITATIONS
+#
+# This filter tries to parse MIME with a regexp... that doesn't
+# work too well.  It will also only see the amount of the body
+# specified in message_body_visible
+#
+#### BASIS
+#
+# The regexp that is used to pickup MIME/uuencoded parts is replicated
+# below (in perl format).  You need to remember that exim converts
+# newlines to spaces in the message_body variable.
+#
+#  (?:Content-                                 # start of content header
+#  (?:Type: (?>\s*)                            # rest of c/t header
+#    [\w-]+/[\w-]+                             # content-type (any)
+#    |Disposition: (?>\s*)                     # content-disposition hdr
+#    attachment)                                       # content-disposition
+#  ;(?>\s*)                                    # ; space or newline
+#  (?:file)?name=                              # filename=/name= 
+#  |begin (?>\s+) [0-7]{3,4} (?>\s+))          # begin octal-mode
+#  (\"[^\"]+\.                                 # quoted filename.
+#      (?:vb[se]                               # list of extns
+#      |ws[fh]
+#      |jse?
+#      |exe
+#      |com
+#      |shs
+#      |bat
+#      |scr
+#      |pif)
+#      \"                                      # end quote
+#  |[\w.-]+\.                                  # unquoted filename.ext
+#      (?:vb[se]                               # list of extns
+#      |ws[fh]
+#      |jse?
+#      |exe
+#      |com
+#      |shs
+#      |bat
+#      |scr
+#      |pif)
+#  )                                           # end of filename capture
+#  [\s;]                                       # trailing ;/space/newline
+#
+#
+### [End]
diff --git a/filter/test_regexp.pl b/filter/test_regexp.pl
new file mode 100644 (file)
index 0000000..b16d9fa
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+#
+# Test a regexp against a file (message)
+#
+use strict;
+use FileHandle;
+use Carp;
+
+my $refile = shift;
+my $infile = shift;
+
+my $rfh = FileHandle->new($refile, 'r')|| croak;
+my @relines = <$rfh>;
+grep(s/\s*\#.*$//, @relines);
+chomp(@relines);
+my $repat = join('', @relines);
+my $re = qr{$repat}ix;
+
+my $infh = FileHandle->new($infile, 'r')|| croak;
+my $in = join('', <$infh>);
+$in =~ tr/\r\n/ /;
+
+print "no " unless ($in =~ /$re/);
+print "match\n";
diff --git a/filter/vb2_regexp b/filter/vb2_regexp
new file mode 100644 (file)
index 0000000..24be5a7
--- /dev/null
@@ -0,0 +1,21 @@
+  (?:file)?name=                               # filename=/name= 
+  (\"[^\"]+\.                                  # quoted filename.
+       (?:vb[se]                               # list of extns
+       |ws[fh]
+       |jse?
+       |exe
+       |com
+       |shs
+       |hta
+       |bat)
+       \"                                      # end quote
+  |[\w.-]+\.                                   # unquoted filename.ext
+       (?:vb[se]                               # list of extns
+       |ws[fh]
+       |jse?
+       |exe
+       |com
+       |shs
+       |hta
+       |bat)
+  )                                            # end of filename capture
diff --git a/filter/vb_regexp b/filter/vb_regexp
new file mode 100644 (file)
index 0000000..d7d3609
--- /dev/null
@@ -0,0 +1,33 @@
+  (?:Content-                                  # start of content header
+  (?:Type: (?>\s*)                             # rest of c/t header
+    [\w-]+/[\w-]+                              # content-type (any)
+    |Disposition: (?>\s*)                      # content-disposition hdr
+    attachment)                                        # content-disposition
+  ;(?>\s*)                                     # ; space or newline
+  (?:file)?name=                               # filename=/name= 
+  |begin (?>\s+) [0-7]{3,4} (?>\s+))           # begin octal-mode
+  (\"[^\"]+\.                                  # quoted filename.
+       (?:vb[se]                               # list of extns
+       |ws[fh]
+       |jse?
+       |exe
+       |com
+       |shs
+       |hta
+       |bat
+       |scr
+       |pif)
+       \"                                      # end quote
+  |[\w.-]+\.                                   # unquoted filename.ext
+       (?:vb[se]                               # list of extns
+       |ws[fh]
+       |jse?
+       |exe
+       |com
+       |shs
+       |hta
+       |bat
+       |scr
+       |pif)
+  )                                            # end of filename capture
+  [\s;]                                                # trailing ;/space/newline
index 187275ad2b1815e157f26628d03a356ecb3e633d..0344b120eccb175eb7db54b2d717112509cfc538 100644 (file)
@@ -11,9 +11,9 @@
     List) is a means of identifying hosts that have been associated
     with the sending of spam mail.  A full description of the service
     and the technology and ethics behind it can be found at <a
     List) is a means of identifying hosts that have been associated
     with the sending of spam mail.  A full description of the service
     and the technology and ethics behind it can be found at <a
-    href="http://maps.vix.com/rbl/"><tt>http://maps.vix.com/rbl/</tt></a>
+    href="http://www.mail-abuse.org/rbl/"><tt>http://www.mail-abuse.org/rbl/</tt></a>
     along with more general mail policy information at <a
     along with more general mail policy information at <a
-    href="http://maps.vix.com/"><tt>http://maps.vix.com/</tt></a>.</p>
+    href="http://www.mail-abuse.org/"><tt>http://www.mail-abuse.org/</tt></a>.</p>
 
     <p>In the few years since MAPS started operating, other similar
     services although with different aims, procedures and
 
     <p>In the few years since MAPS started operating, other similar
     services although with different aims, procedures and
    <h2>RBL Configuration Options</h2>
 
     <p>These are fully detailed in the <a
    <h2>RBL Configuration Options</h2>
 
     <p>These are fully detailed in the <a
-    href="../exim-html-3.10/doc/html/spec.html" target="_top">Exim
+    href="../exim-html-3.20/doc/html/spec.html" target="_top">Exim
     Specification Document</a>. The specific section on RBL is <a
     Specification Document</a>. The specific section on RBL is <a
-    href="../exim-html-3.10/doc/html/spec_43.html#SEC758">here</a> and
+    href="../exim-html-3.20/doc/html/spec_46.html#SEC810">here</a> and
     the rbl directives are documented starting <a
     the rbl directives are documented starting <a
-    href="../exim-html-3.10/doc/html/spec_11.html#SEC299">here</a></p>
+    href="../exim-html-3.20/doc/html/spec_11.html#SEC311">here</a></p>
 
     <p>A typical configuration would be a mail system which rejects
 
     <p>A typical configuration would be a mail system which rejects
-    mail from machines that appear within the MAPS RBL list, and also
-    checks hosts in the ORBS lists but only marking each message has
-    coming via an RBLed host rather than rejecting them.  Additionally
-    all mail to the local postmaster always gets through, even if the
-    host is in the MAPS RBL list.  You also have a local private set
-    of IPs which relay out through this mail server on net
-    192.168.0.0/24 - these cannot be contacted from outside your
-    organisation so RBL is not an issue.</p>
+    mail from machines that appear within either the MAPS RBL list or
+    the MAPS DUL (Dial-Up List), and also checks hosts in the ORBS
+    lists but only marking each message has coming via an RBLed host
+    rather than rejecting them.  Additionally all mail to the local
+    postmaster always gets through, even if the host is in the MAPS
+    RBL list.  You also have a local private set of IPs which relay
+    out through this mail server on net 192.168.0.0/24 - these cannot
+    be contacted from outside your organisation so RBL is not an
+    issue.</p>
 
     <p>The configuration fragment (in the main part of the exim
     configuration file) to do this is:-</p>
 
     <p>The configuration fragment (in the main part of the exim
     configuration file) to do this is:-</p>
     <pre>
 # reject messages whose sending host is in MAPS/RBL
 # add warning to messages whose sending host is in ORBS
     <pre>
 # reject messages whose sending host is in MAPS/RBL
 # add warning to messages whose sending host is in ORBS
-rbl_domains = rbl.maps.vix.com/reject : relays.orbs.org/warn
+rbl_domains = blackholes.mail-abuse.org/reject : \
+        dialups.mail-abuse.org/reject : \
+        relays.mail-abuse.org/reject : \
+        relays.orbs.org/warn
 # check all hosts other than those on internal network
 rbl_hosts = !192.168.0.0/24:0.0.0.0/0
 # but allow mail to postmaster@my.dom.ain even from rejected host
 # check all hosts other than those on internal network
 rbl_hosts = !192.168.0.0/24:0.0.0.0/0
 # but allow mail to postmaster@my.dom.ain even from rejected host
@@ -86,6 +90,6 @@ rbl_log_rcpt_count    # log recipient info of accepted RBLed messages
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 15:46:41 BST 1997 -->
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 15:46:41 BST 1997 -->
-    <h4>$Id: rbl.html,v 1.1.1.1 2000/05/22 19:54:43 nigel Exp $</h4>
+    <h4>$Id: rbl.html,v 1.2 2000/08/01 08:34:21 nigel Exp $</h4>
   </body>
 </html>
   </body>
 </html>
index f07ec65bf9325b0c315aac10ed1afeab2c98a4f2..b37cca162145527bb17cc3db929ff334c499f233 100644 (file)
 
     <h2>Relay Configuration Options</h2>
 
 
     <h2>Relay Configuration Options</h2>
 
-    <p>These are fully detailed in the <a href="../exim-html-3.10/doc/html/spec.html"
+    <p>These are fully detailed in the <a href="../exim-html-3.20/doc/html/spec.html"
     target="_top">Exim Specification Document</a>. The specific
     section on relaying is <a
     target="_top">Exim Specification Document</a>. The specific
     section on relaying is <a
-    href="../exim-html-3.10/doc/html/spec_43.html#SEC761">here</a> </p>
+    href="../exim-html-3.20/doc/html/spec_46.html#SEC813">here</a> </p>
 
     <ol>
       <li>Firstly you need to specify the local mail domains as
 
     <ol>
       <li>Firstly you need to specify the local mail domains as
@@ -43,7 +43,7 @@
       machine on your network could be used to do unauthorised
       relaying.  The control of hosts that can relay is done with the
       <tt><a
       machine on your network could be used to do unauthorised
       relaying.  The control of hosts that can relay is done with the
       <tt><a
-      href="../exim-html-3.10/doc/html/spec_11.html#SEC228">host_accept_relay</a></tt>
+      href="../exim-html-3.20/doc/html/spec_11.html#SEC235">host_accept_relay</a></tt>
       option.</li>
 
     </ol>
       option.</li>
 
     </ol>
@@ -66,6 +66,6 @@ host_accept_relay = 127.0.0.1/8
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 15:46:41 BST 1997 -->
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 15:46:41 BST 1997 -->
-    <h4>$Id: relay.html,v 1.3 2000/04/09 22:02:34 nigel Exp $</h4>
+    <h4>$Id: relay.html,v 1.1.1.1 2000/05/22 19:54:43 nigel Exp $</h4>
   </body>
 </html>
   </body>
 </html>
index dc0326667f11a2b01ff7d86aa679480d094bd6a3..f6ba40c39298f9aadf3855c6d9b6ddca04d96c3d 100644 (file)
@@ -21,7 +21,8 @@
       <dd>which is a discussion list about exim covering use and
        development of the software.  This also has an <a href="http://www.exim.org/pipermail/exim-users/">archive</a> dating
        back to 1996.  Please have the courtesy to check the list
       <dd>which is a discussion list about exim covering use and
        development of the software.  This also has an <a href="http://www.exim.org/pipermail/exim-users/">archive</a> dating
        back to 1996.  Please have the courtesy to check the list
-       before posting basic queries.</dd>
+       before posting basic queries, the <a href="FAQ.html">FAQ</a> also covers many things
+       that get asked regularly on the list.</dd>
       <dd>The mailing list can be searched using <a
          href="http://www.htdig.org">ht://Dig WWW Search</a>
  <form method="post" action="http://www.exim.org/cgi-bin/htsearch"> <font size="-1"> Match: <select name="method"> <option value="and">All
       <dd>The mailing list can be searched using <a
          href="http://www.htdig.org">ht://Dig WWW Search</a>
  <form method="post" action="http://www.exim.org/cgi-bin/htsearch"> <font size="-1"> Match: <select name="method"> <option value="and">All
@@ -45,6 +46,6 @@
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 15:46:41 BST 1997 -->
     <hr>
     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
 <!-- Created: Mon Aug 25 15:46:41 BST 1997 -->
-    <h4>$Id: maillist.html,v 1.3 2000/10/26 15:24:40 nigel Exp $</h4>
+    <h4>$Id: maillist.html,v 1.4 2000/11/13 10:16:20 nigel Exp $</h4>
   </body>
 </html>
   </body>
 </html>
index 8dc8bb1885bc3a45163e38fe728cc3dadeb462c0..abbd0236f3444ba7c96c1cad69332468b784636b 100644 (file)
@@ -1,6 +1,5 @@
 # Exim filter
 ## Version: 0.10
 # Exim filter
 ## Version: 0.10
-#      $Id$
 
 ## If you haven't worked with exim filters before, read
 ## the install notes at the end of this file.
 
 ## If you haven't worked with exim filters before, read
 ## the install notes at the end of this file.
@@ -54,12 +53,13 @@ endif
 
 # Look for single part MIME messages with suspicious name extensions
 # Check Content-Type header [vb2_regexp]
 
 # Look for single part MIME messages with suspicious name extensions
 # Check Content-Type header [vb2_regexp]
-if $header_content-type: matches "(?:file)?name=(\"[^\"]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|cmd|shs|bat|scr|pif)\"|[\\\\w.-]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|cmd|shs|bat|scr|pif))"
+if $header_content-type: matches "(?:file)?name=(\"[^\"]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif)\"|[\\\\w.-]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif))"
 then
   fail text "This message has been rejected because it has\n\
             \ta potentially executable attachment $1\n\
             \tThis form of attachment has been used by\n\
 then
   fail text "This message has been rejected because it has\n\
             \ta potentially executable attachment $1\n\
             \tThis form of attachment has been used by\n\
-             \trecent viruses or other malware.\n\
+             \trecent viruses such as that described in\n\
+            \thttp://www.fsecure.com/v-descs/love.htm\n\
             \tIf you meant to send this file then please\n\
             \tpackage it up as a zip file and resend it."
   seen finish
             \tIf you meant to send this file then please\n\
             \tpackage it up as a zip file and resend it."
   seen finish
@@ -69,12 +69,13 @@ endif
 # in emails.   These were used as the basis for 
 # the ILOVEYOU virus and its variants
 # [vb_regexp]
 # in emails.   These were used as the basis for 
 # the ILOVEYOU virus and its variants
 # [vb_regexp]
-if $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\"[^\"]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|cmd|shs|bat|scr|pif)\"|[\\\\w.-]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|cmd|shs|bat|scr|pif))[\\\\s;]"
+if $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\"[^\"]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif)\"|[\\\\w.-]+\\\\.(?:vb[se]|ws[fh]|jse?|exe|com|shs|bat|scr|pif))[\\\\s;]"
 then
   fail text "This message has been rejected because it has\n\
             \ta potentially executable attachment $1\n\
             \tThis form of attachment has been used by\n\
 then
   fail text "This message has been rejected because it has\n\
             \ta potentially executable attachment $1\n\
             \tThis form of attachment has been used by\n\
-             \trecent viruses or other malware.\n\
+             \trecent viruses such as that described in\n\
+            \thttp://www.fsecure.com/v-descs/love.htm\n\
             \tIf you meant to send this file then please\n\
             \tpackage it up as a zip file and resend it."
   seen finish
             \tIf you meant to send this file then please\n\
             \tpackage it up as a zip file and resend it."
   seen finish
@@ -104,8 +105,6 @@ endif
 #      Removed exclusion for error messages - this is a little nasty
 #      since it has other side effects, hence we do still exclude
 #      on unix like error messages
 #      Removed exclusion for error messages - this is a little nasty
 #      since it has other side effects, hence we do still exclude
 #      on unix like error messages
-# 0.11 20 March, 2001
-#      Added CMD extension, tidied docs slightly, added RCS tag
 #
 #### Install Notes
 #
 #
 #### Install Notes
 #
@@ -123,13 +122,6 @@ endif
 #      message_filter = /etc/exim/system_filter.exim
 #      message_body_visible = 5000
 #
 #      message_filter = /etc/exim/system_filter.exim
 #      message_body_visible = 5000
 #
-# You may also want to set the message_filter_user & message_filter_group
-# options, but they default to the standard exim user and so can
-# be left untouched.  The other message_filter_* options are only
-# needed if you modify this to do other functions such as deliveries.
-# The main exim documentation is quite thorough and so I see no need
-# to expand it here...
-#
 # Any message that matches the filter will then be bounced.
 # If you wish you can change the error message by editing it
 # in the section above - however be careful you don't break it.
 # Any message that matches the filter will then be bounced.
 # If you wish you can change the error message by editing it
 # in the section above - however be careful you don't break it.
@@ -163,7 +155,6 @@ endif
 #      |jse?
 #      |exe
 #      |com
 #      |jse?
 #      |exe
 #      |com
-#      |cmd
 #      |shs
 #      |bat
 #      |scr
 #      |shs
 #      |bat
 #      |scr
@@ -175,7 +166,6 @@ endif
 #      |jse?
 #      |exe
 #      |com
 #      |jse?
 #      |exe
 #      |com
-#      |cmd
 #      |shs
 #      |bat
 #      |scr
 #      |shs
 #      |bat
 #      |scr