[Dovecot] Small issue with "submission host"
Hi everyone,
I'm facing a small issue with the lda/lmtp "submission_host" feature in dovecot 2.0.14.
When sending mail to MTA (in case of sieve filter forwarding for example), dovecot pass a RCPT TO command just after the EHLO. He's missing the MAIL FROM command. Therefore, my MTA show me a warning like this : "improper command pipelining after EHLO".
How can i solve that ?
Regards,
Raphael
On Thu, Oct 25, 2012 at 03:09:47PM +0200, Raphael Ordinas wrote:
When sending mail to MTA (in case of sieve filter forwarding for example), dovecot pass a RCPT TO command just after the EHLO. He's missing the MAIL FROM command. Therefore, my MTA show me a warning like this : "improper command pipelining after EHLO".
Works for me with latest and greatest although I'm not using the 'submission_host' option but pure LMTP Unix socket:
[...] service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } }
Best to show your 'doveconf -n' for more thoughts.
Regards Thomas
Hi,
Here's the doveconf -n output :
# doveconf -n
# 2.0.14: /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 8.1-RELEASE-p5 amd64
auth_mechanisms = plain login
auth_username_format = %Lu
auth_worker_max_count = 90
default_process_limit = 1024
first_valid_gid = 1500
first_valid_uid = 1500
hostname = mailhost.mydomain.tld
last_valid_gid = 1500
last_valid_uid = 1500
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = *
mail_gid = 1500
mail_location = maildir:~/Maildir
mail_plugins = acl quota mail_log notify
mail_privileged_group = mail
mail_uid = 1500
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date
passdb {
   args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
plugin {
   acl = vfile:/usr/local/etc/dovecot-acls:cache_secs=300
   autocreate = Sent
   autocreate1 = Trash
   autocreate2 = Drafts
   autocreate3 = Spam
   autocreate4 = Faux-positif
   autosubscribe = Sent
   autosubscribe1 = Trash
   autosubscribe2 = Drafts
   autosubscribe3 = Spam
   autosubscribe4 = Faux-positif
   autosubscribe5 = INBOX
   mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename
   mail_log_fields = uid box msgid size
   quota = maildir:User quota
   quota_rule = Trash:storage=+100M
   quota_warning = storage=95%% quota-warning 95
   quota_warning2 = storage=80%% quota-warning 80
   sieve = ~/.dovecot.sieve
   sieve_before = /usr/local/lib/dovecot/sieve/backup-all.sieve
   sieve_dir = ~/sieve
}
postmaster_address = postmaster@mydomain.tld
protocols = imap lmtp sieve
quota_full_tempfail = yes
service anvil {
   client_limit = 3500
}
service auth-worker {
   user = $default_internal_user
}
service auth {
   client_limit = 5500
   unix_listener auth-master {
     group = vmail
     mode = 0660
     user = vmail
   }
   user = doveauth
}
service imap-login {
   inet_listener imap {
     port = 143
   }
   inet_listener imaps {
     port = 993
     ssl = yes
   }
}
service lmtp {
   inet_listener lmtp {
     address = 172.0.0.1
     port = 2525
   }
}
service managesieve-login {
   inet_listener sieve_deprecated {
     port = 2000
   }
   process_limit = 1024
}
service managesieve {
   process_limit = 1024
}
service quota-warning {
   executable = script /usr/local/bin/quota-warning.sh
   unix_listener quota-warning {
     user = vmail
   }
   user = dovecot
}
shutdown_clients = no
ssl = required
ssl_ca = </etc/ssl/certs/dovecot.pem
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
submission_host = smtp.mydomain.tld
userdb {
   args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
verbose_proctitle = yes
protocol lmtp {
   mail_plugins = acl quota mail_log notify sieve
}
protocol lda {
   mail_plugins = acl quota mail_log notify
}
protocol imap {
   imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
   mail_max_userip_connections = 20
   mail_plugins = acl quota mail_log notify imap_quota imap_acl
autocreate
}
protocol sieve {
   managesieve_implementation_string = Dovecot Pigeonhole
   ssl = required
}Regards,
Raphael
Le 25/10/2012 16:08, Thomas Leuxner a écrit :
On Thu, Oct 25, 2012 at 03:09:47PM +0200, Raphael Ordinas wrote:
When sending mail to MTA (in case of sieve filter forwarding for example), dovecot pass a RCPT TO command just after the EHLO. He's missing the MAIL FROM command. Therefore, my MTA show me a warning like this : "improper command pipelining after EHLO". Works for me with latest and greatest although I'm not using the 'submission_host' option but pure LMTP Unix socket:
[...] service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } }
Best to show your 'doveconf -n' for more thoughts.
Regards Thomas
On Fri, Oct 26, 2012 at 10:51:52AM +0200, Raphael Ordinas wrote:
service lmtp { inet_listener lmtp { address = 172.0.0.1 port = 2525 } }
Right, so you are using network sockets with LMTP. Probably does not answer the question why it is not working with the 'submission_host', but is there a reason why the redirects are not reinjected this way?
submission_host = smtp.mydomain.tld
Regards Thomas
Actually, LMTP inet listener is only used for delivery purpose. I separated the MTA and the MDA on distinct hosts. Incomming mails are received by the MTA which proceed to some check (anti-virus, spams, and aliases) and transport them to the MDA with LMTP.
Maybe I misunderstood something, but i don't see why LMTP is involve in a sieve forwarding process (or stuff like non delivery mail return) . According to comments in the "15-lda.conf" file :
# Binary to use for sending mails.
#sendmail_path = /usr/sbin/sendmail
# If non-empty, send mails via this SMTP host[:port] instead of
sendmail.
submission_host = smtp.mydomain.tldIf you don't use the 'submission_host' option, dovecot will forward mail with '/usr/sbin/sendmail' binary which use the forwarders you tell it to use, am i right ?
Regards,
Raphael
Le 26/10/2012 11:00, Thomas Leuxner a écrit :
On Fri, Oct 26, 2012 at 10:51:52AM +0200, Raphael Ordinas wrote:
service lmtp { inet_listener lmtp { address = 172.0.0.1 port = 2525 } }Right, so you are using network sockets with LMTP. Probably does not answer the question why it is not working with the 'submission_host', but is there a reason why the redirects are not reinjected this way?
submission_host = smtp.mydomain.tldRegards Thomas
participants (2)
- 
                
                Raphael Ordinas
- 
                
                Thomas Leuxner