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.
Bei Debian kann es mit $ apt-get install getmail installiert werden und bei Distrubtionen die auf
RPM aufsetzen, reicht ein $ rpm -iUv getmail-$VERSION.rpm aus.
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 hinter denen ein * steht, muessen angegeben werden.
Der Rest ist 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.
local = ^1user@isp1.net$,~1user/Maildir/
Mit diesem Eintrag wuerden die Mails von "isp1.net" an "1user" in das Verzeichnis "~/1user/Maildir/" geschickt. Man kann auch
Pipes verwenden um z. B. externe Programme aufzurufen:
local = "^user2@isp2.net$,|/usr/bin/foobar -a"
uebergibt die Mails von dem Server an das Programm "/usr/bin/foobar".
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.
recipient_header = Envelope-To
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).
relaxed_address_match = 1 wuerde diese "Ueberpruefung" einschalten (Default ist 0 (also Nein)).
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. Home $Id: getmail.html,v 1.1 2003/06/01 12:00:39 dope Exp dope $