Getmail ist ein kleines Programm das aehnlich wie fetchmail arbeitet. Ich habe Getmail installiert, weil fetchmail sich auf meiner Kiste (OpenBSD 2.8) nach einem Update staendig mit diversen Fehlermeldungen verabschiedet hat (den Grund hierzu kenne ich bis jetzt noch nicht. Die Installation variiert je nachdem welches OS und welche Distrubtion man verwendet. Ich werde hier auf die gebraeuchlichsten eingehen. Bei Free-, Net- und OpenBSD findet man Getmail in der Portcollection. Dort wird es mit

# cd $PORTSDIR/mail/getmail && make && make install clean

installiert. Wenn man nichts von alledem zur Verfuegung hat - oder nicht verwenden will - kann man es selbstverstaendlich auch manuell installieren. Die Installation ist sehr einfach und das sollte jeder auf die Reihe kriegen:

$ tar -xzf getmail-$VERSION.tar.gz
$ mkdir /usr/lib/getmail
$ cp -a getmail-$VERSION/* /usr/lib/getmail/
$ cp -a getmail-$VERSION/getmail /usr/bin/
$ chmod 755 /usr/bin/getmail

Nach der erfolgreichen Installation sind noch folgende Schritte notwendig:

# mkdir ~/.getmail
# cp /usr/local/share/doc/getmail/getmailrc-example ~/.getmail/getmailrc
# $EDITOR ~/.getmail/getmailrc
# chmod 755 /usr/bin/getmail

Jetzt musz man noch die Konfigurationsdatei anpassen (Kommentare sind #). Zuerst mal die "Variablen". Alle die unterstrichen sind, müssen gesetzt werden; alle anderen sind optional:

server

Hier wird der POP - Server angegeben, von dem die Mails geholt werden sollen. Die Syntax ist hier server = pop.server.tdl

port

Hier kann - und sollte - man den Port des POP - Servers angeben. Default ist 110 und die Syntax ist port = 42

timeout

Hier wird angegeben, nach wieviel Sekunden die Verbindung unterbrochen werden soll, wenn der POP - Server - aus welchen Gruenden auch immer - nicht erreichbar ist. Die Syntax ist timeout = 90 (Default ist 180).

username

Auch klar! Der Username mit den man bei dem POP - Server hat. Die Syntax ist username = johndoe

password

Hier kann das Passwort angegeben werden. Wenn man keins angibt, musz man es jedesmal neu eingeben. Die Syntax hier lautet: password = "foobar", wobei auch Leerzeichen im Passwort erlaubt sind und abgearbeitet werden.

use_apop

Hier kann man angeben ob APOP verwendet werden soll. Fuer den Fall das man auf APOP zurueckgreifen will, sieht die Syntax wie folgt aus: use_apop = 1 (1 = Ja, 0 = Nein).

no_delivered_to

Dieser Eintrag unterdrueckt - oder erlaubt - das Hinzufuegen des Headers Received: (Header field). Die Syntax ist no_delivered_to = 0 (0 = Nein, 1 = Ja).

postmaster

Hier wird angegeben, an wen die Mails "zugestellt" werden. Die Syntax ist hier postmaster = "/var/spool/mail/postmaster". Man kann auch die Tilde verwenden: postmaster = ~username/Mail/darein/.

local

Hier kann man angeben, welche Mails von welchem POP - Server an wen zugestellt werden sollen.

recipient_header

Extrahiert die Namen des Mail - Headers. Die moegichen Angaben sind hier: Delivered-To, Envelope-To, Apparently-To, X-Envelope-To, Resent-To, Resent-cc, Resent-bcc, To, cc, bcc und Received.

relaxed_address_match

Das hier erlaubt das Ueberpruefen von Email - Addressen. D. h.: eine Email - Addresse musz ein @, gefolgt von einem . (Punkt), gefolgt von irgendeinem Text (i. e. .com enthalten).

readall

Hier kann man sich aussuchen ob Getmail alle oder nur die ungelesenen Mails abholen soll. readall = 1 holt alle Mails ab (also auch die, die man schon gelesen hat) und readall = 0 holt nur die neuen Mails ab.

max_message_size

Mit dieser Option kann man angeben bis zu welcher Groesze Mails abgeholt werden. Die Groesse wird in Bytes angegeben. max_message_size = 0 holt jede Mail - egal wie grosz - ab, wobei max_message_size = 150000 nur Mails bis zu einer maximalen Groesze von 150000 Bytes fetchen wuerde.

max_messages_per_session

Hier ist es aehnlich, nur das man hier die Anzahl der Mails angeben kann. max_messages_per_session = 0 holt alle Mails ab und max_messages_per_session = 10 hingegen wuerde nur 10 Mails downloaden.

eliminate_duplicates

Wenn der POP - Server "Delivered-To:" nicht ueberprueft, kann man diese Variable dazu verwenden um doppelte Mails zu loeschen, damit man sie nicht erst runterladen musz. eliminate_duplicates = 0 schaltet diese Funktion aus, wohingegen eliminate_duplicates = 1 doppelte Mails loeschen wuerde.

delete

Hier wird angegeben ob Mails nach dem Download vom Server geloescht werden sollen. delete = 0 wuerde sie nur downloaden und delete = 1 loescht die Mails.

delete_after

Damit kann man angeben ob - und wenn ja - nach wieviel Tagen die Mails auf dem POP - Server geloescht werden sollen. delete_after = 0 laeszt alle Mails fuer immer auf dem Server und delete_after = 10 wuerde alte Mails nach 10 Tagen vom Server loeschen.

verbose

Damit kann man Getmail ueberreden Statusmeldungen auszugeben oder nicht. verbose = 1 wuerde z. B. verbose einschalten und mit verbose = 0 ist es deaktiviert.

message_log

Hier kann man eine Logdatei angeben, in die Getmail seine Informationen schreiben soll: message_log = /var/log/maillog1 ist z. B. eine Moeglichkeit.

~/.getmail/getmailrc

Jetzt ein paar Beispiele zur Konfiguration. Eine einfache Konfigurationsdatei kann z. B. wie folgt aussehen:

# Die Sektion '[default]' beinhaltet die Parameter, die fuer alle Accounts in
# dieser Datei gelten sollen.
[default]
 # Ausfuehrliche Meldungen
 verbose = 1

 # Nur neue Nachrichten abholen
 readall = 0

 # Nachdem die Mails abgeholt wurden, sollen sie geloescht werden
 delete = 1

 # Ich will das getmail eine Logdatei anlegt
 message_log = /home/dope/.getmail/getmail.log

 # Nach 240 Sekunden soll die Verbindung zum POP - Server unterbrochen werden
 timeout = 240

 # Ich will nur Mails die max. 1MB grosz sind.
 max_message_size = 1048576

# Jetzt die Einstellungen damit nur meine Mails abgeholt werden
# '[dope's Mail]' bedeutet das dies die Mails fuer den User 'dope' sind.
[dope's Mail]
 # Von dem Server sollen die Mails abgeholt werden
 server = pop.server.tdl

 # Jetzt noch den Port vom POP - Server
 port = 42

 # Mein Username fuer diese Mailbox
 username = lart

 # Jetzt noch das Passwort, damit ich es nicht immer eingeben musz. Sollte das
 # Passwort Leerzeichen enthalten, dann musz man diese nicht quoten:
 # password = "passwort mit leerzeichen"
 password = "foobar"

 # Wer soll die Mails wohin bekommen?
 # Die will ich dahin bekommen, weil 'procmail' noch einen Blick drauf wirft ;)
 postmaster = /var/mail/dope

# Wenn man jetzt noch weitere Accounts besitzt, dann kann man die selbstverstaendlich
# auch noch angeben, wobei der hier angegebene Username nicht im System existieren musz.
# Man kann es auch anders machen, aber dazu kommen wir spaeter.
[dope1's Mail]
 # Hier wieder der POP - Server
 server = pop1.server.tdl

 # Diesmal mit einem anderem Port
 port = 23

 # 'N Usernamen brauch ich auch
 username = p0rn@h4x0r.net

 # Diesmal ein Passwort mit Leerzeichen
 password = "mein Passwort enthaelt Leerzeichen"

 # Das ist mein zweiter Account und da will ich das die Mails
 # nicht geloescht werden
 delete = 0

 # Diesmal werden die Mails sofort in mein $HOME verschoben
 postmaster = ~dope/Mail/Private

# Man kann auch eine POP - Server abrufen und die abgeholten Mails
# von getmail austragen lassen.
[AllServer Maildrop]
 server = pop.foo.bar
 username = brainstop
 password = "42!"
 postmaster = /var/spool/mail/postmaster
 # Jetzt teilen wir die Mails auf:
 # Die Mails fuer 'firstuser@foo.bar' sollen nach ~firstuser/MuttMail/
 local = ^firstuser@foo.bar$,~firstuser/MuttMail/
 # Die Mails fuer 'mbox-user@fork.net' sollen in die mbox
 local = ^mbox-user@fork.net$,~mbox-user/mbox
 # Mails fuer 'strcat@gmx.net' sollen an maildrop uebergeben werden
 local = "^strcat@gmx.net$,|/usr/local/bin/maildrop -a"

Das war das Wichtigste zu getmail. Es ist logischerweise auch moeglich getmail nur als User zu installieren. Dazu musz man es lediglich in sein $HOME kopieren, ausfuehrbar machen und den $PATH anpassen (oder es direkt starten)‥