Good to Know Database

CentOS 6: Fetchmail (als Daemon) einrichten


Mit Fetchmail können externe Postfächer abgerufen und die Mails auf die lokalen Mailkonten verteilt werden.

Installation und Konfiguration von Fetchmail

Sollten Sie das Paket fetchmail noch nicht installiert haben, sollten Sie dies jetzt nachholen.

[root@centos6 ~]# yum install fetchmail

Nach der Installation müssen Sie die Datei /etc/fetchmailrc erstellen.

[root@centos6 ~]# vi /etc/fetchmailrc

In diese Datei müssen Sie jedes Postfach eintragen, von welchem Mails abgeholt werden sollen. Eine fertige Konfigurationsdatei könnte wie folgt aussehen.

set postmaster "root"
set bouncemail
set properties ""

poll pop3.web.de with proto POP3
  user 'benutzer1' there with password 'passwort1' is benutzer1
  user 'benutzer2' there with password 'passwort2' is benutzer2

poll pop.gmx.net with proto POP3
  user 'benutzer3@gmx.net' there with password 'passwort3' is benutzer1
  user 'benutzer4@gmx.net' there with password 'passwort4' is benutzer2

postconnect "sendmail -q"

Für jeden Ihrer Mailserver mit dem dazugehörigem Übertragungsprotokoll wird eine Zeile in der folgenden Form eingetragen.

poll pop.web.de with proto POP3

In den darauf folgenden Zeilen werden alle Mailkonten des oben eingestellten Providers eingetragen. Es wird zuerst der Benutzername und das Passwort für den Mailserver und danach der Benutzer der die Mails auf dem lokalen Server bekommen soll eingetragen.

  user 'benutzer1' there with password 'passwort1' is benutzer1
  user 'benutzer2' there with password 'passwort2' is benutzer2

Sollten Sie mehrere Provider abfragen wollen, müssen Sie diese wie im obigen Beispiel zu sehen nacheinander eintragen.

Damit keine unbefugten Benutzer die Passwörter auslesen können, müssen Sie noch die Zugriffsrechte der Datei anpassen.

[root@centos6 ~]# chmod 0600 /etc/fetchmailrc

Um die Konfigurationsdatei zu testen führen Sie folgenden Befehl aus.

[root@centos6 ~]# fetchmail -v -a -k -f /etc/fetchmailrc

Die Option -v schaltet Fetchmail in den Verbose-Modus in welchem Debugmeldungen angezeigt werden. Durch die Option -a werden auch bereits gelesene Mails heruntergeladen und -k sorgt dafür, dass die Mails auf dem Mailserver nicht gelöscht werden. Die fetchmailrc wird mit der Option -f angegeben.

Fetchmail-Daemon erstellen

Aus Sicherheitsgründen sollten Sie Fetchmail unter einem eigenen Benutzer laufen lassen. Dazu erstellen Sie mit den folgenden zwei Befehlen eine Systemgruppe fetchmail und einen Systembenutzer fetchmail welcher zur Gruppe fetchmail gehört und sich nicht am System anmelden kann.

[root@centos6 ~]# groupadd -r fetchmail
[root@centos6 ~]# useradd -r -m -g fetchmail -s /sbin/nologin -c "Fetchmail" fetchmail

Anschließend ändern Sie die Berechtigungen der Datei /etc/fetchmailrc damit der neu erstellte Benutzer auf diese Datei zugreifen kann.

[root@centos6 ~]# chown fetchmail:fetchmail /etc/fetchmailrc

Damit Fetchmail als Daemon verwendet werden kann, benötigen Sie ein Init-Skript welches Sie wie folgt erstellen.

[root@centos6 ~]# vi /etc/rc.d/init.d/fetchmaild

Das folgende Skript ermöglicht das Starten, Stoppen und Neustarten des Fetchmail-Daemons. Kopieren Sie den Code in die Datei /etc/rc.d/init.d/fetchmaild.

#!/bin/sh
# chkconfig: 35 99 00
# description: Start and stop fetchmail

. /etc/init.d/functions

start() {
  echo "Starting fetchmaild..."
  su fetchmail -s /bin/sh -c "fetchmail -d 900 -a -f /etc/fetchmailrc -L /var/log/fetchmail"
  }

stop() {
  echo "Shutting down fetchmaild..."
  su fetchmail -s /bin/sh -c "fetchmail --quit"
  }

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

In der Startprozedur wird durch den Parameter -d der Poll-Intervall in Sekunden einstellen (hier 900 Sekunden = 15 Minuten). Das heißt, nach dieser Zeit werden die in der /etc/fetchmailrc hinterlegten Postfächer erneut abgerufen.

Nachdem das Init-Skript erstellt wurde, ändern Sie die Zugriffsberechtigungen der Datei.

[root@centos6 ~]# chmod 0755 /etc/rc.d/init.d/fetchmaild

Da wir die Meldungen von Fetchmail in eine Logdatei schreiben wollen, sollten Sie diese wie folgt anlegen und die Rechte für den Fetchmail-Benutzer setzen.

[root@centos6 ~]# touch /var/log/fetchmail
[root@centos6 ~]# chown fetchmail:fetchmail /var/log/fetchmail
[root@centos6 ~]# chmod 0600 /var/log/fetchmail

Anschließend wird der Service fetchmaild und die Init-Skripte mit dem folgenden Befehl erstellt.

[root@centos6 ~]# chkconfig --add fetchmaild

Der soeben erstellte Service kann jetzt gestartet werden.

[root@centos6 ~]# service fetchmaild start

Weiterführende Tutorials

CentOS 6: Fetchmail-Logdatei automatisch rotieren
CentOS 6: Logmeldungen des Fetchmail-Daemons an Syslog übergeben
CentOS 6: Fetchmail mit SSL absichern


Dieser Eintrag wurde am 16.09.2011 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1367.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer