|
|
Dieser Artikel ist verfübar in: English Castellano Deutsch Francais Italiano Nederlands Russian Turkce |
von Über den Autor: John verwendet Linux seit 1994; er ist einer der Editoren der französischen Ausgabe des LinuxFocus. Inhalt: |
Zusammenfassung:
Dieser Artikel erklärt die Konfiguration von Sendmail und Fetchmail auf einem lokalen Rechner der über eine PPP Verbindung mit dem Internet kommuniziert. Eine derartige Konfiguration erlaubt die Verwendung jedes UNIX E-mail-Clients (nicht nur Netscape). Bei jedem Aufbau einer PPP Verbindung werden die Nachrichten ausgetauscht.
Damit auf dem Linux Rechner überhaupt E-mails verwaltet werden können, benötigt man einen Mail Transfer Agent (MTA). Der bekannteste ist sicherlich Sendmail, aber es gibt eine Reihe weiterer wie zum Beispiel qmail, welcher schneller und einfacher zu konfigurieren ist, oder exim, der in Standard Debian Konfigurationen enthalten ist. Wir werden uns in diesem Artikel aber auf Sendmail beschränken und das Konfigurationskit der Berkley Universität von verwenden.
Um die E-mails, die für uns bei unserem Internet Service Provider (ISP) lagern abzuholen, benötigen wir zusätzlich Fetchmail. Fetchmail wird diese E-mails abholen und an das lokale Sendmail zur Weiterverarbeitung und Einordnung in die lokalen Mailboxen übergeben. Fetchmail kann unter anderem für diese Aufgabe die Protokolle pop-3 oder imap einsetzen.
Zur Konfiguration von Sendmail ist die Installation folgender Pakete erforderlich (rpm Format):
In Abhängigkeit der verwendeten Distribution können sich die Namen leicht unterscheiden. Die Versionsnummern können ebenfalls abweichen. Tatsächlich erforderlich sind die ersten beiden Pakete.(Anmerkung des Übersetzers: Aktuell ist Sendmail 8.10. Es sollte mindestens Sendmail 8.9 installiert werden um die neuen Sicherheitsfeatures zu unterstützen)
Am einfachsten erfolgt nun die Konfiguration von Sendmail in den folgenden Schritten:
/usr/lib/sendmail-cf/cf/config.mc
mit folgendem Inhalt:
# start of config.mcinclude(`../m4/cf.m4')dnl OSTYPE(`linux')dnl define(`SMTP_MAILER_FLAGS', `e9')dnl FEATURE(redirect)dnl FEATURE(nocanonify)dnl FEATURE(always_add_domain)dnl FEATURE(local_procmail)dnl GENERICS_DOMAIN(localhost.localdomain localhost localhost) FEATURE(genericstable)FEATURE(masquerade_envelope)dnl define(`confCF_VERSION',`dede's cf - 22/05/98')dnl define(`confCON_EXPENSIVE',`True')dnl define(`confME_TOO',`True')dnl define(`confCOPY_ERRORS_TO',`Postmaster')dnl define(`confDEF_CHAR_SET',`ISO-8859-1')dnl define(`confMIME_FORMAT_ERRORS',`True')dnl define(`SMART_HOST',`smtp8:[smtp.isp.net]')dnl define(`confTO_QUEUEWARN',`24h') MAILER(local) MAILER(smtp) # End of config.mc |
/etc/genericstable
:
dede: toto@isp.net root: toto@isp.net news: toto@isp.net |
/etc/alias
folgende Einträge existieren:
MAILER-DAEMON: postmaster postmaster: root |
/etc/nsswitch.conf
wie folgt:
passwd: files shadow: files group: files hosts: files dns services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files netgroup: publickey: automount: files aliases: files |
/etc/sendmail.cf
mit:m4 config.mc > /etc/sendmail.cf
-rw------- 1 root root 26468 mai 12 22:52 /etc/sendmail.cf
/usr/bin/sendmail -bi -oA/etc/genericstable
/etc/genericstable.db
erzeugt werden.newaliases
/etc/hosts
sollte eine der folgenden Zeile ähnliche Zeile enthalten:127.0.0.1 localhost.localdomain localhost localhost
kill `head -1 /var/run/sendmail.pid`
/usr/bin/sendmail -bd -os
Damit ist die Konfiguration von Sendmail abgeschlossen. Nun sollte die Funktionsfähigkeit überprüft werden:
Wir erzeugen eine Datei test.mail mit folgendem Inhalt:
Subject: Lokaler Test (leere Zeile) |
/usr/bin/sendmail -v dede < test.mail
Die folgenden Zeilen sollten angezeigt werden:
dede... Connecting to localdede... Sent
Nun läßt sich durch einen Aufruf von mail oder einem anderem E-mail Client (nicht Netscape) die Ankunft der E-mail kontrollieren.
Damit nun Netscape lokale E-mail liest konfigurieren wir es wie folgt:
Edit/Preferences/Mail & Groups/Mail Server
localhost.localdomain
als Outgoing mail (SMTP) server
movemail/built-in
als Mail server type
/var/spool/mail
mit chmod 1777 /var/spool/mail
.Von nun an wird Netscape die E-mails direkt von dem PC empfangen, selbst wenn dieser nicht mit dem Internet verbunden ist. Natürlich lassen sich auch andere E-mail-Clients einsetzen, wie zum Beispiel XFmail, emacs, mutt, pine usw..
Bevor wir nun unseren E-mail Server im Internet ausprobieren, müssen wir Fetchmail konfigurieren, damit es die für uns bei unserem Provider gespeicherten E-mails abholt: Wir erzeugen eine Datei .fetchmailrc in /home/dede:
poll pop.isp.net protocol POP3 user toto is dede password XXXXXXX |
Dabei sind toto und XXXXX die Anmeldekennung und das Kennwort unseres E-mail Kontos bei pop.isp.net. Falls wir mehr als eine Mailbox hätten, würden wir hier für jede Mailbox einen derartigen Eintrag vornehmen.
Die Datei .fetchmailrc muß folgende Berechtigungen aufweisen, damit Fetchmail sie nicht zurückweist:
-rw------- 1 dede dede 189 oct 6 21:45 /home/dede/.fetchmailrc
Nun zum echten Test:
mailq
Anschließend verbinden wir uns mit unserem ISP und geben folgenden Befehl ein:
/usr/bin/sendmail -q
sendmail -q arbeitet den Queue ab und verschickt die E-mail. Nach einiger Zeit sollte ein Aufruf von fetchmail
unsere E-mails abholen und wir sollte die E-mail von dem Spiegel zurückerhalten. Wenn alle E-mails angekommen sind, können wir die Verbindung zum ISP trennen.
Nachdem nun alles konfiguriert ist, wollen wir nun den Prozeß so automatisieren, daß er automatisch bei jedem Verbindungsaufbau durchgeführt wird.
Bei einem Verbindungsauf- bzw. Abbau werden von dem PPP-Dämon die Dateien /etc/ppp/ip-up bzw, ip-down ausgeführt. Zunächst kontrollieren wir, daß sich in diesen Dateien folgende Zeile befindet oder fügen sie an:
[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local $*
Die Ausführung der Dateien /etc/ppp/ip-up oder ip-down führt dann automatisch zum Aufruf der Dateien ip-up.local oder ip-down.local:
#!/bin/bash # /etc/ppp/ip-up.local #Record connection parameters echo `date` $4 $5 ppp-on >> /etc/ppp/history tail -n 1 Verbindungsfehler >> /etc/ppp/history # Send waiting mail echo Sende E-mail... >; /dev/console /usr/sbin/sendmail -q echo E-mail versandt. > /dev/console # Get mail waiting on the pop server echo Hole E-mail... > /dev/console fetchmail > /dev/console 2>&1 echo E-mail bekommen. > /dev/console #End exit 0 # end of /etc/ppp/ip-up.local |
Die beiden wichtigen Befehle in diesem Skript sind sendmail -q und fetchmail. Die anderen Befehle haben lediglich kosmetischen Charakter und erlauben:
#!/bin/bash # /etc/ppp/ip-down.local #Record connection parameters echo `date` ppp-off >> /etc/ppp/history #end exit 0 # end of /etc/ppp/ip-down.local |
Diese Dateien laufen in dem Benutzerkontext von root
, daher muß die Datei .fetchmailrc
in das /root
Verzeichnis kopiert werden.
Haben wir permanenten Zugang zu dem Internet so versendet Sendmail die E-mails regelmäßig wenn es folgendermaßen als Dämon gestartet wird:
sendmail -bd -q10m
So würde Sendmail alle 10 Minuten die E-mails versenden. Fetchmail läßt sich ebenfalls so starten:
fetchmail -d 600
So würde Fetchmail eingehende E-mails alle 10 Minuten (600 Sekunden) abholen.
Üblicherweise werden derartige Befehle in den Start (oder init) Dateien in den Verzeichnissen /etc/rc
oder /etc/rc.d/
eingetragen.(Die exakten Namen der Verzeichnisse hängen von der Distribution ab).
Eine derartige Konfiguration erlaubt das Senden der in dem Mail-Queue (mailq
) wartenden E-mails und das Abholen der bei dem Provider wartenden eingehenden E-mails. xbiff, xmailbox oder ähnliche Software kann nun anzeigen, daß neue E-mails eingegangen sind. Weiteres Feintuning ist mittels procmail möglich. Dies wurde eingehend in folgendem Artikel erklärt:November 1997 Artikel von .
|
Der LinuxFocus Redaktion schreiben © John Perr, FDL LinuxFocus.org Einen Fehler melden oder einen Kommentar an LinuxFocus schicken |
Autoren und Übersetzer:
|
2001-07-14, generated by lfparser version 2.17