[Raspberry-mailserver] – 5. Dovecot (IMAP Server)

Die Linux Philosophie ist ja „ein Programm pro Aufgabe“.
Soll bedeuten:
Unter Windows gibt es Exchange der macht alles (versenden, abholen, …).
Bei Linux gibt es z.B Exim nur zum mails versenden (oder sendmail oder oder -> einfach mal nach MTA – Mail Transfer Agent googeln).

Ich verwende für meinen Mailserver:

  1. Eximzuständig für den Mailversand
  2. Dovecotlokaler IMAP Server
  3. Fetchmailabholung der mails beim provider
  4. RoundcubeGUI für Dovecot

Dovecot (IMAP Server)
Dovecot wird als lokaler IMAP Server eingesetzt.

Die Installation erfolgt ganz einfach per aptitude

sudo modprobe ipv6sudo aptitude install dovecot-imapd

Die erste Zeile ist es nötig um das IPv6 Kernel Modul nachzuladen (sonst wird die Installation fehlschlagen).
Anschliesend die IPv6 Unterstüzung wieder abschalten (wer IPv6 haben will muss das Modul in die /etc/modules eintragen) indem die Datei /etc/dovecot/dovecot.conf um folgende Zeile erweitert wird:

listen = *

Nun sollte sich auch schon der Mailclient auf den RasPI verbinden können.
Es wird sowohl unverschlüsselt Port 143 als auch SSL-Port 993 unterstützt (allerdings wird bei SSL eine Warnung angezeigt da dass Zertifikat selbst generiert ist.
Anzeigen des Zertifikats: openssl x509 -fingerprint -in /etc/dovecot/dovecot.pem -noout

Nach abgeschlossener Installation, wenn mehrere Benutzer ihre mails auf dem Raspberry abspeichern wollen, müssen für jeden Mailbenutzer ein eigenes Linux Benutzerkonto angelegt werden:

sudo useradd -m <USERKURZZEICHEN>
sudo passwd <USERKURZZEICHEN>

Wenn man den User nicht mehr möchte geht er einfach zu löschen mittels (ACHTUNG alle Daten inkl. mails werden ebenfalls gelöscht)

sudo userdel -r <USERKURZZEICHEN>

Umstellen von Mbox auf maildir++

Mit dem Mbox Format (musste gewählt werden aufgrund der Exim konfiguration) können keine Unterordner angelegt werden.
Die dies aber wohl jeder gerne haben möchte, muss auf maildir++ umgestellt werden.
Wenn nun z.B. der Unterordner „GMX“ angelegt wird, werden die mails in der Datei „~/mail/.INBOX.GMX“ gespeichert.
Dazu einfach folgendes in die Datei /etc/dovecot/conf.d/10-mail.conf eintragen:

mail_location = mbox:~/mail:LAYOUT=maildir++:INBOX=~/mail/.INBOX: CONTROL=/var/mail/control/%u:INDEX=/var/mail/indexes/%u

Im dovecot wiki kann man nachlesen was die einzelnen Parameter zu bedeuten haben.
LAYOUT bedeutet das dovecot das format maildir++ verwendet denn das format mbox unterstüzt keine Unterordner.

Da wir nun dovecot gesagt haben metadaten in /var/mail/control und /var/mail/indexes abzulegen, müssen wir diese Ordner auch anlegen (und Berechtigungen darauf vergeben):

sudo mkdir /var/mail/control
sudo chmod 777 /var/mail/control
sudo mkdir /var/mail/indexes
sudo chmod 777 /var/mail/indexes

Danach Dovecot neu starten

Dovecot kann mit folgendem Befehl neu gestartet werden:

sudo service dovecot restart

debugging

Wer hier noch liest ist entweder ganz genau oder hat ein Problem – irgendwas funktioniert nicht.
Jetzt gehts also los mit debuging

Schritt 1 Browser öffnen und den Artikel WhyDoesItNotWork lesen, danach in einer extra Konsole die Ausgaben mitlesen:

tail -f /var/log/mail.log

Wer etwas mehr ausgaben braucht (was ich benötigte) der ergänzt die /etc/dovecot/dovecot.conf um die folgenden Einträge:

auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes

Weitere debugging Tipps fand ich bei workaround.org, natürlich im dovecot wiki und zu meinem speziellen Problem (A BAD Invalid characters in atom) im debianforum.

Wer prüfen möchte ob mails in dem richtigen File abgelegt werden, der kann auch mal mit pico die entsprechende datei öffnen:

pico /home/mail

Tipps & Tricks

Beim Linux Usernamen keine groß und kleinschreibung verwenden!!!

Ich testete Dovecot mit Outlook 2003 zusammen und hatte richtig viel Spass bei der Fehlersuche – immer die Meldung invalid password.
Im Log dann der Hinweis „A BAD Invalid characters in atom
LÖSUNG: User weglöschen und mit nur kleinschreibung neu anlegen!

Fehlermeldungen

Wer die Meldung erhält dass die dovecot.index.log nicht angelegt werden konnte, muss noch mal weiter oben den Teil „Umstellen von Mbox auf maildir++“ lesen.

Fehlermeldungen bzgl. „user is not in group mail“ lassen sich mit folgendem Befehl lösen:

sudo usermod -aG <GRUPPENNAME> <BENUTZERNAME>

Bedeutung der Tilde „~

In der Konfiguration taucht immer wieder “~” auf -> hier die Bedeutung:

It’s a Bash feature called „tilde expansion„. It’s a function of the shell, not the OS. You’ll get different behavior with csh, for example.

To answer your question about where the information comes from: your home directory comes from the variable $HOME (no matter what you store there), while other user’s homes are retrieved real-time using getpwent(). This function is usually controlled by NSS; so by default values are pulled out of /etc/passwd, though it can be configured to retrieve the information using any source desired, such as NIS, LDAP or an SQL database.

Tilde expansion is more than home directory lookup. Here’s a summary:

~              $HOME
~fred          (freds home dir)

~+             $PWD   (same effect as ./)
~-             $OLDPWD (your previous directory)
~1             `dirs +1`
~2             `dirs +2`
~-1            `dirs -1`

dirs and ~1, ~-1, etc., are used in conjunction with pushd and popd.

Outlook und IMAP

Ich verwendete zum testen Outlook 2003. Gelöschte mails wurden darin leider nur durchgestrichen dargestellt.
Wie dies bei den verschiedenen Outlook Versionen umgestellt werden kann steht im Blogpost Outlook und IMAP

Aktueller Stand

17.01.2014
Nach dem ändern des Usernamens und dem anpassen des Speicherpfades werden die Fehlermeldungen weniger.
Danke an dieser Stelle meinen fleisigen Mitstreitern Tolik und BioS.

Eine Antwort to “[Raspberry-mailserver] – 5. Dovecot (IMAP Server)”

  1. TolikOnline Says:

    NIcht vergessen auf den Bug mit dem Maildir++ hinzuweisen😉

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: