[prev in list] [next in list] [prev in thread] [next in thread] 

List:       exim-users
Subject:    Re: [exim] Verifying recipient confusion
From:       Terry <tech () futurecourse ! com>
Date:       2014-09-14 17:05:14
Message-ID: 5415CACA.6020000 () futurecourse ! com
[Download RAW message or body]

On 14/09/2014 04:45, Lena@lena.kiev.ua 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/
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic