Linux KNOWLEDGE by Spreech 

 home |
Too Cool for Internet Explorer

fetchmail mit Postfixadmin

Bloged in Problembehebung,Programme,Server by manuel.schwab Sonntag Mai 3, 2009

Postfixadmin bietet von Hause aus eine fetchmail Funktion um Nachrichten auch von anderen (externen) Accounts einzulesen.

Leider gibt es hierzu keine Doku und man muss sich durch “versuchen” durchwühlen.
Das “versuchen” habe ich hintermir, daher hier eine kurze Beschreibung.

Grundlage:
Postfixadmin version 2.2.1.1 (http://postfixadmin.sourceforge.net/)
Installationspfad: /var/www/pfa/
Virtueller User: vmail

Man installiert postfixadmin ganz normal – hierfür gibt es einige Dokus (z.B. http://wiki.rootforum.de/mailserver/postfix/postfix-admin)

Um die fetchmail Option nutzen zu können, muss zusätzlich dies erstmal in PFA aktiviert sein und auch fetchmail installiert sein:

/var/www/pfa/config.inc.php

$CONF[‘fetchmail’] = ‘YES';

bzw.

aptitude install fetchmail

Danach

nano /etc/default/fetchmail

Hier ist wichtig, dass START_DAEMON auf no steht und nicht etwa auf true:

START_DAEMON=no

Um zu versichern, dass fetchmail nun nicht schon etwa läuft, fetchmail kurz stoppen:

/etc/init.d/fetchmail stop

Das wars zu Fetchmail allgemein.
Nun geht es darum, das postfixadmin Plugin entsprechend zu konfiguieren.
Was man lediglich anpassen muss ist die Datei fetchmail.pl:

nano /var/www/pfa/ADDITIONS/fetchmail.pl

Dort speziell muss vorallem das Home Dir der vmail User angegeben werden sowie die mysql settings:

# the home dir of vmail user:
$vmail_dir=”/var/vmail”;

# mysql settings
$database=”postfix”;
$hostname=”127.0.0.1″;
$user=”fetchmail”;
$password=”password”;
$dsn = “DBI:mysql:database=$database;host=$hostname”;

Bei mir hier insbesondere ist das Verzeichnis in welchem sich die Mails befinden /var/vmail .
Ebenso heißt bei mir die Datenbank “postfix”, der Datenbankbenutzer “fetchmail” und das entsprechende Passwort ist “password”.

Generell muss man hier nichts weiter einstellen.

In manchen Fällen kann es aber durchaus hilfreich sein, wenn man noch das, was fetchmail so macht, loggt.

Hierfür erstellen wir zunächst eine entsprechende Datei:

touch /var/log/fetchmail

Schreibrechte auf die Datei sollte der User haben, welcher in postfix als virtual user angegeben ist.
Bei mir ist dies vmail, welcher der Gruppe mail angehört:

chown vmail:mail /var/log/fetchmail

Um nun auch zu erreichen, dass geloggt wird, muss man die Option

$ret=`/usr/bin/fetchmail`;

in der Datei

/var/www/pfa/ADDITIONS/fetchmail.pl

erneut anpassen.

Hierfür gibt es zwei Möglichkeiten:

$ret=`/usr/bin/fetchmail -L /var/log/fetchmail`;

Ändert man den Eintrag darauf, werden “normale” Logfiles erstellt.

Um sehr ausführliche Logfiles zu erhalten, wählt man folgenden Eintrag:

$ret=`/usr/bin/fetchmail -v >>/var/log/fetchmail`;

Nun haben wir soweit alles vorbereitet.

In einem letzten Schritt müssen wir nun noch einen Cronjob einrichten, damit die Datei fetchmail.pl auch regelmäßig durchgeführt wird.

crontab -e

und folgender Eintrag am Ende einfügen:

*/5 * * * * vmail /var/www/pf/ADDITIONS/fetchmail.pl > /dev/null 2&>1

Wichtig hierbei ist, dass vorher die Rechte auf die Datei fetchmail.pl entsprechend gesetzt werden, dass der Benutzer vmail diese Datei auch ausführen darf.

Sollte obiges nicht klappen, so haben folgende Möglichkeiten teilweise auch funktioniert:

*/5 * * * * vmail perl /var/www/pf/ADDITIONS/fetchmail.pl > /dev/null 2&>1

*/5 * * * * sudo -H -u vmail /var/www/pfa/ADDITIONS/fetchmail.pl > /dev/null 2&>1

wobei bei der letzten Variante noch ein entsprechender Eintrag in der sudoers Datei gemacht werden muss.

Nun noch ein paar Worte zur Oberfläche von PFA und den entsprechenden Optionen:

Auth Type: password hat bei mir hier zu 100% funktioniert
Remote Folder: wenn ihr ein IMAP Postfach abrufen wollt, dann diese Option leerlassen. Wird die Option / angegeben, dann wird es nicht funktionieren. Wie es sich bei POP3 verhält kann ich leider nicht sagen da noch nicht getestet.
Wird also nichts angegeben, dann wird die INBOX abgerufen, also der normale Posteingang.
Hat man beispielsweise Unterordner erstellt, z.B. einen Ordner der sich PFA nennt, dann kann man diesen durch die Angabe von INBOX.PFA rüberholen.
Diese Angabe bezieht sich allerdings nur auf Quellserver, auf welchen Postfix / Dovecot läuft. Wie es sich bei anderen verhält kann ich nicht sagen – kenne keine andere Ordnerstruktur :-)
Poll:Sollte klar sein, was diese Option macht. Angabe des Intervalls in welchem nach neuen Mails geprüft werden soll. Hier allerdings Achtung: Lässt ihr den Cronjob nur alle 5 Minuten laufen (wie in dem Beispiel oben) und trägt hier aber “1” ein, d.h. es soll jede Minute geprüft werden, dann wird das natürlich nicht klappen. Die Angabe unter Poll darf also maximal so klein sein wie das Cronintervall.
Fetch All: Wird die Option markiert, dann werden ALLE Mails des Quellservers abgerufen (genauer: alle Mails des Quellservers des angegebenen Ordners), d.h. es spielt keine Rolle ob diese neu (im Sinne von ungelesen) oder alt (im Sinne von gelesen) sind. Wichtig hierbei: sobald man fetchmail das erste Mal nutzt, werden alle ungelesenen Mails auf dem Quellserver als gelesen markiert. Also nicht wundern wenn ihr euch danach mit dem Webmailer einloggt und merkt dass ihr keine “neuen” Mails mehr habt :-)
Wichtig auch noch, wenn die Option markiert wird: Es werden JEDES MAL wenn ihr Fetchmail nutzt, ALLE(!!) Mails geholt!
Nachdem ihr also Fetchmail 2x durchführt mit dieser Option werdet ihr alle Mails doppelt drin haben.

Es empfiehlt sich daher folgende Vorgehensweise:
– Option Fetch All beim ersten Mal aktivieren um ALLE Mails gefetched zu haben
– anschließend Fetch All deaktivieren so dass wirklich nur noch neue Mails rüberkommen.

Hierzu gilt es aber folgendes zu beachten:
Ist Fetch All deaktiviert, werden wirklich nur NEUE (im Sinne von ungelese) Mails rübergeholt.
Bekommt ihr also in das Quellpostfach eine neue Nachricht geschickt und lest diese über den Webmailer des Quellsystems z.B., dann wird diese NICHT gefetched.
Diese taucht dann quasi nie im Account auf, in welchen ihr fetchen wollt. Außer man aktiviert Fetch All wieder.

Die anderen Optionen sollten sich von selbst erklären denke ich.

Quelle / Hinweise u.a.

http://sourceforge.net/forum/forum.php?thread_id=1915508&forum_id=676076

http://github.com/albanpeignier/tryphon-puppet/blob/b691ed9a8a6d42e65d7e3cc29c002eafd90a0ce2/files/bin/fetchmail-all

https://mail.asamnet.de/postfixadmin/userdoc/sonst_dok/fetchmail_setup.html

http://www.lukas-world.de/fetchm.htm

http://www.linupedia.org/opensuse/Mailserver_mit_Postfix,_Fetchmail,_Dovecot

Speziell für postgresql user: http://johker.ibutho.de/tag/postgres/

Keine Kommentare »

Noch keine Kommentare

Hinterlasse einen Kommentar


RSS-Feed für Kommentare zu diesem Beitrag. TrackBack URI

Powered by Wordpress, theme by Dimension 2k