####################################################################### # # EXIM Configuration # ================== # # This file is intended for use with EXIM 4 # # WARNING : This configure file prevents local delivery. # # Do NOT use this file unchanged unless you want all local mail # to be delivered to mail.lancs.ac.uk # ####################################################################### ###################################################################### # # MACROS # ====== # ###################################################################### # Location of miscellaneous control files ETC = /usr/local/packages/exim/etc ###################################################################### # # MAIN CONFIGURATION SETTINGS # =========================== # ###################################################################### # Host Name And Port # ------------------ # We define the name of the host here (omitting this uses uname()) and also # any non-standard port # # This is left unset, with the assumption that uname() will give the correct # answer. EDIT HERE (or set the hostname correctly) if this is not the case. # ### primary_hostname = xyzzy.lancs.ac.uk ### daemon_smtp_port = 8000 # Identification String # --------------------- # This string is sent in response to a connection smtp_banner = "${primary_hostname} ESMTP Exim ${version_number} #${compile_number} ${tod_full} (PBTX)" # Incoming Concurrency Control # ---------------------------- # This section contols the number of concurrent incoming connections smtp_accept_max = 64 # Local Domains # ------------- # qualify_domain is the domain we add to unqualified sender addresses. # Domains listed in local_domains are treated as local for incoming messages; # For cluster client nodes, NO MAIL is treated as local, hence local_domains # is an empty string. Note this is NOT the same as not defining local_domains qualify_domain = unix.lancs.ac.uk # Local Delivery Paranoia # ----------------------- # Any attempt to deliver to a username in this list will silently run with the # uid and gid of "nobody" and will thus fail. Users in the list must therefore # have aliases to take messages elsewhere never_users = root # Domain Literal Addressing # ------------------------- # We violate the RFCs and block domain literal addressing. Note that this is # the recommended way to do this; the domain literal router should be left in # place unused later in the file allow_domain_literals = false # Global Size Limits # ------------------ # These define the global limit for message size, and how much we send back in # NDRs. Values may be overridden in specific transports message_size_limit = 50M return_size_limit = 5K # Error Handling # -------------- # We do not set the "qualify_recipient" option, so we much give a fully # qualified address for postmaster functions. We also silently bin # notifications when NDRs fail to get through ignore_bounce_errors_after = 0s # Delay Notifications # ------------------- # The settings here define when we send notifications that messages still have # not been delivered delay_warning = 12h:4d # Spool Space Control # ------------------- # Here we define the layout of the message store, and set various thresholds at # which Exim will shut down split_spool_directory check_spool_space = 20M check_spool_inodes = 100 check_log_space = 20M check_log_inodes = 100 # Delivery Control # ---------------- # To suspend attempts to deliver to a domain, uncomment the appropriate line # below #hold_domains = mailhubs.lancs.ac.uk # Log Settings # ------------ # Options here control what gets logged. We want to see the raw addresses # involved before rewriteing is done; and see what SMTP confirmations we # receive from remote MTAs. The bulk log level is set to 4, since at the # default level of 5 we get an excessive number of "retry time not reached" # messages when queue runs are done #!!# All previous logging options are combined into a single #!!# option in Exim 4. This setting is an approximation to #!!# the previous state - some logging has changed. log_selector = \ -retry_defer \ -skip_delivery \ +received_sender \ +received_recipients \ +smtp_confirmation \ +smtp_syntax_error # ACLS # ---- begin acl # ACL that is used after the RCPT command acl_smtp_rcpt: # Exim 3 had no checking on -bs messages, so for compatibility # we accept if the source is local SMTP (i.e. not over TCP/IP). # We do this by testing for an empty sending host field. accept hosts = : deny message = relay not permitted # ACL that is used after the DATA command acl_smtp_data: accept ###################################################################### # # ADDRESS REWRITING # ----------------- # # This section defines how we rewrite addresses in messages. Rules are # run serially # ###################################################################### # Catch all the (incorrect!) local machine names that stupid users might # try to use in mail addresses, and rewrite to unix.lancs.ac.uk begin rewrite *@lsearch;ETC/local-names $local_part@unix.lancs.ac.uk begin routers ###################################################################### # # NON-LOCAL ROUTERS # ================= # This section specifies how non-local addresses are handled. An address # is passed to each router in turn until it is accepted; note though # that routers marked as "verify_only" are used only in verifying a # RCPT command and not when a delivery is being attempted # ###################################################################### # local_route # ----------- # Forward all local mail to the cluster mail server local_route: driver = manualroute route_list = unix.lancs.ac.uk marl.lancs.ac.uk bydns transport = remote_smtp # smart_route # ----------- # Forward ALL non-local mail to our smart hosts smart_route: driver = manualroute route_list = * mailhubs.lancs.ac.uk bydns transport = remote_smtp # lookuphost # ---------- # This router routes to remote hosts over SMTP using a DNS lookup with # default options. It handles all destinations except those trapped above # by other routers and should be the last in the list lookuphost: driver = dnslookup transport = remote_smtp # literal # ------- # This router handles sending mail to destinations given by IP address. It is # locked out by the "forbid_domain_literals" option above, but should # remain defined literal: driver = ipliteral transport = remote_smtp no_more ###################################################################### # # LOCAL ROUTERS # ============= # This section specifies how local addresses are handled. A local address # (a domain that matches some item in the "local_domains" setting above) # is passed to each in turn until it is accepted # ###################################################################### ### NO LOCAL DELIVERIES, SO WE ### ### DON'T HAVE ANY LOCAL ROUTERS ### ###################################################################### # # TRANSPORTS # ========== # This section defines the transports that actually move messages; the # ordering of items is not important # # A transport is used only when referenced from a director or a router that # successfully handles an address. # ###################################################################### begin transports # remote_smtp # ----------- # The default transport for outgoing messages # # Disabling delay_after_cutoff ensures that every message arriving for a # long-dead host gets at least one attempt before rejection remote_smtp: driver = smtp no_delay_after_cutoff # local_delivery # -------------- local_delivery: driver = appendfile delivery_date_add envelope_to_add file = /var/mail/${local_part} return_path_add # group = mail # mode = 0660 # procmail_pipe - use procmail as a local delivery agent # ------------- procmail_pipe: driver = pipe check_string = "From " command = "/usr/bin/procmail -d ${local_part}" delivery_date_add envelope_to_add escape_string = ">From " group = mail return_path_add user = $local_part # address_pipe # ------------ address_pipe: driver = pipe return_output # address_file # ------------ address_file: driver = appendfile delivery_date_add envelope_to_add return_path_add # address_reply # ------------- address_reply: driver = autoreply ###################################################################### # # RETRY TIMES # =========== # # These rules dictate how Exim retries messages that cannot be delivered. # It assumes that the queue run interval (set by the '-q' argument to # the daemon process) is 2 minutes or less # # Each rule defines: # # A (wildcarded) domain name # A retry reason, used to handle different failure types in different # ways # A set of times and intervals # ###################################################################### # Default # ------- # Try every half hour for four days begin retry * * F,4d,30m # End of Exim 4 configuration