Sun, 16 Dec 2007
procmail + dovecot
Wer einen eigenen Mailserver betreibt, und für das imap-Protokoll Dovecot einsetzt, bekommt unter Umständen Probleme mit dem Einsatz
des Mailfilters Procmail.
Die gestartete imap-Session wird nach Löschung einzelner Nachrichten unterbrochen, und man wird
aufgefordert, die entsprechende Mailbox neu zu öffnen. In mutt
beispielsweise erscheint die Meldung: �Mailbox is in inconsistent state, please relogin�, und
auch der Webmailer Squirrelmail muckt herum. In den
Dovecot-logs erscheinen Hinweise wie:
dovecot: 2007-12-16 16:10:18 Error: IMAP(user): Maildir /home/user/Maildir sync: UID inserted in the middle of mailbox (787 > 784, file = msg.cA8oG:2,)
dovecot: 2007-12-16 16:10:18 Info: IMAP(user): Disconnected: Mailbox is in inconsistent state, please relogin
Nachdem ich mich schon fast mit dem regelmäßigen re-login abgefunden hatte, gab's heute endlich die Lösung: in der Datei /etc/procmailrc muss einfach nur stehen:
MAILDIR = $HOME/Maildir
DEFAULT = $MAILDIR/
Nichts also mit dem vollständigen Pfad $MAILDIR/new oder $MAILDIR/cur, wie ich zuerst dachte. Das liegt daran, dass Procmail neue Mails - anders als Dovecot - im Format msg.inode_number ablegt. Markiert man nun eine Nachricht als gelöscht, wird die inode-Nummer frei und daraufhin sofort neu vergeben - was zu doppelten Dateinamen führt, und Mail-User-Agents verwirrt. Gibt man allerdings Procmail die Anweisung, in das oberste Maildir-Verzeichnis zu speichern, wird eine andere Nachrichtenbezeichnung gewählt, und das Problem behoben. :-)
posted at: 18:30 | path: /2007 | permanent link to this entry
| 0 comments |