Exim thinks that deliveries to the host 'wbs.wlv.ac.uk', which is a mail
gateway here, are local. That is, testing goes like this:
exim -bt
> in1012@???
in1012@???
local delivery to in1012 in domain wbs.wlv.ac.uk
router = wbs_and_scitsc, transport = emil
Emil is an attachment format conversion package we use that can also do SMTP
deliveries. I don't understand why Exim thinks this is a local delivery, as
the host name doesn't match any of the names in 'local_domains' (my
'configure' file is below). Because it thinks the address is local, and
because the gateway was down over Xmas, we spent quite a time with Exim
rejecting messages for delivery to the gateway after the first attempt, as
specified on page 102 of the manual:
"If the delivery is a local one, one delivery attempt is always made for
subsequent messages. If it fails, the address fails immediately."
It was only when I deleted the retry database that it started doing multiple
attempts to deliver to this gateway.
I should mention that the MX entry for 'wbs.wlv.ac.uk' points to the hub
running Exim, which is why I have a special router entry for it.
Even if I reduce 'local_domains' to 'wlv.ac.uk:wolverhampton.ac.uk' Exim
still thinks deliveries to 'wbs.wlv.ac.uk' are local.
This may be something obvious that I have missed; if so my apologies.
--------------------------------------
######################################################################
# Runtime configuration file for Exim #
######################################################################
# MAIN SECTION
# Tell Exim local hostname is a valid deliver address
local_domains_include_host
# Specify the domain you want to be added to all unqualified addresses
# here. If this option is not set, the primary_hostname value is used.
qualify_domain = wlv.ac.uk
# Domains to which mail may be relayed by anyone, and addresses that
# may relay mail to anyone via here.
relay_domains = "*.wlv.ac.uk"
sender_net_accept_relay = 134.220.0.0/255.255.0.0:195.188.246.0/255.255.255.0
sender_host_accept_relay = "fc.bilston.ac.uk:stourbridge.ac.uk"
# Senders from whom mail will be rejected.
sender_host_reject_recipients = "lsearch;/usr/local/exim/spamhosts"
sender_reject_recipients = "lsearch;/usr/local/exim/spammers"
# Reserve 40 connections for local use (Simeon and Eudora)
smtp_reserve_nets = 134.220.0.0/255.255.0.0:195.188.246.0/255.255.255.0
smtp_accept_max = 70
smtp_accept_reserve = 50
# If you want unqualified recipient addresses to be qualified with a different
# domain to unqualified sender addresses, specify the recipient domain here.
# If this option is not set, the qualify_domain value is used.
# qualify_recipient =
# Networks from which and for which unqualified addresses are accepted
receiver_unqualified_nets = 134.220.0.0/255.255.0.0:195.188.246.0/255.255.255.0
sender_unqualified_nets = 134.220.0.0/255.255.0.0:195.188.246.0/255.255.255.0
# Specify your local domains as a colon-separated list here. If this option
# is not set, the qualify_recipient value is used as the only local domain.
# If you do not want to do any local deliveries, uncomment the following line,
# but do not supply any data for it.
local_domains = "wlv.ac.uk:wolverhampton.ac.uk:\
^(ccu.|unad.|sys[ab]|caesa|mail)(\\.(wlv|wolverhampton)\\.a
c\\.uk)?$"
# No local deliveries will ever be run under the uids of these users.
never_users = root
# If you are running Exim under its own uid (recommended), then you should
# set up that uid as a trusted user by de-commenting the following and
# changing the name if necessary.
trusted_users = "exim:root:daemon:majordom"
# User name Exim runds under
exim_user = exim
# Group Exim runs under
exim_group = exim
# RFC1413 validation for external access only
rfc1413_except_nets = 134.220.0.0/255.255.0.0:195.188.246.0/255.255.255.0
# Use SETEUID to change UID
security = seteuid
# Allow SMTP VRFY command
smtp_verify = yes
# Allow source routed addresses
percent_hack_domains = *
# Auto-thaw frozen messages after 2 days
auto_thaw = 2d
# Limit maximum message size
message_size_limit = 5M
# Connection limits
smtp_connect_backlog = 20
# Attempt to verify sender addresses on incoming mail
sender_try_verify
sender_verify_reject
end
# TRANSPORTS SECTION
# This transport is used for local delivery to user mailboxes.
local_delivery:
driver = pipe;
command = "/usr/local/bin/emil -r ${local_part} -s ${sender_address} -x
${primary_hostname} -m procmail",
return_path_add,
from_hack
# This transport is used for handling pipe addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file.
address_pipe:
driver = pipe;
restrict_to_path,
path = "/usr/adm/sm.bin",
ignore_status
# This transport is used for handling file addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file.
address_file:
driver = appendfile
# This transport is used for handling autoreplies generated by the filtering
# option of the forwardfile director. It has a conventional name, since it
# is not actually mentioned elsewhere in this configuration file.
address_reply:
driver = autoreply
# This transport is used for delivering messages over SMTP connections.
smtp:
driver = smtp;
# Emil delivers does attachment format conversion, but otherwise works
# like a standard SMTP transport.
emil:
driver = pipe;
command = "/usr/local/bin/emil -r ${local_part}@${host} -s
${sender_address} -x ${host} -n",
no_delivery_date_add,
pipe_as_creator
end
# DIRECTORS SECTION
# This contains all local aliases collected together
system_aliases:
driver = aliasfile;
file = /usr/local/exim/aliases,
user = nobody,
group = nobody,
search_type = dbm
# Site-wide aliases via NIS.
YPaliases:
driver=aliasfile;
file = "mail.aliases",
search_type = nis0
# This director handles forwarding using traditional .forward files.
# If you want it also to allow mail filtering when a forward file
# starts with the string "# Exim filter", uncomment the "filter" option.
userforward:
no_verify,
driver = forwardfile;
file = .forward,
# filter
# This director matches local user mailboxes.
localuser:
driver = localuser,
transport = local_delivery;
end
# ROUTERS SECTION
# Pseudo-domains: only UUCP left
oddities:
driver = domainlist;
route_list = "*.uucp uknet.ac.uk"
# Run all messages for WBS and SCITSC through the attachment converter
wbs_and_scitsc:
driver = domainlist,
transport = emil;
route_list = "^wbs(\\.(wlv|wolverhampton)\\.ac\\.uk)?$ wbs.wlv.ac.uk bydns_a;\
^scitsc(\\.(wlv|wolverhampton)\\.ac\\.uk)?$ scitsc.wlv.ac.uk
bydns_a"
# Override DNS MX settings for SYSC mail
sysc:
driver = domainlist,
transport = smtp;
route_list = "^sysc(\\.(wlv|wolverhampton)\\.ac\\.uk)?$ sysc.wlv.ac.uk
bydns_a"
# This router routes to remote hosts over SMTP using a DNS lookup with
# default options.
lookuphost:
driver = lookuphost,
transport = smtp;
# This router routes IP addresses
ipliteral:
driver = ipliteral,
transport = smtp;
end
# RETRY SECTION
# This single retry rule applies to all domains and all errors. 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.
# Domain Error Retries
# ------ ----- -------
^wbs(\\.(wlv|wolverhampton)\\.ac\\.uk)?$ * F,7d,2h
* * F,2h,15m;
G,16h,2h,1.5; F,4d,8h
end
# REWRITE SECTION
# There are no rewriting specifications in this default configuration file.
# End of Exim configuration file
+-------------------------------------------------------------------+
| Max Caines | M.B.Caines@??? |
| Technical Services Manager | JANET: M.B.Caines@??? |
| Computer Centre | Phone: 01902 322245 |
| Wolverhampton University | Fax: 01902 322777 |
+-------------------------------------------------------------------+