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# oder http://wiki.dovecot.org/TestInstallation
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:
A LOGIN <username> <pass> # Einloggen A LIST "" * # Alle Ordner auflisten A LIST INBOX * # Unterordner von INBOX auflisten A SELECT INBOX # Mailbox INBOX auswählen A FETCH 1:* (FLAGS) # Flags für 1:* (alle Nachrichten) abrufen A FETCH 1:* (BODY.PEEK[HEADER.FIELDS (SUBJECT)]) # Betreff für alle Nachrichten holen A FETCH 1:* (FLAGS INTERNALDATE) # Diverse Felder für alle Nachrichten abrufen A FETCH 2 all # Nachricht 2 holen A FETCH 2 body[text] # Nachricht 2 body holen A LOGOUT # Ausloggen