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:
- Exim – zuständig für den Mailversand
- Dovecot – lokaler IMAP Server
- Fetchmail – abholung der mails beim provider
- Roundcube – GUI 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.