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)‥