Dovecot unterhält zum schnelle Zugriff auf Mails im Maildir-Verzeichnis eines Benutzers einen Index zu jedem Postfach. Werden Mails direkt in ein solches Postfach zugestellt, ohne dass Dovedot dies weiss kann dieser Index fehlerhaft sein und muss neu aufgebaut werden. Um dies zu vermeiden können Mails durch den Mailserver an Dovecot weitergeleitet werden, damit dieses die Zustellung selbst übernimmt.
Wichtig: Diese Anleitung ist ein Teil von Mailserver einrichten und setzt voraus, dass bereits ein Mailserver auf OpenSMTPd und Dovecot2 installiert und konfiguriert wurde!
Die Konfiguration von Dovecot und OpenSMTPd muss angepasst werden.
Damit Dovecot Mails zur Zustellung akzeptiert muss LMTP aktiviert werden.
Die Zeile protocols wird um lmtp ergänzt und der Service mit einem Unix-Socket eingerichtet.
# lmtp um Mails des Mailservers ins Maildir des Benutzers einzusortieren protocols = imap lmtp
Sicherstellen, dass in der 10-master.conf folgender Eintrag steht:
service lmtp { unix_listener lmtp { #mode = 0666 }
Um die lokale Zustellung (das Einsortieren der Mails in das Maildir-Verzeichnis der Benutzer) durch Dovecot durchführen zu lassen wird in den entsprechenden Zeilen der /usr/local/etc/mail/smtpd.conf einfach jeweils der Teil deliver to maildir ersetzt durch deliver to lmtp „/var/run/dovecot/lmtp“ (wobei hier der Pfad des lmtp-Sockets von Dovecot hinterlegt wird).
# Zuerst werden Zertifikat und Schluessel festgelegt pki mail.example.com certificate "/usr/local/etc/mail/certs/mail.example.com.crt" pki mail.example.com key "/usr/local/etc/mail/certs/mail.example.com.key" # Um nur lokale Mails zuzustellen kann der smtpd an localhost lauschen # listen on localhost # # Um Mails von aussen zu empfangen wir an Port 25 gelauscht und verschluesselte Verbindungen angeboten listen on re0 port 25 tls pki mail.example.com # Um den Server als Relay nutzen zu koennen muessen sich Benutzer per smtps verbinden und anmelden listen on re0 smtps pki mail.example.com auth # Tabellen setzen # Die System-Alias-Tabelle table aliases file:/etc/mail/aliases # Tabelle der Domains fuer welche Mails angenommen werden sollen table domains file:/etc/mail/domains # Tabelle der virtuellen Nutzer. Mapping von virtuellen Mailadressen auf Systembenutzer table vusers file:/etc/mail/vusers # Alles was lokal ist wird direkt zugestellt accept from local for local alias <aliases> deliver to lmtp "/var/run/dovecot/lmtp" accept from local for local deliver to lmtp "/var/run/dovecot/lmtp" # Empfangene Mails in die Maildirverzeichnisse der Benutzer zustellen: # Im einfachsten Fall koennen einfach alle Mails an die Benutzer des Systems angenommen und zugestellt werden. # accept from any for domain mail.example.com deliver to maildir # Alle Mails von aussen akzeptieren wenn sie zu den akzeptierten domains und virtuellen usern gehoert accept from any for domain <domains> virtual <vusers> deliver to lmtp "/var/run/dovecot/lmtp" # Angemeldete Benutzer (die sich per smtps gegen ihre lokalen Benutzerdaten authentifizieren) duerfen Relay nutzen accept for any relay