Page 1 of 1

Bug: Dovecot/Sieve redirect

Posted: Tue 24. Feb 2026, 07:42
by BuCo
Ich bin sicher, dass die Ursache des Problems bei KeyHelp liegt
nicht gnaz sicher, ob die Ursache komplett bei Keyhelp liegt


Server-Betriebssystem + Version

Code: Select all

root@kh:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.3
ID=debian

Eingesetzte Server-Virtualisierung-Technologie
Proxmox/kvm/QEMU


KeyHelp-Version + Build-Nummer

Code: Select all

root@kh:~# keyhelp version
KeyHelp          : 25.3 (Build 3569)
Operating System : Debian 13.3 (64-bit)

Problembeschreibung / Fehlermeldungen
Über den Webmailer habe ich ein Sieve-Script angelegt, dass eine Kopie aller eingender Mails in eine Archivmailbox ablegen soll.

Inhalt von /var/mail/vhosts/busch-dentalshop.de/kannweg/sieve/Standard.sieve

Code: Select all

# rule:[Test]
if true
{
	redirect :copy "mailarchiv@archiv.busch.eu";
}

Erwartetes Ergebnis
Sowohl in der Mailbox des eigentlichen Empfängers und in der Archivmailbox sollte die gleiche E-Mail auftauchen.

Tatsächliches Ergebnis
In der Archivmailbox kommt keine Kopie an.


Zusätzliche Informationen
Über den Befehl "journalctl --since="5min ago" -u postfix -u dovecot" ist folgende Fehlermeldung zu sehen:

Code: Select all

Feb 24 07:12:31 kh.busch.eu dovecot[72347]: lmtp(kannweg@busch-dentalshop.de)<72857><r4MfOE9BnWmZHAEAhupXMw>: Error: duplicate db: transaction: file_dotlock_open(/var/mail/vhosts/kannweg/busch-dentalshop.de/.dovecot.lda-dupes) failed: No such file or directory
An dieser kann man erkennen, dass irgendwo username und domain vertauscht werden.

Dieser Fehler ist in der Konfigurationsdatei /etc/dovecot/conf.keyhelp.d/10-auth.conf zu finden:

Code: Select all

userdb sql {
    query = \
            SELECT CONCAT('/var/mail/vhosts/', '%{user|username}', '/', '%{user|domain}') AS home, \
                   'vmail' AS uid, \
                   'vmail' AS gid, \
                   CONCAT(size_max, 'B') AS quota_storage_size \
            FROM   mail_users \
            WHERE  email = '%{user}'
Von daher ist es auf jeden Fall schonmal ein Bug seitens Keyhelp.

Dovecot legt einen Pfad /var/mail/vhosts/kannweg/busch-dentalshop.de/ mit folgendem Inhalt an:

Code: Select all

root@kh:/var/mail/vhosts/kannweg/busch-dentalshop.de# ls -a -R
.:
.  ..  .dovecot.lda-dupes  .dovecot.lda-dupes.locks

./.dovecot.lda-dupes.locks:
.  ..
Ändert man den o. a. Teil der Konfiguration in

Code: Select all

userdb sql {
    query = \
            SELECT CONCAT('/var/mail/vhosts/', '%{user|domain}', '/', '%{user|username}') AS home, \
                   'vmail' AS uid, \
                   'vmail' AS gid, \
                   CONCAT(size_max, 'B') AS quota_storage_size \
            FROM   mail_users \
            WHERE  email = '%{user}'
und vertauscht damit username und domain, dann ist der o.a. Fehler weg und die Ausgabe von journalctl ist wie folgt:

Code: Select all

Feb 24 07:34:29 kh.busch.eu postfix/qmgr[75916]: 0FFFE541077: from=<kannweg0815@gmx.de>, size=7391, nrcpt=1 (queue active)
Feb 24 07:34:29 kh.busch.eu postfix/smtpd[76006]: disconnect from mout.gmx.net[212.227.15.19] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(76198): Connect from local
Feb 24 07:34:29 kh.busch.eu postfix/pickup[75915]: 2842754145B: uid=5000 from=<kannweg0815@gmx.de>
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(kannweg@busch-dentalshop.de)<76198><g/xBCXVGnWmmKQEAhupXMw>: sieve: msgid=<6822c121-6311-49a0-9d42-ebc59075f623@gmx.de>: redirect action: forwarded to <mailarchiv@archiv.busch.eu>
Feb 24 07:34:29 kh.busch.eu postfix/cleanup[76195]: 2842754145B: message-id=<6822c121-6311-49a0-9d42-ebc59075f623@gmx.de>
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(kannweg@busch-dentalshop.de)<76198><g/xBCXVGnWmmKQEAhupXMw>: sieve: msgid=<6822c121-6311-49a0-9d42-ebc59075f623@gmx.de>: stored mail into mailbox 'INBOX'
Feb 24 07:34:29 kh.busch.eu postfix/lmtp[76197]: 0FFFE541077: to=<kannweg@busch-dentalshop.de>, relay=kh.busch.eu[private/dovecot-lmtp], delay=0.12, delays=0.09/0.01/0.01/0.01, dsn=2.0.0, status=sent (250 2.0.0 <kannweg@busch-dentalshop.de> g/xBCXVGnWmmKQEAhupXMw Saved)
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(76198): Disconnect from local: Logged out (state=READY)
Feb 24 07:34:29 kh.busch.eu postfix/qmgr[75916]: 0FFFE541077: removed
Feb 24 07:34:29 kh.busch.eu postfix/qmgr[75916]: 2842754145B: from=<kannweg0815@gmx.de>, size=8626, nrcpt=1 (queue active)
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(76198): Connect from local
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(mailarchiv@archiv.busch.eu)<76198><cZYXCnVGnWmmKQEAhupXMw>: sieve: msgid=<6822c121-6311-49a0-9d42-ebc59075f623@gmx.de>: stored mail into mailbox 'INBOX'
Feb 24 07:34:29 kh.busch.eu postfix/lmtp[76197]: 2842754145B: to=<mailarchiv@archiv.busch.eu>, relay=kh.busch.eu[private/dovecot-lmtp], delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (250 2.0.0 <mailarchiv@archiv.busch.eu> cZYXCnVGnWmmKQEAhupXMw Saved)
Feb 24 07:34:29 kh.busch.eu dovecot[75935]: lmtp(76198): Disconnect from local: Logged out (state=READY)
Feb 24 07:34:29 kh.busch.eu postfix/qmgr[75916]: 2842754145B: removed
Also eigentlich fehlerfrei und eigentlich sollte die E-Mail einmal beim eigentlichen Empfänger als auch beim Archivpostfach gelandet sein.
Ankommen tut sie aber nur beim eigentlichen Empfänger.

Wäre schön, wenn mir dabei jemand helfen könnte.

VG
Norbert

Re: Bug: Dovecot/Sieve redirect

Posted: Tue 24. Feb 2026, 09:28
by BuCo
Vergesst bitte den letzten Teil meines Posts
Also eigentlich fehlerfrei und eigentlich sollte die E-Mail einmal beim eigentlichen Empfänger als auch beim Archivpostfach gelandet sein.
Ankommen tut sie aber nur beim eigentlichen Empfänger.
Nach der Änderung der Konfigurationsdatei /etc/dovecot/conf.keyhelp.d/10-auth.conf funktioniert alles.

Daher bitte nur in der nächsten Keyhelp-Version den Fehler in der Konfigurationsdatei beheben.

VG

Re: Bug: Dovecot/Sieve redirect  [GELÖST]

Posted: Tue 24. Feb 2026, 09:41
by Alexander
Hallo,

Danke fürs Melden, das wird natürlich mit dem nächsten Update gefixt!