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 0Hierbei 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