Fetchmail

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen

Fetchmail dient zum Abholen von Email aus externen Mailboxen (POP3 oder IMAP) und Übergeben der Email z.B. an einen lokalen Email-Server wie Postfix. Dieses wird auch als Sammeldienst bezeichnet.

Fetchmail Konfiguration

Im Homeverzeichnis des Users, der Fetchmail startet, muss die Datei .fetchmailrc erstellt werden.
Beispiel:

# Configuration created by fetchmailconf
set postmaster "user1"
set bouncemail
set no spambounce
set properties ""

poll pop.domain1.de with proto POP3
       user 'user0815' there with password 'xxx' is 'user1' here options fetchall ssl
poll pop.domain2.com with proto POP3
       user 'user0816' there with password 'xxx' is 'user1' here options fetchall ssl
poll pop.domain3.de with proto POP3
       user 'user0817' there with password 'xxx' is 'user1' here options fetchall ssl
skip pop.domain4.com with proto POP3
       user 'user0818' there with password 'xxx' is 'user1' here options keep ssl
skip pop3.domain5.de with proto POP3
       user 'user0819' there with password 'xxx' is 'user1' here options fetchall ssl

Hinweise:

  • Emails für Einträge mit "keep" werden auf dem Server nicht gelöscht
  • Einträge mit "skip" werden übergangen, wenn fetchmail ohne Angabe eines Servers aufgerufen wird.
  • Die fetchmailrc-Datei muss die Dateirechte 0600 haben mit Owner "user1"

Fetchmail aufrufen

Abholen aller Emails gemäß $HOME/.fetchmailrc (außer Server mit "skip"-Eintrag):

fetchmail

Abholen von einem Server mit "skip"-Eintrag:

fetchmail pop.domain4.com
fetchmail pop.domain5.com

Hinweise:

  • Mit der Option -f kann man eine alternative fetchmailrc-Datei angeben, z.B. fetchmail -f /etc/fetchmailrc-user1.

Automatisierung

Hinweise:

  • Fetchmail darf pro User nur einmal (zur gleichen Zeit) laufen !

Scripts

  • Allgemeiner Sammeldienst /home/user1/bin/fetchmail-user1
#!/bin/bash
LOG=/var/tmp/fetchmail
# Eintrage in fetchmail-log machen
echo "######################################" >> $LOG
date >> $LOG

# dann fetchmail starten
/usr/bin/fetchmail >> $LOG 2>&1
  • Seltener Sammeldienst /home/user1/bin/fetchmail-rest
#!/bin/bash
LOG=/var/tmp/fetchmail
# Eintrage in fetchmail-log machen
echo "######################################" >> $LOG
date >> $LOG

# dann fetchmail starten
# holt nur Emails vom angegebenen Server, auch wenn dieser auf "skip" steht in rc file.
/usr/bin/fetchmail pop.domain4.com >> $LOG 2>&1
/usr/bin/fetchmail pop.domain5.com >> $LOG 2>&1

Cronjob

Einträge als Cronjobs in /etc/crontab:

# Fetchmail darf pro user nur einmal laufen !
0,5,10,15,20,25,30,35,40,45,50,55  * * * *  user1 /home/user1/bin/fetchmail-user1
3,33 * * * *  user1 /home/user1/bin/fetchmail-rest

Logrotate

Datei /etc/logrotate.d/fetchmail:

/var/tmp/fetchmail {
    compress
    dateext
    maxage 365
    rotate 99
    size=+1024k
    notifempty
    missingok
    copytruncate
}