Re: [Exim] lmtp transport: verifying address (LMTP callout)

Pàgina inicial
Delete this message
Reply to this message
Autor: Andrzej Filip
Data:  
A: exim-users
CC: mb
Assumpte: Re: [Exim] lmtp transport: verifying address (LMTP callout)
Matt Bernstein wrote:
> At 08:11 +0100 Matt Bernstein wrote:
>
>
>>On Apr 24 Andrzej Filip wrote:
>>
>>
>>>Is it possible to make exim verify recipient addresses delivered via
>>>lmtp (socket) transport ? [LMTP callout]
>>
>>Kind of. Something like (RCPT ACL):
>>
>
>
> Oops:
>
>    deny    domains = +local_domains

>
>>         !verify = recipient/callout=10s,defer_ok
>>         message = local recipient failed to verify

>
>
> I forgot the other magic (namely to use manualroute rather than accept):
>
> [routers]
>
> lmtp:
> driver = manualroute
> domains = localimap
> transport = lmtpsock
> route_list = * localhost # but irrelevant if you're using a socket!
> log_as_local
>
> local_user:
>   driver = redirect
>   domains = +local_domains
>   check_local_user        # if you like
>   data = $local_part@localimap
>   redirect_router = lmtp

>
> [transports]
>
> lmtpsock:
> driver = lmtp
> socket = /var/lib/imap/socket/lmtp
> batch_max = 1000
> user = cyrus
>
>
> Having thought about this a little more, I'm not sure this does exactly
> what you want. Hope it's at least a start though!


I have tried to test it with no success [Exim-4.30]
Exim delivers to cyrus via the socket but fails to verify cyrus recipients.

Below please find line I have inserted to "out of the box" configure file:

1) create list of cyrus domains add the list to list of local domains

domainlist cyrus_domains = example.net : example.com
domainlist local_domains = @ : +cyrus_domains

2) add cyrus verification to ACL just before local domains check

   deny     domains = +cyrus_domains
            !verify = recipient/callout=10s,defer_ok
            message = local recipient failed to verify


   accept  domains       = +local_domains
           endpass
           verify        = recipient


3) add router just before localuser router (another place may be better
in the final version):

cyrus_user:
driver = manualroute
domains = +cyrus_domains
transport = cyrus_socket
route_list = * localhost
log_as_local

localuser:
driver = accept
check_local_user
transport = local_delivery
cannot_route_message = Unknown user

4) add transport

cyrus_socket:
driver = lmtp
socket = /var/lib/imap/socket/lmtp
batch_max = 1000
user = cyrus



--
Andrzej [en:Andrew] Adam Filip anfi@??? anfi@???
http://anfi.homeunix.net/ http://slashdot.org/~anfi