Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:mailserver:dovecot

Dovecot (MDA)

Dovecot ist ein vielseitiger Mail-Delivery Agent und IMAP / POP Server, der gut mit Postfix (MTA) zusammenarbeitet.

Gemeinsame Mailverzeichnisse (Shared Folders)

Umwandlung Maildir in mdbox

Es gibt mehrere Formate, die Dovecot verwenden kann, um die Postfächer zu speichern. Für virtuelle Postfächer oder große Postfächer sollte das Dovecot-eigene mdbox-Format verwendet werden. Um Maildir-Postfächer umzuwandeln kann man sich an folgende Anleitung halten1).

mdbox sieht Im Dateisystem z.B. so aus:

./
../
dovecot.index
dovecot.index.cache
dovecot.index.log
dovecot.mailbox.log
dovecot-uidlist
dovecot-uidvalidity
dovecot-uidvalidity.4fd99aa1
mailboxes/
storage/
subscriptions

Maildir sieht z.B. so aus:

./
../
cur/
.INBOX.Archives/
.Gel&APY-schte Elemente/
.Gesendete Elemente/
.Junk-E-Mail/
new/
.Sent/
tmp/
.Trash/

In der Dovecot-Konfiguration muss der Mailbox-Typ auf automatisch gestellt werden, damit Dovecot sowohl mit Maildir und mdbox Postfächern umgehen kann. Dies passiert in /etc/dovecot/conf.d/10-mail.conf. Später kann man nur noch mdbox verwenden:

#mail_location = maildir:/srv/vmail/%d/%u/
mail_location =    auto:/srv/vmail/%d/%u/
#mail_location = mdbox:/srv/vmail/%d/%u/

Falls der Mailserver in der Zeit der Umwandlung nicht benötigt wird, sollte man den Postfix beenden, damit während der Umwandlung keine neuen Mails eingehen.

sudo service postfix stop

Nun benennt man das alte Maildir-Verzeichnis um

sudo mv /srv/vmail/domain/[postfach] /srv/vmail/[domain]/[postfach]_maildir

Anschließend erstellt man ein neues Verzeichnis für mdbox und passt die Besitzrechte an

sudo mkdir /srv/vmail/[domain]/[postfach]
sudo chown vmail:vmail /srv/vmail/[domain]/[postfach]

Nun wird dsync angewendet:

sudo dsync -u [postfach] -fvR mirror maildir:/srv/vmail/[domain]/[postfach]_maildir

Anmerkungen zu diesem Befehl:

  • [postfach] muss der Anmeldename sein, der bei der IMAP Anmeldung verwendet wird, es wird dann über Dovecot das korrekte Postfach gesucht und verwendet. Deshalb darf der Dovecot-Dienst nicht beendet werden.
  • Die Option -f bewirkt eine volle Synchronisierung, -v (verbose) gibt Informationen zum Abgleich-Prozess aus, -R sagt, dass vom Ziel zum Ursprung synchronisiert wird (sollte keine Auswirkung haben, wenn man die Option weglässt)

Die Umwandlung kann auch andersherum gemacht werden:

sudo mkdir user@domain_mdbox
sudo chown vmail:vmail user@domain_mdbox
dsync -u user@domain -fv mirror mdbox:/srv/vmail/domain/user@domain_mdbox
sudo mv user@domain user@domain_maildir
sudo mv user@domain_mdbox user@domain

Achtung: Wenn die Verzeichnisstruktur von mdbox in einem Verzeichnis existiert, erkennt Dovecot mit der Einstellung auto: nur noch das mdbox-Format und nicht mehr das Maildir-Format. Wurde die Synchronisierung fälschlicherweise so aufgerufen, dass Dovecot in dem Mailverzeichnis die mdbox-Dateien erstellt hat, muss man sie manuell löschen oder in ein neues Verzeichnis verschieben.

Problem: Gemischte Postfächer mit der Dovecot Auto-Erkennung

Leider funktioniert in Dovecot 2.0.19 die automatische Erkennung des Postfach-Formats mit mail_location = auto:/… nicht wie erwartet, sodass Dovecot Mails im mdbox-Format abspeichert und liest, obwohl das Postfach im Maildir-Format vorliegt. Für den Nutzer sind dann alte E-Mails nicht mehr sichtbar. Hier eine Anleitung, wie man „gemischte“ Mailboxen entzerrt und in das mdbox–Format umwandelt:

Wenn Verzeichnis Teile eines Maildir-Verzeichnisses enthält(*), dann

  1. Postfach / alle Postfächer in der Domain sichern
  2. Alle Verzeichnisse „cur“, „tmp“, „new“, „.*“ in ein neues Verzeichnis [mailbox]_maildir„ verschieben - Verzeichnisse „mailboxes“ und „storage“ in dem neuen mdbox''-Postfach anlegen
  3. Zugriffsrechte auf den Dovecot-Nutzer übertragen

Beispiel-Befehle:

#Sichern
sudo tar -czf /srv/vmail/[domain]/media/backup/[datum]_sic_[domain].tgz

#Verzeichnisse erstellen und Rechte anpassen
sudo mkdir [mailbox]_maildir
sudo chown vmail:vmail [mailbox]_maildir

#Dateien verschieben
cd [mailbox]
sudo mv sudo mv cur new tmp .Sent .Trash ../[email]_maildir/
#prüfen, ob Verzeichnisse für mdbox vorhanden sind
ls -la
sudo mkdir storage
sudo mkdir mailboxes
sudo chown vmail:vmail *
#Synchronisation zur Sicherheit 2x ausführen
sudo dsync -R -f -v -u [mailbox] mirror maildir:/srv/vmail/[domain]/[mailbox]_maildir/

Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.

software/mailserver/dovecot.txt · Zuletzt geändert: 2017/01/10 22:49 von khopf