From mdm@internet-tools.com Tue May 19 08:30:53 1998 Date: Mon, 18 May 1998 17:35:06 +0100 From: mark david mcCreary To: exim-users@exim.org Subject: [EXIM] Annotated configuration file for Exim ###################################################################### # Annotated configuration file for Exim # ###################################################################### # This is an annotated Exim configuration file, designed to document # many of the features in example form. # # # Copyright (c) 1998 Internet Tools, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # Credits # # mark david mcCreary mdm@internet-tools.com Writer and Editor # Paul Mansfield paulm@uk.psi.com Writer # Lee McLoughlin lmjm@icparc.ic.ac.uk Borrowed code from list ###################################################################### # MAIN CONFIGURATION SETTINGS # ###################################################################### accept_timeout = 60s # # Useful to prevent hung local deliveries from tying up Exim forever, # as the default value does when reading a message from STDIN always_bcc # # Useful for mailing lists and exceptional cases where mail has # no To: Cc: or Bcc: field auto_thaw = 24h # # Useful to allow deliveries that previously failed, to try again, once a day check_spool_space = 10M check_spool_inodes = 100 check_log_space = 10M check_log_inodes = 100 # # Useful for making sure that you do not accept a mail message that will # overflow your hard disk resources collapse_source_routes # # Useful to prevent tricks being played with email addresses within # email addresses delay_warning = 0s # # Useful if you do not like the default of sending warning messages # back to the sender when Exim cannot immediately deliver mail deliver_load_max = 3 # # Useful to make sure your hardware does not kill itself by consuming # too many MTA resources deliver_queue_load_max = 9 # # Useful to make sure that the Exim job currently delivering email # is not abandoned because of the load specified in deliver_load_max freeze_tell_mailmaster # # Useful to email warning message to postmaster (default setting) when # an email message has future delivery attempts prevented due to # exceptional problems ignore_errmsg_errors # # Useful to override the default of freezing such messages for # human review local_domains = "@:[127.0.0.1]" # # Useful for machine that will just accept mail for itself # (HOSTNAME). Typically, xxx.domain.com local_domains = "@:partial-lsearch;/etc/aliases.virtual:[127.0.0.1]" # # Useful for providing virtual domain mail host from flat file in /etc # @ symbol means name of current machine (HOSTNAME) # Rest of domain names that Exim will accept email for is in flat file local_domains = "@:domain.com:[127.0.0.1]" # # Useful for providing mail hub machine configuration for accepting # all email sent to HOSTNAME, as well as top level domain name. local_domains_include_host_literals # # Useful for accepting email with ip address [123.45.678.9] instead # of domain name. [127.0.0.1] is always processed, regardless of # this setting. local_interfaces = "123.45.678.9:127.0.0.1" # # Useful for mail hosts with virtual web servers also on same hardware. # Prevents Exim from paying any attention to those ip addresses that # are aliased to provide virtual domain web sites. log_arguments # # Useful comments written to log file that can sometimes aid # in determing who/what called Exim log_ip_options # # Useful to know if external machines are trying tricky stuff at the # ip address level log_level = 3 # # Useful to reduce the level of detail in the log file to everyday # use. log_received_recipients # # Useful for detail of who is receiving each message, when written to # the log file. log_smtp_confirmation # # Useful for logging detailed message confirmations with other MTA's that # follow this convention. log_subject # # Useful for detail of Subject: line of each message, when written to # the log file. message_size_limit = 16384000 # # Useful to limit the size of email messages that can be processed # to less than 16Mb never_users = root # # Useful to prevent root from every running local mail deivery process. # For security purposes. queue_only # # Useful to control delivery processes by queue runners, as opposed # to email message creation. rbl_domains = rbl.maps.vix.com # # Useful for Realtime Blocking Lists, by providing the source machine # where the blacklist is maintained. rbl_reject_recipients # # Useful for Realtime Blocking Lists, by causing hosts found on # list to have mail rejected. rbl_warn_header # # Useful to add Header X-RBL-Warning to email message, thus making # it easier for final receipent to filter relay_domains_include_local_mx # # Useful for allowing domain names specified in DNS setup to use # this machine for relaying messages relay_match_host_or_sender # # Useful to relax the Exim default of checking both host and sender for # matches for constricting relaying. return_size_limit = 65536 # # Useful to reduce the message size returned to sender from # Exim default sender_address_relay = "partial-lsearch;/etc/aliases.virtual" # # Useful to allow email from virtual domain to send mail thru # this machine sender_host_accept_relay = 123.45.678.9 # # Useful to allow known friendly machines to use this machine # for relaying mail sender_host_reject_recipients = "123.45.678.9" # # Useful to stop spam attempts and mail loops from external machine. # Change number to ip address of offending machine, and restart Exim # Accepts incoming SMTP connection, but gives a 5xx error in response. # Otherwise, by simply rejecting the connection, the offending machine # may try to deliver to a backup mail host sender_net_accept_relay = "123.45.678.9/24" # # Useful to allow known friendly machines in a Class C subnet # to use this machine for relaying mail sender_reject_recipients = @@lsearch*;/opt/exim/etc/spamblock-authors # that external file provides a list of authors of spam, and exim refuses the # email when the originator specific the recipients rather than simply # refusing the connection in the first place which would probably not actually # make the mail go away, the file contains lines like # 01462.com ginger:*> # public.com friend:*> sender_verify = true # # Useful to make sure that mail envelope is coming from a valid # domain name with DNS entries sender_verify_fixup = true # # Useful to allow for broken mail transports already on the net, # by continuing scan for valid sender from Sender, Reply-to or # From header, when envelope sender is invalid. smtp_accept_queue = 15 # # Useful to apply a limit to the number of simultaneous SMTP connections # that Exim will attempt to handle. Otherwise, the default is infinite. smtp_accept_reserve = 5 # # Useful to allow favored networks to connect to your machine when # the machine is very busy smtp_connect_backlog = 50 # # Useful for machine efficiency purposes with large mailing machines # with many simultaneous SMTP connections. smtp_etrn_nets = "123.45.678.9/24" # # Useful for restricting new RFC 1985 command ETRN # to favored networks smtp_load_reserve = 4 # # Useful to allow favored networks to connect to your machine when # the machine is very busy smtp_reserve_nets = "123.45.678.9/24" # # Useful to specify favored networks that receive special attention # during high load times trusted_users = "exim:list" # # Useful to allow mailing list software package to specify sender's # email address end ###################################################################### # TRANPORTS CONFIGURATION # ###################################################################### local_delivery: driver = appendfile; file = /home/pop/${local_part}, group = popuser # # Useful for delivering email to users with entries in /etc/passwd procmail_pipe: driver = pipe; command = "/usr/bin/procmail -d ${local_part}", user = exim, envelope_to_add # # Useful for passing mail to procmail routine that has it's own # entry in the /etc/passwd file smtp: remove_headers = "Resent-To:Resent-Date:Resent-From:Resent-Message-Id:Resent-Bcc", driver = smtp; end # # Useful for delivering mail to remote systems via SMTP protocol # Removes Resent Headers ###################################################################### # DIRECTORS CONFIGURATION # ###################################################################### postmaster: driver = smartuser, local_parts = postmaster, hostmaster; new_address = postmaster@domain.com # # Useful to pick off any mail to postmaster, hostmaster for any domain # before any other processing is done. bozo_aliases: driver = aliasfile; file = /etc/aliases.bozo, search_type = lsearch, user = exim # # Useful for quickly getting rid of mail for obsolete email address # # Where the /etc/aliases.bozo file looks like # # info: :blackhole: # sales: :blackhole: virtual_specific: driver = smartuser, new_director = dual_aliases, domains = "partial-lsearch;/etc/aliases.virtual"; new_address = ${lookup{$local_part@$domain}lsearch{/etc/aliases.virtual} {$value} fail}; # # Useful to allow individual address from virtual domain to go to a specific # address. # virtual_default: driver = smartuser, new_director = dual_aliases, domains = "partial-lsearch;/etc/aliases.virtual"; new_address = ${lookup{$domain}lsearch{/etc/aliases.virtual} {$value} fail}; # # Useful to provide default email address for all other local_part at a virtual # domain. # # Where the /etc/aliases.virtual file looks like # # domain.com: joe@aol.com # webmaster@domain.com: sam@compuserve.com # sam@domain.com: sam@compuserve.com # sales@domain.com: mary@netcom.net # team@domain.com: alias-domain.com@[127.0.0.1] # dual_aliases: driver = aliasfile; file = /etc/aliases.dual, search_type = lsearch, user = exim # # Useful for delivering one incoming email message to two or more addresses # Typically use for individuals having mail sent to two different locations # # Where the /etc/aliases.dual file looks like # # alias-domain.com: joe@aol.com, brad@prodigy.net, steve@sprynet.com # # Basic system mail aliases system_aliases: driver = aliasfile; file = /etc/aliases.exim, search_type = lsearch, user = exim # # Useful for directing email to proper destination for system pseudo-accounts # and other administration type accounts # # Where the /etc/aliases.exim file looks like # # root: robert # postmaster: root # listmaster: joe@aol.com # Announcement Mailing List Mapping announce_aliases: driver = aliasfile; file = /etc/aliases.announce, search_type = lsearch, user = announce # # Useful for handling incoming email for mailing lists. # localuser: driver = localuser, transport = local_delivery; # # Useful for delivering email for local users to their mailbox end ###################################################################### # ROUTERS CONFIGURATION # ###################################################################### lookuphost: driver = lookuphost, transport = smtp; # # Useful to deliver mail to remote locations via SMTP and DNS literal: driver = ipliteral, transport = smtp; # # Useful to deliver mail to remote locations via SMTP and ip address # Set forbid_domain_literals in the main configuration to disable # use of ip addresses end ###################################################################### # RETRY CONFIGURATION # ###################################################################### # Domain Error Retries # ------ ----- ------- aol.com * G,3d,6h,2 * refused F,4d,8h * * F,2h,15m; G,16h,2h,1.5; F,4d,8h # # Useful to control how often failed deliveries should be tried again. # If no retry rules, only one delivery attempt is made. # # All mail to aol.com is retried at Geometrically increasing times, for up # to 3 days, starting 6 hours after initial failed attempt, and doubling # the length of waiting time. # # All mail that is refused, is retried every 8 hours, for 4 days. # # The final rule catches all other email, and it specifies retries every # 15 minutes for 2 hours, then increasing retry intervals, starting at # 2 hours and increasing each time by a factor of 1.5, up to 16 hours, # then retries every 8 hours until 4 days have passed since the first # failed delivery. # See also delay_after_cutoff option end ###################################################################### # REWRITE CONFIGURATION # ###################################################################### # Simple example to remove 3rd level of domain name on outgoing email *@*.domain.com $local_part@domain.com Ffq # Complex example to remove 3rd level of domain name on outgoing email # # If a sub-domain is given, eg: user@xyz.domain.com # convert to: user@domain.com ^(..*)@([^\.]*).domain.com $1@domain.com # # If just hostname is given, eg: user@xyz # convert to: user@domain.com ^([^@][^@]*)@([^\.]*)$ $1@domain.com # # If a no domain is given, eg: user # convert to: user@domain.com ^([^@][^@]*)$ $1@domain.com # # Useful to change the contents of envelope or header From lines # Exim needs to be re-started anytime changes are made to the configuration file # # End of Exim configuration file -- *** Exim information can be found at http://www.exim.org/ ***