====== Dovecot (MDA) ====== Dovecot ist ein vielseitiger Mail-Delivery Agent und IMAP / POP Server, der gut mit [[postfix]] zusammenarbeitet. ===== Gemeinsame Mailverzeichnisse (Shared Folders) ===== http://blog.sentico.nl/2010/dovecot-public-folders-with-group-acls/ ===== Umwandlung Maildir in mdbox ===== Es gibt [[https://wiki2.dovecot.org/MailboxFormat|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 halten((Mehr Infos auch unter https://www.heinlein-support.de/sites/default/files/Dovecot-mdbox-Mailperformance_0.pdf und https://wiki2.dovecot.org/Migration/MailFormat)). ''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 [[https://wiki2.dovecot.org/MailboxFormat/dbox|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 - Postfach / alle Postfächer in der Domain sichern - Alle Verzeichnisse "cur", "tmp", "new", ".*" in ein neues Verzeichnis ''[mailbox]_maildir" verschieben - Verzeichnisse "mailboxes" und "storage" in dem neuen ''mdbox''-Postfach anlegen - 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/