fetchmail erledigt werden (Paket
pop, Serie n).fetchml, Serie n; ab
SuSE Linux 7.1: Paket fetchmail))
Der Vorteil von fetchmail gegenüber dem älteren
popclient ist, daß das Passwort nicht in der Prozesstabelle
erscheint, sondern nur zwischen dem Mail-Server und dem POP3-Client
ausgetauscht wird, das Passwort wird in einer seperaten Datei
abgespeichert.
Der Mailserver sei mail.provider.de. Es gibt zwei Benutzer
asterix und obelix, die auf dem lokalen Rechner
eva und maria heissen. Als Passwörter werden
(auf dem Mailserver) adam und josef benutzt.
/root/.fetchmailrc an:
poll mail.provider.de protocol POP3 user asterix password adam is eva poll mail.provider.de protocol POP3 user obelix password josef is mariaDiese Datei darf und soll nur für den Benutzer lesbar sein, der die Mails abholt, da sie die Paßwörter enthält. Also:
chmod 600 /root/.fetchmailrcDie Passwörter müssen nicht in dieser Datei abgelegt werden. Allerdings wird dann bei jedem Aufruf von
fetchmail nach
dem Passwort gefragt.inetd bei Bedarf gestartet werden, da fetchmail
die Mails an Port 25 auf localhost übergibt.procmail
aufgerufen wird (d.h. es wird kein lokaler SMTP-Daemon benötigt),
erreichen Sie mit folgender Änderung:
poll mail.provider.de protocol POP3 user asterix password adam mda "/usr/bin/procmail -d eva" poll mail.provider.de protocol POP3 user obelix password josef mda "/usr/bin/procmail -d maria"
fetchmail -v --keep -a >> /var/log/fetchmail 2>&1Die
--keep Option sorgt zunächst mal dafür, dass die
Mails auf dem Server nicht gelöscht werden. Dies sei zum Test
dringend empfohlen!/var/log/fetchmail wird entsprechend protokolliert;
ohne -v wird nur das Wichtigste eingetragen.fetchmail -a >> /var/log/fetchmail 2>&1
crontab -e) holt täglich einmal um
2:00 nachts Mails ab:
0 2 * * * /usr/bin/fetchmail -a >> /var/log/fetchmail 2>&1
#! /bin/sh
# Copyright (c) 1996 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# Author: Klaus Franken
#
# /sbin/init.d/fetchmail
#
# please edit /root/.fetchmailrc
. /etc/rc.config
return=$rc_done
case "$1" in
start)
echo -n "Starting fetchmail-daemon"
/usr/bin/fetchmail -d 900 -a -f /root/.fetchmailrc -L /var/log/fetchmail 2>&1 || return=$rc_failed
echo -e "$return"
;;
stop)
echo -n "Shutting down fetchmail-daemon"
/usr/bin/fetchmail -quit || return=$rc_failed
echo -e "$return"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
Hierbei müssen Sie bei der Option -f den Pfad zu der .fetchmailrc des Users angeben, der die Post holen soll.
cd /sbin/init.d chmod +x fetchmail cd /sbin/init.d/rc2.d ln -s ../fetchmail S06fetchmail ln -s ../fetchmail K39fetchmailUnd wer im Runlevel 3 (grafischer Login) arbeitet noch zusätzlich:
cd /sbin/init.d/rc3.d ln -s ../fetchmail S06fetchmail ln -s ../fetchmail K39fetchmailAb SuSE Linux 7.1 müssen Sie nur noch folgendes ausführen:
chmod +x fetchmail insserv /etc/init.d/fetchmail
/etc/ppp/ip-up z.B: folgendermaßen eintragen:
#!/bin/sh
# (c) '97, S.u.S.E. GmbH, Fuerth, Germany
# Klaus Franken
# 23.09.97
BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5
case "$BASENAME" in
ip-up)
/usr/bin/fetchmail -a >> /var/log/fetchmail 2>&1
;;
ip-down)
;;
*)
;;
esac
Hierbei muß man unterscheiden, ob beim Provider die Zieladresse beibehalten wird, oder ob die Zieladresse umgesetzt wird (i.A. auf den Mailaccount).
aka bzw. localdomains. aka ersetzt den Domainanteil durch localhost, während
localdomains den Domainanteil beibehält, was bedeutet, dass der MTAdafür konfiguriert sein muss, da Mail sonst nicht lokal verteilt wird, sondern wieder abgeschickt wird und wieder im Postfach landet :-(. (Mail-Loop!)
Die .fetchmailrc sieht dann z.B. so aus:
poll mail.provider.de protocol POP3 aka domain1 domain2 user asterix password adam is *Die Mailzustellung via MTA funktioniert ganz gewöhnlich, insbesondere können Aliasnamen in der
/etc/aliases definiert werden,virtusertable (Sendmail) angelegt werden, die hauptsächlich benötigt wird, wenn mehrere Benutzer Ihres Systems Mails empfangen, die den gleichen Mail-Benutzernamen verwenden,
wobei sich nur der Domainanteil unterscheidet. Dann muß vorher mindestens eine Adresse davon auf einen anderen lokalen Benutzer umgeschrieben werden.
Beispiel:
In Ihrer Mailbox kommen folgende Mail-Adressen an:
name@prov1.de
name@prov2.de
So würden diese Mails alle in ein lokales Postfach name geworfen. (oder in ein Postfach, das in der aliases dafür steht)
Also muß eine Adresse vorher einem anderen Benutzer zugeordnet werden. Dazu verwenden Sie in der Datei /etc/mail/virtusertable (Sendmail) folgende Syntax:
name@prov2.de lokalerBenutzernameDanach muß
SuSEconfig ausgeführt werden.
.fetchmailrc):
set no bouncemailSolche Mails können jedoch nicht mehr dem einzelnen User zugeordnet werden, da
fetchmail
bzw. sendmail nicht mehr feststellen kann, an wen die Mail ursprünglich einmal
adressiert war. Deshalb gehen diese Mails dann an Postmaster.fetchmail so konfigurieren, dass der
entsprechende Header verarbeitet wird.envelope.fetchmailrc kann also
folgendermassen aussehen:poll mail.provider.de envelope Delivered-To: protocol POP3 aka domain1 domain2 user asterix password adam is *Bei
qmail gilt noch folgende Besonderheit:fetchmail muss hier mit der Kommandozeilen-Option
--qvirtual qmailprefix- aufgerufen werden.
Hier empfiehlt es sich, einen eigenen User (z.B. mailer)
einzurichten, der über eine ~/.procmailrc die Mails
weiterleitet.
Dazu befinden sich Beispiele in Offline-Mini-Howto, z.B. unter http://www.linuxdoc.org/HOWTO/mini/Offline-Mailing.html
fetchmail kann Mails nicht abholen