Inhaltsverzeichnis

Dovecot ist ein IMAP Server. Siehe auch Courier IMAP Server oder Postfix SMTP Server.

Installation

apt-get install dovecot-core dovecot-imapd

Mailstruktur

maildirmake.dovecot /etc/skel/Maildir
maildirmake.dovecot /etc/skel/Maildir/.Drafts
maildirmake.dovecot /etc/skel/Maildir/.Sent
maildirmake.dovecot /etc/skel/Maildir/.Spam
maildirmake.dovecot /etc/skel/Maildir/.Trash
maildirmake.dovecot /etc/skel/Maildir/.Templates

Für den Systembenutzer kann man die Verzeichnisstruktur ins Heimverzeichnis kopieren. todo

cp -r /etc/skel/Maildir/ /home/user/
chown -R user:group /home/user/Maildir
chmod -R 700 /home/user/Maildir/

Um dovecot noch mitzuteilen wo die Benutzerpostfächer gespeichert sind bearbeitet man in der Datei /etc/dovecot/conf.d/10-mail.conf den Parameter mail_location.

mail_location = maildir:~/Maildir

SASL Authentifizierung

In der Datei /etc/dovecot/conf.d/10-master.conf sucht man nach service_auth, löscht es und erstellt eine eigene Sektion.

service auth {
    unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
    }
}

Um unverschlüsselte Authentifizierung abzulehnen bearbeitet man in der Datei /etc/dovecot/conf.d/10-auth.conf den Parameter auth_mechanism und fügt disable_plaintext_auth = yes hinzu.

auth_mechanism = plain login
disable_plaintext_auth = yes

Verschlüsselung

Wenn man noch kein Zertifikat hat kann man mit Certbot eines erstellen. In der Datei /etc/dovecot/conf.d/10-master.conf bearbeitet man den Bereich service imap-login falls der Port auskommentiert ist.

service imap-login {
    inet_listener imap {
        port = 143
    }
}

In der Datei /etc/dovecot/conf.d/10-ssl.conf bearbeitet man den Parameter ssl um Postfix mitzuteilen das neue Zertifikat auch zu verwenden. Siehe auch Postfix #Verschlüsselung.

ssl = required

ssl_cert = </etc/letsencrypt/live/zarat.ml/fullchain.pem
ssl_key = </etc/letsencrypt/live/zarat.ml/privkey.pem

Spam

SpamAssassin kann als Spamfilter in Postfix integriert werden. Dovecot ist dazu da die erkannten Spam Mails in den Spam Ordner zu verschieben. Dazu muss man ein neues Paket dovecot-lmtpd installieren. Das ist das integrierte local mail transfer protocol von Dovecot. Siehe Wikipedia

apt install dovecot-lmtpd

In der Datei /etc/dovecot/dovecot.conf fügt man am Ende folgendes ein.

protocols = imap lmtp

Dovecot weiss jetzt das es LMTP vverwenden soll. Konfiguriert wird es in der Datei /etc/dovecot/conf.d/20-lmtp.conf ändert man den Eintrag lmtp_save_to_detail_mailbox von no zu yes.

lmtp_save_to_detail_mailbox = yes

und im lmtp Block fügt man folgendes ein.

protocol lmtp {
  mail_plugins = $mail_plugins sieve
  postmaster_address = postmaster@zarat.ml
}

Siehe Sieve Mailfilter

Nun muss man in der Datei /etc/dovecot/conf.d/10-master.conf den Block service lmtp bearbeiten bzw den Parameter mode auskommentieren. Siehe LMTP (Local mail transfer protocol)

service lmtp {
    unix_listener /var/spool/postfix/private/dovecot-lmtp {
        mode = 0666
    }
}

Nun bearbeitet man in der Datei /etc/dovecot/conf.d/10-auth.conf den Eintrag auth_username_format.

auth_username_format = %Ln # Lowercase domainName

Nun bearbeitet man noch die Datei /etc/postfix/main.cf.

# mailbox_command =
mailbox_transport = lmtp:unix:private/dovecot-lmtp

Nun kann man Sieve installieren.

Konfiguration

todo

An die Datei /etc/dovecot/dovecot.conf wird folgendes angehängt.

namespace inbox {
  inbox = yes
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Sent {
    auto = subscribe # autocreate and autosubscribe the Sent mailbox
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Junk {
    auto = create # autocreate Spam, but don't autosubscribe
    special_use = \Junk
  }
  mailbox virtual/All { # if you have a virtual "All messages" mailbox 
    auto = no
    special_use = \All
  }
}