Hi,
Heiko Schlittermann hs@schlittermann.de (Mo 21 Nov 2016 11:50:13 CET):
a) Routing stage You need to interact with the user database dovecot uses. Either you access the user database directory (flat file, LDAP, whatever) or you use the ${readsocket…} feature of Exim to talk to dovecot.
The readsocket trick doesn't seem to work anymore.
Using $ socat STDIO UNIX:/run/dovecot/auth-master < VERSION 1 1 < SPID 16290
VERSION 1 1 USER 42 hs12 service=imap < USER 1 hs12 uid=500 gid=500 home=/var/vmail/home/h/hs12
(the spaces are tabs).
But using Exim
exim -be '${readsocket{/run/dovecot/auth-userdb}{VERSION\t1\t1\nUSER\t1\hs12\tservice=imap\n}}'
does not work. Exim closes the sending side right after the final \n with shutdown(2). Dovecot seems to see this as if the connection should be closed now and closes the connection, w/o any response.
As it's not unusual to shutdown(2) the sender if the message is sent, I'd see this as a bug on the dovecot side. There is no reason to consider the connection as dead, just because the sender closed its sending side of the connection.
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 ------------ -