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