Hi Rical,

Rical Jasan <ricalja...@pacific.net> (Di 29 Nov 2016 08:21:11 CET):
> On 11/28/2016 03:19 AM, Drav Sloan wrote:
> >> 2016-11-27 23:35:54 [7002] cwd=/var/local/spool/exim 3 args:
> >> /usr/local/sbin/exim -Mc 1cBGTh-0001ou-9V
> >> 2016-11-27 23:35:54 [7002] 1cBGTh-0001ou-9V ** u...@domain.tld
> >> F=<honeycutt_o...@pachijimenez.com> P=<honeycutt_o...@pachijimenez.com>
> >> R=dovecot T=lmtp: LMTP error after RCPT TO:<u...@domain.tld> 550 5.1.1
> >> <u...@domain.tld> User doesn't exist: u...@domain.tld
> > 
> > Given that the final delivery point is LMTP, I assume you are delivering
> > onto something like Cyrus IMAP?
> 
> Dovecot's LMTP server, over a UNIX socket.  Works fine, when it's
> actually used, as you can see above.  :)


> > In which case, your router which delivers onto the LMTP process will 
> > probably
> > not do local_part verification, which causes the recipient/callout to work
> > for any local_part.
> > 
> > You can verify that by doing:
> > exim -bt somefakelocal_p...@pachijimenez.com

Using `exim -bt` or `exim -bv` you can verify the routing, that is,
you're checking, if there a chance for a successfull delivery. This
approach works, if your routers are able to verify the existence of a
given user (works for any kind of lookups (passwd, ldap, *sql, …).

    verify = recipient

in some ACL asks for "static" verification, that is, it's roughly
equivalent to `exim -bv`. It doesn't help, if you can't do some kind of
lookup.

    verify = recipient/callout

checks the routing (probaly quite useless, if you can't access a user
database) and then does a delivery attempt (EHLO, MAIL FROM, RCPT TO,
QUIT) to the final destination.

For ACL testing `-bv`, `-bt` doesn't help. You need

    `exim -bhc <sender/ip>` 

Best used with swaks:
    
    swaks -f … -t … --pipe 'exim -bhc <sender-ip>'


> I guess my question is now, is there a way to make Exim use the
> transport and actually follow-through with the callout?  See my response
> to Jeremy on the list (sorry, I should have CC'd you), where another

In your case callout verification probably doesn't work, as long as you
use driver=lmtp, because callouts are done only for *remote* deliveries,
and LMTP isn't considered remote. Though, there is some trick

    lmtp_transport:
        driver = smtp
        protocol = lmtp
        socket = /run/dovecot/lmtp # or whatever
        …


BTW …
> >   # Get the local part minus any suffixes
> >   warn set acl_m9 = ${sg{${lc:$local_part}}{[+-].+\$}{}}

We have named acl variables meanwhile:  set acl_m_foo = …

    Best regards from Dresden/Germany
    Viele Grüße aus Dresden
    Heiko Schlittermann
-- 
 SCHLITTERMANN.de ---------------------------- internet & unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --------------- key ID: F69376CE -
 ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 ------------ -

Attachment: signature.asc
Description: Digital signature

-- 
## 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