LMTP doesn't save to +mailbox
Since switching to lmtp in dovecot, mail to user+mailboix@example.com does not get saved in ‘.mailbox’ as it did with LDA, instead it gets saved into the INBOX. If it matters, these are users who do NOT have a ~/.active_sieve file. I could understand (though it would bene a bit annoying) if the save overrode this mechanism.
I did add lmtp_save_to_detail_mailbox = yes in the protocol lmtp block
protocol lmtp { postmaster_address = postmaster@covisp.net # required mail_plugins = quota sieve info_log_path = /var/log/dovecot-lmtp.log lmtp_save_to_detail_mailbox = yes }
This is the error I am getting when sending to luser+covisp@covisp.net
lmtp(luser@covisp.net)<91193><EqkiJV70A105ZAEAIdGjjQ>: Error: sieve: msgid=<A3ED963A-97FB-4A1F-9F09-45F2AEA96CF6@kreme.com>: failed to store into mailbox 'covisp': Mailbox doesn't exist: covisp
lmtp(luser@covisp.net)<91193><EqkiJV70A105ZAEAIdGjjQ>: Error: sieve: Execution of script /usr/lib/dovecot/sieve/default.sieve failed with unsuccessful implicit keep
cat /usr/lib/dovecot/sieve/default.sieve [13:32] [/var/log]
require "fileinto"; if header :contains "X-spam-flag" "YES" { fileinto "Junk"; }
(This file hasn’t changed in a year, so it worked fine with the lda instead of the lmtp setup. I mean, I can probably just write a sieve to do it. Let me think…
if header :regex "to" “+(.*)@" { fileinto :create “${1}"; stop; }
Seems like it should work. Should I add this to default.sieve?
2.3.6 (7eab80676): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 0.5.6 (92dc263a)
OS: FreeBSD 11.2-RELEASE-p10 i386
Hostname: mail.covisp.net
auth_failure_delay = 5 secs auth_mechanisms = PLAIN LOGIN default_client_limit = 4096 default_process_limit = 1024 default_vsz_limit = 768 M disable_plaintext_auth = no first_valid_uid = 89 imap_id_log = * login_log_format_elements = user=<%u> %r %m %c mail_location = maildir:~/Maildir mail_max_userip_connections = 90 managesieve_notify_capability = mailto managesieve_sieve_capability = editheader fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location = mailbox Archive { auto = subscribe special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /usr/local/etc/dovecot/sql.conf driver = sql } plugin { imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Junk imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk imapsieve_mailbox2_name = * imapsieve_mailbox3_before = file:/usr/lib/dovecot/sieve/mark-read.sieve imapsieve_mailbox3_causes = COPY imapsieve_mailbox3_name = Archive quota_rule2 = .EXPUNGED:ignore sieve = file:~/.sieve;active=~/.active_sieve sieve_default = /usr/lib/dovecot/sieve/default.sieve sieve_default_name = spamassassin sieve_extensions = +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_user_log = ~/sieve.log } service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } } service imap-login { inet_listener imaps { port = 993 ssl = yes } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } } service stats { unix_listener stats-reader { group = dovecot mode = 0666 user = } unix_listener stats-writer { group = dovecot mode = 0666 user = } } ssl_cert = </usr/local/etc/dehydrated/certs/covisp.net/fullchain.pem ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.1 userdb { args = /usr/local/etc/dovecot/sql.conf default_fields = uid=vpopmail gid=vchkpw mail_location=maildir:/usr/local/virtual/%u/Maildir mail=maildir:/usr/local/virtual/%u/Maildir driver = sql } protocol imap { mail_plugins = " imap_sieve" } protocol lmtp { info_log_path = /var/log/dovecot-lmtp.log lmtp_save_to_detail_mailbox = yes mail_plugins = quota sieve postmaster_address = postmaster@covisp.net }
On 14 Jun2019, at 13:41, @lbutlr via dovecot <dovecot@dovecot.org> wrote:
2.3.6 (7eab80676): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 0.5.6 (92dc263a)
OS: FreeBSD 11.2-RELEASE-p10 i386
Oops. Pasted the wrong buffer. lda_mailbox_autocreate *is* enabled.
2.3.6 (7eab80676): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 0.5.6 (92dc263a)
OS: FreeBSD 11.2-RELEASE-p10 i386
Hostname: mail.covisp.net
auth_failure_delay = 5 secs auth_mechanisms = PLAIN LOGIN default_client_limit = 4096 default_process_limit = 1024 default_vsz_limit = 768 M disable_plaintext_auth = no first_valid_uid = 89 imap_id_log = * lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes login_log_format_elements = user=<%u> %r %m %c mail_location = maildir:~/Maildir mail_max_userip_connections = 90 managesieve_notify_capability = mailto managesieve_sieve_capability = editheader fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location = mailbox Archive { auto = subscribe special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /usr/local/etc/dovecot/sql.conf driver = sql } plugin { imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Junk imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk imapsieve_mailbox2_name = * imapsieve_mailbox3_before = file:/usr/lib/dovecot/sieve/mark-read.sieve imapsieve_mailbox3_causes = COPY imapsieve_mailbox3_name = Archive quota_rule2 = .EXPUNGED:ignore sieve = file:~/.sieve;active=~/.active_sieve sieve_default = /usr/lib/dovecot/sieve/default.sieve sieve_default_name = spamassassin sieve_extensions = +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_user_log = ~/sieve.log } service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } } service imap-login { inet_listener imaps { port = 993 ssl = yes } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } } service stats { unix_listener stats-reader { group = dovecot mode = 0666 user = } unix_listener stats-writer { group = dovecot mode = 0666 user = } } ssl_cert = </usr/local/etc/dehydrated/certs/covisp.net/fullchain.pem ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.1 userdb { args = /usr/local/etc/dovecot/sql.conf default_fields = uid=vpopmail gid=vchkpw mail_location=maildir:/usr/local/virtual/%u/Maildir mail=maildir:/usr/local/virtual/%u/Maildir driver = sql } protocol imap { mail_plugins = " imap_sieve" } protocol lmtp { info_log_path = /var/log/dovecot-lmtp.log lmtp_save_to_detail_mailbox = yes mail_plugins = quota sieve postmaster_address = postmaster@covisp.net }
On 14 Jun2019, at 13:41, @lbutlr via dovecot <dovecot@dovecot.org> wrote:
This is the error I am getting when sending to luser+covisp@covisp.net
lmtp(luser@covisp.net)<91193><EqkiJV70A105ZAEAIdGjjQ>: Error: sieve: msgid=<A3ED963A-97FB-4A1F-9F09-45F2AEA96CF6@kreme.com>: failed to store into mailbox 'covisp': Mailbox doesn't exist: covisp
lmtp(luser@covisp.net)<91193><EqkiJV70A105ZAEAIdGjjQ>: Error: sieve: Execution of script /usr/lib/dovecot/sieve/default.sieve failed with unsuccessful implicit keep
Did several doveadm reload to no effect. Finally stopped dovecot complexly and restarted it and reloaded postfix for good measure and the errors went away.
Grmbl.
It works now, and it looks like Junk status takes precedence, so that’s good!
-- My little brother got his arm stuck in the microwave. So my mom had to take him to the hospital. My grandma dropped acid this morning, and she freaked out. She hijacked a busload of penguins. So it's sort of a family crisis. Bye!
participants (1)
-
@lbutlr