[exim] local delivery fails after server move

Top Page
Delete this message
Reply to this message
Author: Gary Stainburn
Date:  
To: exim-users
Subject: [exim] local delivery fails after server move
Morning all.

I have an EXIM setup on a Centos 7 server using basic setup and using
/etc/alias. This is our live company server.
I also have a personal Centos 7 / EXIM server where I host emails for a
few charities using Postgresql.

I have built a new company Centos 7 server / EXIM server using the Pgsql
setup but the company user base.

To port the users I

1) pwunconv / grpunconv on both the old and new servers
2) Copied /etc/passwd and /etc/group to the new server
3) merged /etc/passwd and /etc/group
4) pwconv / grpconv on both the old and new servers
5) rsync -avr /home
6) rsync -avr /var/spool/mail

Checked all files and permissions and all looks fine. However, local
delivery is not even being attempted.  I have included the routers and
transports, as well as the output from a test run.

It looks like the localuser isn't even being checked, as the debug_print
doesn't appear.

Am I missing something obvious?

Output:

[root@sftp ~]# exim -bt gary.stainburn@???
R: pgsql alias gary.stainburn @ testserver.com
R: pgsql alias gary @ sftp.testserver.com
gary@sftp.testserver.com is undeliverable: Unrouteable address
    <-- gary.stainburn@???
[root@sftp ~]#




'gary' exists as a local user.





begin routers

smarthost:
  driver = manualroute
  domains = +smarthost_domains
  transport = smarthost_smtp
  route_data = ROUTER_SMARTHOST
  ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
  no_more

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases}}
  file_transport = address_file
  pipe_transport = address_pipe

pgsql_aliases:
  debug_print = "R: pgsql alias $local_part @ $domain"
  driver = redirect
  domains = +local_domains
  allow_fail
  allow_defer
  data = ${lookup pgsql{select a_target from current_alias_list \
                       where a_localpart = '${quote_pgsql:$local_part}' \
                        and domain='${quote_pgsql:$domain}'}}
  file_transport = address_file
  pipe_transport = address_pipe
  no_more

userforward:
  debug_print = "R: User Forward"
  driver = redirect
  check_local_user
  file = $home/.forward
  allow_filter
  no_verify
  no_expn
  check_ancestor
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply

procmail:
  debug_print = "R: Procmail"
  driver = accept
  check_local_user
  require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail
  transport = procmail
  no_verify

localuser:
  debug_print = "R: localuser"
  driver = accept
  check_local_user
  transport = local_delivery
  cannot_route_message = Unknown user

begin transports

# Added 2020-10-23

remote_smtp_single_domain:
  debug_print = "T: remote_smtp_single_domain for $local_part@$domain"
  driver = smtp
  multi_domain = false

remote_smtp:
  driver = smtp
.ifdef _HAVE_TLS_RESUME
  tls_resumption_hosts = *
.endif

remote_msa:
  driver = smtp
  port = 587
  hosts_require_auth = *

procmail:
  driver = pipe
  command = "/usr/bin/procmail -d $local_part"
  return_path_add
  delivery_date_add
  envelope_to_add
  user = $local_part
  initgroups
  return_output

smarthost_smtp:
  driver = smtp
  multi_domain
.ifdef _HAVE_TLS
  hosts_require_tls = *
  tls_verify_hosts = *
  tls_try_verify_hosts = *
  tls_sni = ROUTER_SMARTHOST
.ifdef _HAVE_OPENSSL
  tls_require_ciphers = HIGH:!aNULL:@STRENGTH
.endif
.ifdef _HAVE_GNUTLS
  tls_require_ciphers = SECURE192:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1
.endif
.ifdef _HAVE_TLS_RESUME
  tls_resumption_hosts = *
.endif
.endif

local_delivery:
  driver = appendfile
  file = /var/mail/$local_part_data
  delivery_date_add
  envelope_to_add
  return_path_add
  group = mail
  mode = 0660

address_pipe:
  driver = pipe
  return_output

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add

address_reply:
  driver = autoreply
  delivery_date_add
  envelope_to_add
  return_path_add