[Dovecot] Sieve/pigeonhole with Exim and Dovecot LDA
Sebastian Arcus
shop at open-t.co.uk
Mon May 20 18:12:25 EEST 2013
I am trying to configure my Dovecot installation to provide
Vacation/Out-of-the-office emails using the Sieve plugin. My setup is a
little bit peculiar:
Internet Internet
| ^
V |
Provider's POP3 server Provider's SMTP server
| ^
V | --------------
getmail | my server
| |
V |
Dovecot LDA ---> Sieve/vacation -----> Exim
|
V
Dovecot my server
---------------
Sorry for the ASCII art above - I thought it would be quicker than
trying to explain.
The trouble I'm having is getting the Dovecot LDA to send successfully
through the local exim instance out-of-office replies back to the
provider's smtp server - when receiving fresh email from the provider
(through getmail). Dovecot LDA tries to send the replies - but Exim
freezes them because they don't contain the sender data in the format
Exim wants it. Exim can either receive sender info:
1. On the command line, after the "-f" command line switch (but only
when called by root or other users passed under "trusted_users" in
exim.conf).
2. In the header of the email - in the "From:" field - but only,
apparently, if it was called with the "-t" switch. Full exim command
line documentation here:
http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html
I can't figure out what command line options the Dovecot LDA is using
when calling exim. I also couldn't find a way to get Dovecot LDA to pass
extra options to exim, when trying to send email. The exim log has the
following:
2013-05-20 15:35:15 1UeRBB-0001xc-Ar Frozen (message created with -f <>)
I've inspected the frozen message - and it has the correct sender in the
"From:" field - but it seems that exim isn't using that, because it
wasn't called with the "-t" option.
In dovecot.conf, I have the following for Dovecot LDA and sieve:
protocols = imap sieve
protocol lda {
log_path = /var/log/dovecot/dovecot-deliver.log
info_log_path = /var/log/dovecot/dovecot-deliver-info.log
postmaster_address = admin at mydomain.co.uk
hostname = mydomain.co.uk
mail_plugins = sieve
mail_plugin_dir = /usr/lib/dovecot
sendmail_path = /usr/sbin/exim
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
plugin {
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
Dovecot LDA is called by getmail using the vmail user - and using the
same user it is trying to call exim to deliver the out-of-office replies.
I'm using Dovecot 2.2.1 with pigeonhole 0.4.0.
I can post the rest of dovecot.conf if it would help. I've read through
the stuff at dovecot.org - but all the Dovecot LDA and exim info refers
to Exim passing email to Dovecot using Dovecot LDA - not Dovecot LDA
sending email out using Exim.
More information about the dovecot
mailing list