Dovecot-IMAP-Server installieren (Debian)
Installation
# apt-get install dovecot-imapd
Konfiguration anpassen
Mailboxen
Anpassung /etc/dovecot/conf.d/10-mail.conf um Dovecot von mbox auf Maildir umzustellen:
Zeile auskommentieren:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Neue Zeile einfügen:
mail_location = maildir:~/Maildir
Anpassung /etc/dovecot/conf.d/15-mailboxes.conf
Bei Special-Use-Ordnern Attribut auto = create
hinzufügen.
Dabei wird der Special-Use-Ordner automatisch angelegt, aber nicht vom Client abonniert. Beispiel:
mailbox Drafts { auto = create special_use = \Drafts }
Zum gleichzeitigen Abonnieren verwenden (Leider wird Inbox nicht automatisch mit abonniert):
auto = subscribe
Archiv-Ordner hinzufügen:
mailbox Archive { auto = create special_use = \Archive }
SSL-Verschlüsselung
Vgl. Details über die Einstellungen von ssl und disable_plaintext_auth im Dovecot-Wiki http://wiki.dovecot.org/SSL/DovecotConfiguration
Es kann entweder ein selbst signiertes Zertifikat oder ein anderes, z. B. ein von Letsencrypt erzeugtes, verwendet werden.
Selbst signiertes SSL-Zertifikat mit mit OpenSSL erstellen:
$ /usr/share/dovecot/mkcert.sh
Das Zertifikat wird in /etc/dovecot/conf.d/10-ssl.conf hinterlegt. Folgende Zeilen einfügen:
ssl = required ssl_cert = </etc/path/to/fullcert.pem ssl_key = </etc/path/to/private.pem
Plaintext-Authentifizierung deaktivieren
Anpassung /etc/dovecot/conf.d/10-auth.conf. Folgende Zeilen einfügen:
disable_plaintext_auth = yes # Vgl. auch ssl=required in 10-ssl.conf
Zugriff testen
SSL-Zugriff testen
Vgl. http://wiki.dovecot.org/SSL/DovecotConfiguration#
Zugriff mit OpenSSL testen:
openssl s_client -connect server.domain.tld:<port> # <port> = 993 oder "imaps"
Mögliches Ergebnis:
SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 ... ... ... TLS session ticket lifetime hint: 300 (seconds) TLS session ticket: ... ... ... Start Time: 1485649475 Timeout : 300 (sec) Verify return code: 0 (ok) --- * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
Kommunikation testen mit folgenden Befehlen:
A1 LOGIN <username> <pass> # Einloggen A1 LIST INBOX * # Inhalt von INBOX auflisten A1 SELECT INBOX # Mailbox INBOX auswählen A1 FETCH 1:* (FLAGS) # Nachricht 1 holen A1 FETCH 2 all # Nachricht 2 holen A1 FETCH 2 body[text] # Nachricht 2 body holen A1 LOGOUT # Ausloggen
Weitere Beispiele siehe http://donsutherland.org/crib/imap