Mailempfang mit Fetchmail

Update: Ein jüngeres Tutorial samt postfix und dovecat befindet sich hier: Mailserver mit Ubuntu…

Situation

Im lokalen Netzwerk läuft ein Rechner mit Ubuntu 12.04 LTS, der über einen DSL-Router ans Internet angeschlossen ist. Bei 1&1 ist eine Domäne registriert.

In den Beispielen verwende ich als Domain „example.com“. Wer die Schritte nachvollziehen möchte, baue dort bitte seine eigene Domain ein. Und die verwendeten E-Mail-Adressen den eigenen Anforderungen anzupassen, versteht sich hoffentlich von selbst.

 

Aufgabe

E-Mails für die Benutzer der Ubuntu-Kiste sollen per „fetchmail“ vom 1&1-POP3-Server eingesammelt und in die lokalen Postfächer einsortiert werden.

 

Benötigte Pakete

  • fetchmail
  • fetchmailconf

Umsetzung

  • Zum Testen verwende ich wieder die beiden E-Mail-Adressen michael.mustermann@example.com und michaela.musterfrau@example.com, die ich hier bereits verwendet habe.
  • Erste Stolperstelle: Nach der Installation des fetchmail-Paketes existiert gar keine Konfigurationsdatei /etc/fetchmailrc, aber es liegt im Doc-Verzeichnis eine Beispieldatei, diese also erst einmal rüberkopieren, um sie als Vorlage verwenden zu können (ggf. „sudo updatedb; locate fetchmailrc„, um den Dateinamen zu ermitteln):
    cp /usr/share/doc/fetchmail/examples/fetchmailrc.example /etc/fetchmailrc
  • Sogleich sollten wir die Benutzerrechte auf „nur lesbar für root“ anpassen, da hier später die E-Mail-Passwörter im Klartext zu lesen sein werden:
    sudo chmod 600 /etc/fetchmailrc
  • In die fetchmailrc sind gar nicht so viele und komplizierte Dinge einzutragen, damit alles funktioniert. Das weiß man natürlich erst später, wenn alles funktioniert hat und man das Ergebnis sieht. Das gui-basierte Tool fetchmailconf (X sollte also laufen) kann dabei eine große Hilfe sein, und ich habe diese Hilfe auch gerne in Anspruch genommen. Also erst einmal folgendes in die Tastatur tippern:
    fetchmailconf
  • Das Tool ist weitgehend selbsterklärend, dennoch hier mal in aller Ausführlichkeit. Nach dem Start erscheint erst einmal das folgende Fenster. Hier klickt man erst einmal auf „Configure fetchmail“.
    Die beiden anderen Schaltflächen benötigen wir erst später, wenn es darum geht, die Einstellungen zu überprüfen.
  • Im sich öffnenden Fenster wählen wir erst einmal „Novice Configuration“.
  • Als New Server ist „pop.1und1.de“ hinzuzufügen. Dazu klicke man in das Feld neben „New Server“, gebe „pop.1und1.de“ und drücke auf die Return-Taste. Wiederum öffnet sich ein neues Fenster, in dem wir dann das zu verwendende Mail-Protokoll und die einzelnen Benutzer anlegen, bearbeiten und löschen können.
  • Das Mail-Protokoll lassen wir erst einmal auf „auto“ und klicken auf „Probe for supported protocols“. fetchmailconf ruft dann den Mailserver auf und versucht zu ermitteln, welche Protokolle zur Verfügung stehen. Da ich die E-Mails per POP3 abrufen möchte, habe ich dieses Protokoll schließlich ausgewählt.
  • Um einen neuen Benutzer der fetchmail-Konfiguration hinzuzufügen, klicke man in das Feld neben „New User“, gebe die abzurufende E-Mail-Adresse samt Domain ein und drücke RETURN. Ich beginne hier mit „michael.mustermann@example.com“.
  • Erneut geht ein Fenster auf. Hier gebe man oben das POP3-Kennwort ein. Die Verwendung von SSL ignorieren wir. Wichtig ist jedoch die Zuordnung zu den Local Names. Die Mails unseres „michael.mustermann@example.com“ sollen ja für den Ubuntu-Benutzer „mann“ abgerufen werden. Zunächst entfernen wir in der Liste unterhalb „New name“ etwaige falsche Einträge, indem wir sie einmal anklicken und auf „Delete“ klicken. Anschließend wir in das Feld neben „New name“, geben „mann“ ein und drücken RETURN. Das war alles, wir klicken also oben links auf „OK“.
  • Das ganze Spielchen wiederholen wir nun noch für unsere „michaela.musterfrau@example.com“, für die wir ja die E-Mails für ihren zugehörigen Ubuntu-Benutzer „frau“ abholen möchten. Auch hier wieder das POP3-Kennwort eingeben, unten die Zuordnung passend einstellen und anschließen mit „OK“ verlassen.
  • Alle noch offenen Fenster werden nun mit „OK“ oder „Save“ geschlossen, bis wir wieder beim ersten Fenster angekommen sind. Hier können wir nun auf „Run fetchmail“ klicken und schauen, ob wir alles richtig gemacht haben. Es öffnet sich ein Debug-Fenster, deren Ausgaben man kontrollieren sollte.
  • Falls etwas nicht funktioniert, klicke man wieder auf „Configure fetchmail“ und begebe sich an die Stellen, wo man ggf. einen falschen Server-Namen, das falsche E-Mail-Konto, das falsche Protokoll oder das falsche E-Mail-Kennwort eingegeben hat und lässt fetchmail erneut loslaufen.
  • Sobald alles funktioniert hat, beende man fetchmailconf mit einem simplen Klick auf „OK“.
  • fetchmailconf sichert die Einstellungen, die man im GUI macht, in ~/.fetchmailrc. Wenn alles funktioniert hat, kann man die entscheidenden Zeilen einfach per Copy&Paste in die /etc/fetchmailrc einfügen.
  • Nun noch „sudo vi /etc/default/fetchmail“ mit einer lockeren Änderung von „START_DAEMON=no“ auf „START_DAEMON=yes“ und ein geschmeidiges „:wq“ fetchmail erlauben, als Dämon zu laufen.
  • Zum Testen schicken wir den beiden Testbenutzern vorab erst einmal eine E-Mail, damit auch etwas im Postfach (bei 1&1) vorhanden ist, wenn wir gleich fetchmail loslaufen lassen.
  • Nun am besten noch eine Shell (ein Terminal) aufmachen und das Syslog verfolgen:
    tail -f /var/log/syslog
  • .. und den fetchmail-Dämon starten:
    sudo /etc/init.d/fetchmail start
  • Das war’s. fetchmail schaut jetzt alle $konfigurierten Minuten beim 1&1-POP3-Server nach, holt die E-Mails ab, löscht sie (sofern gewünscht) auf dem POP3-Server, und sortiert sie in die lokalen Postfächer ein.
  • BTW: Die ganze Herumklickerei hat übrigens dazu geführt, dass ich folgende drei Zeilen in meine fetchmailrc kopiert habe (das Passwort habe ich durch ein ? ersetzt). Weitere Benutzer kann man dann wohl auch direkt hinzufügen. 😉
    poll pop.1und1.de with proto POP3
      user 'michael.mustermann@example.com' there with password '?' is 'mann' here
      user 'michaela.musterfrau@example.com' there with password '?' is 'frau' here
    

Links

 

Disclaimer

Bei mir läuft’s. Bei wem es nicht läuft oder wer sich etwas zerschießt oder wichtige E-Mails löscht: selber schuld. 😉