Marc Herbrechter
2008-Oct-27 19:12 UTC
[Dovecot] Empty/corrupt mail leads to duplicate delivery
Hi,
when the attached mail was stored in a maildir, fetching mail via POP3
lead to multiple delivery of mails in that maildir to the client
(Outlook). I replaced the domain with dots.
This is the dovecot configuration:
--snip--
protocols = imap imaps pop3 pop3s
listen = *
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/dovecot/server.pem
ssl_key_file = /etc/ssl/dovecot/server.key
mail_location = maildir:~/.maildir
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
auth default {
mechanisms = plain
passdb pam {
args = "*"
}
userdb passwd {
}
user = root
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
--snip--
Version: dovecot-1.1.4-r1 (Gentoo)
Gentoo applies the attached "expire" patch.
I tried to reproduce the behavior, but when I send an empty mail via
telnet, nothing happens.
The box is running Amavis, don't know if that helps.
--
Mit freundlichen Gr??en,
with kind regards,
Marc Herbrechter <mh at zebroc.de>
-------------- next part --------------
# HG changeset patch
# User Timo Sirainen <tss at iki.fi>
# Date 1223320000 -10800
# Node ID 96dfe8fb57b8e061b4339cbf3d50fc8067dc50ec
# Parent 9f95b3c28cc392b6c9534a69e6a2aa75ea54f5eb
Expire plugin was crashing because of previous change.
--- a/src/plugins/expire/expire-plugin.c Mon Oct 06 19:24:03 2008 +0300
+++ b/src/plugins/expire/expire-plugin.c Mon Oct 06 22:06:40 2008 +0300
@@ -99,6 +99,7 @@ expire_mailbox_transaction_commit(struct
{
struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(t->box);
struct expire_transaction_context *xt = EXPIRE_CONTEXT(t);
+ struct mailbox *box = t->box;
time_t new_stamp;
bool update_dict = FALSE;
int ret;
@@ -117,13 +118,14 @@ expire_mailbox_transaction_commit(struct
i_free(xt);
return -1;
}
+ /* transaction is freed now */
+ t = NULL;
if (xt->first_expunged || xt->saves) T_BEGIN {
const char *key, *value;
key = t_strconcat(DICT_PATH_SHARED, expire.username, "/",
- t->box->storage->ns->prefix,
- t->box->name, NULL);
+ box->storage->ns->prefix, box->name, NULL);
if (!xt->first_expunged && xt->saves) {
/* saved new mails. dict needs to be updated only if
this is the first mail in the database */
-------------- next part --------------
Return-Path: <htefunny at dionis.r35.nalog.ru>
X-Original-To: wolf at ................de
Delivered-To: wolf at ................de
Received: from localhost (localhost [127.0.0.1])
by mail.................de (Postfix) with ESMTP id 07E27B8047D
for <wolf at ................de>; Mon, 27 Oct 2008 14:08:41 +0100 (CET)
Message-Id: <20081027130845.07E27B8047D at mail.................de>
Date: Mon, 27 Oct 2008 14:08:41 +0100 (CET)
From: htefunny at dionis.r35.nalog.ru
To: undisclosed-recipients:;
Content-Length: 0
Lines: 0
Timo Sirainen
2008-Oct-29 15:16 UTC
[Dovecot] Empty/corrupt mail leads to duplicate delivery
On Mon, 2008-10-27 at 20:12 +0100, Marc Herbrechter wrote:> Hi, > > when the attached mail was stored in a maildir, fetching mail via POP3 > lead to multiple delivery of mails in that maildir to the client > (Outlook). I replaced the domain with dots.Sounds like an Outlook bug. The only thing Dovecot could do wrong is to provide duplicate UIDL for the messages. You could verify this yourself by giving UIDL command and seeing if there are duplicates. But I highly doubt that, because you're using:> pop3_uidl_format = %08Xu%08XvWhich means your UIDL is based on message UID and UIDVALIDITY. Neither depend on message contents. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 197 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20081029/c703b22c/attachment-0002.bin>