Pigeonhole bug: corrupted redirected emails
Peter Williams
peter at newton.cx
Thu Jul 1 17:10:28 EEST 2021
Hello,
(Please CC me on any replies since I'm not subscribed to this mailing
list.)
I'm writing to report a bug that I just ran into, involving
Sieve/Pigeonhole message redirections. I recently added a rule
involving redirections and the redirected messages were getting
corrupted. I traced the issue down to the fact that an Mbox-style
"From " header line was getting intermixed with the message headers --
note the entry between the two "Received:" headers in this example,
which shows the text being delivered to the MTA on stdin:
X-Sieve: Pigeonhole Sieve 0.4.24 (124e06aa)
X-Sieve-Redirected-From: peter
Delivered-To: peter
Received: from dovecot
by newton.cx with LMTP id xxx
for <peter>; Thu, 01 Jul 2021 04:32:50 +0000
From peter at newton.cx Thu Jul 01 04:32:50 2021
Received: from xxx
by newton.cx with esmtpsa xxx
(Exim 4.94.2)
(envelope-from <peter at newton.cx>)
id xxxx
for peter at newton.cx; Thu, 01 Jul 2021 04:32:50 +0000
Message-ID: <xxx>
Subject: qqtestqq
This was happening with trivial test messages, and trivial Sieve rules,
but I can provide specifics if they would be helpful.
Versions: CentOS 7.9.2009; Dovecot 2.2.36; Pigeonhole 0.4.24; Exim
4.92.2.
Below I've added the output of `dovecot -n`. My `sendmail_path` setting
was empty before, but as a workaround I've set it to a wrapper script
that strips out everything before the `From `, "solving" the problem.
Thanks so much for building Dovecot, I've been using it with great
success for more than a decade!
Best,
Peter
=========================================================
# 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.24 (124e06aa)
# OS: Linux 4.14.210-rh241-20201203010913.xenU.x86_64 x86_64 CentOS
Linux release 7.9.2009 (Core) ext3
# Hostname: newton.cx
auth_username_format = %Ln
mail_location = mdbox:/var/spool/mail/%n
mail_plugins = zlib
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 index ihave duplicate mime foreverypart extracttext
mbox_write_locks = fcntl
namespace inbox {
hidden = no
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
separator = .
type = private
}
passdb {
driver = pam
}
plugin {
recipient_delimiter = +
sieve = ~/.dovecot.sieve
sieve_before = /etc/dovecot/dspam.sieve
sieve_dir = /var/lib/sieve-users/%u
sieve_global_dir = /etc/dovecot/sieve-global
zlib_save = gz
zlib_save_level = 7
}
protocols = imap pop3 lmtp sieve
sendmail_path = /usr/sbin/dovecot-sieve-sendmail.sh
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service managesieve-login {
inet_listener sieve {
address = 127.0.0.1
port = 4190
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
ssl_cert = </etc/letsencrypt/live/newton.cx/fullchain.pem
ssl_key = # hidden, use -P to show it
userdb {
driver = passwd
}
protocol lmtp {
mail_plugins = zlib sieve
}
protocol lda {
mail_plugins = zlib sieve
}
protocol imap {
mail_max_userip_connections = 20
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
More information about the dovecot
mailing list