fetchmail (balík
pop ze série n).fetchml ze série n, od SuSE Linuxu 7.1 pak balík fetchmail)
Předností programu fetchmail oproti staršímu popclient je
nezobrazování hesel v tabulce procesů, ale dochází pouze k jeho výměně mezi
poštovním serverem a POP3 klientem, heslo zůstává uloženo v odděleném souboru.
Poštovní server bude např. mail.provider.cz. Existují dva uživatelé
asterix a obelix na lokálních počítačích maria
a eva. Jako hesla (na poštovním serveru) jsou josef a adam.
/root/.fetchmailrc:
poll mail.provider.de protocol POP3 user asterix password adam is eva poll mail.provider.de protocol POP3 user obelix password josef is mariaTento soubor smí a měl by být čitelný pouze pro uživatele, kterému bude tato pošta přicházet. Tedy:
chmod 600 /root/.fetchmailrcPassworter nemusí být uložen v tomto souboru. Místo toho se bude při každém použití programu
fetchmail dotazovat na heslo.fetchmail -v --keep -a >> /var/log/fetchmail 2>&1Parametr
--keep se stará o to, aby pošta nebyla na serveru
smazána. Při testování je tento postup vřele doporučován!
V souboru /var/log/fetchmail je vytvářen odpovídající zápis,
parametr -v zvyšuje podrobnost zanášených informací.
fetchmail -a >> /var/log/fetchmail 2>&1
crontab -e vyzvedne denně ve dvě ráno poštu:
0 2 * * * /usr/bin/fetchmail -a >> /var/log/fetchmail 2>&1
#! /bin/sh
# Copyright (c) 1996 S.u.S.E. GmbH Fuerth, 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
Zde je třeba u volby -f doplnit cestu k .fetchmailrc uživatele.
cd /sbin/init.d chmod +x fetchmail cd /sbin/init.d/rc2.d ln -s ../fetchmail S06fetchmail ln -s ../fetchmail K39fetchmailPokud pracujete v runlevelu 3 (grafické přihlášení) potom také:
cd /sbin/init.d/rc3.d ln -s ../fetchmail S06fetchmail ln -s ../fetchmail K39fetchmailOd verze SuSE Linux 7.1 je třeba ještě provést následující
chmod +x fetchmail insserv /etc/init.d/fetchmail
/etc/ppp/ip-up, např. v následující podobě:
#!/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
Zde je třeba rozlišovat, zda u poskytovatele připojení je uchována cílová adresa, nebo zda je cílová adresa nahrazena (např. názvem konta).
aka, resp. localdomains.aka nahradí části domény localhost, zatímco
localdomains zachovává části domény pro případ odesílání pošty. (Mail-Loop)
Konfigurační soubor .fetchmailrc může např. vypadat takto:
poll mail.provider.cz protocol POP3 aka doména1 doména2 user asterix password adam is *Doručování pošty prostřednictvím sendmailu funguje bez problémů, kromě toho máte možnost definovat aliasy jmen v souboru
/etc/aliases,virtusertable, která je převážně používána v případě, kdy
se v poštovním systému nachází více uživatelů, kteří používají stejné uživatelské jméno pro poštu a
kde se liší pouze část domény. V tom případě je třeba předem aspoň jedna adresa lokálního
uživate přepsána.
Příklad:
Do vaší poštovní schánky příjdou následující poštovní adresy:
novak@prov1.cz
novak@prov2.cz
Tak by byla tato pošta vložena do jediné lokální poštovní schránky novák,
proto je třeba jednu adresu předem přiřadit jinému uživateli.
K tomu se používá v souboru /etc/mail/virtusertablenásledující zápis:
novak@prov2.cz lokalni_uzivatelPotom je ještě třeba znovu spustit
SuSEconfig.
.fetchmailrc:
set no bouncemailTato pošta již nemůže být určena jednotlivým uživatelům, protože
fetchmail,
resp. sendmail nemůže určit, komu byla pošta původně adresována. Proto příjde
tato pošta správci pošty.fetchmail tak, že bude zpracována odpovídající
část hlavičky.envelope.fetchmailrc by mohl vypadat např. takto:poll mail.provider.de envelope Delivered-To: protocol POP3 aka doména1 doména2 user asterix password adam is *U qmailu platí ještě následující zvláštnost.
fetchmail
je v tomto případě nutné spouštět s volbou --qvirtual qmailprefix-.
Zde se vyplatí vytvořit vlastnícho uživatele (např. mailer),
který bude prostřednictvím ~/.procmailrc poštu dále distribuovat.
Viz příklady v Offline-Mini-Howto, např. na http://www.linuxdoc.org/HOWTO/mini/Offline-Mailing.html