On 14/09/2014 04:45, [email protected] wrote:
From: Terry

I thought I had a handle on what I was doing in
rejecting mail to unknown users but a discussion on another list and
subsequent googling made me question it.

I have the following in acl_smtp_rcpt:

    require
      message = 550 5.1.1 Bad destination mailbox address
      verify = recipient

I advise without "message", then error messages will be more specific.
For incoming mail (to local domains) to nonexistent users
a router should generate message like "Unknown user",
it'll be what sending MTA sees. Please post your such router.

Thank you, Lena. This is where my problem was and why I set the message because it kept returning 550 Unrouteable address.

I had a router for mail to root as the last router which had no cannot_route_message. I've removed that router as root is forwarded in the aliases file so it never gets there. It now returns "550 Unknown user" when I tested.

These are my routers now:

begin routers

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  same_domain_copy_routing = yes
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
                        172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16 :\
                        255.255.255.255
  no_more

virtual_aliases:
  driver = redirect
  domains = +local_domains
  allow_fail
  allow_defer
data = ${lookup{$local_part}lsearch{/etc/exim4/virtual/aliases/$domain.aliases}}

virtual_userforward:
  debug_print = "R: userforward for $local_part@$domain"
  driver = redirect
  domains = +local_domains
  user = vmail
  file = /home/vmail/$domain/$local_part/.forward
  require_files = /home/vmail/$domain/$local_part/.forward
  no_verify
  no_expn
  check_ancestor
  allow_filter
  forbid_smtp_code = true
  directory_transport = local_address_directory
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  skip_syntax_errors

virtual_user:
   driver = accept
   domains = +local_domains
   require_files = +/home/vmail/${domain}/${local_part}/
   transport = dovecot_virtual_delivery

system_aliases:
  driver = redirect
  domains = +local_domains
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases}}

local_user:
  driver = accept
  domains = +local_domains
  check_local_user
  local_parts = ! root
  transport = maildir_home
  cannot_route_message = Unknown user

Is there any advantage to returning the extended code in the cannot_route_message?

I also have local domains lumped in with the virtual domains in +local_domains. Is it more efficient to separate these and use only the virtual domains with the virtual routers?

Thanks to everyone for the pointers and help.

--
Terry

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to