E-Mail Adresse: | testuser@example.com |
Username auf dem eignen System: | testuser |
root@pd6000:~ # cd /usr/src root@pd6000:/usr/src # tar xfz /von/wo/man/das/halt/gespeichert/hat/fetchmail-6.3.8.tar.gz root@pd6000:/usr/src # cd fetchmail-6.3.8 root@pd6000:/usr/src/fetchmail-6.3.8 # ./configure --prefix=/usr --with-ssl root@pd6000:/usr/src/fetchmail-6.3.8 # make root@pd6000:/usr/src/fetchmail-6.3.8 # make installDie Option --with-ssl nur angeben, wenn man auch SSL-Support haben will. Mittlerweile unterstützen web.de und GMX die verschlüsselte Übertragung. Für SSL muß die OpenSSL Bibliothek installiert sein. Eine Installationsanleitung gibt es auf der Seite zu OpenSSH.
3. Installation von postfix
Postfix ist ein alternativer MTA (Mail Transfer Agent) und kann unter http://www.postfix.org/ bezogen werden. Postfix ist nicht so schwer zu konfigurieren, aber es kann einen trotzdem zur Weißglut bringen wie sendmail ;). Als erstes sollte man ein vorhandenes sendmail entfernen. Unter Debian geht das so:
# /etc/init.d/sendmail stop # dpkg -r sendmail
Wobei man sagen muß, das das nicht immer hinhaut...
Postfix läuft aus Sicherheitsgründen unter dem User postfix, eventuell gibt es den einen oder anderen Benutzer oder Gruppe schon (ich richte postfix auf einen neuen LFS 6.0 Systen ein):
root@pd6000:~ # groupadd postfix root@pd6000:~ # groupadd postdrop root@pd6000:~ # groupadd -g 65534 nogroup root@pd6000:~ # useradd -c postfix -d /dev/null -g postfix -s /bin/false postfix root@pd6000:~ # useradd -c nobody -d /home -g nogroup -s /bin/bash -u 65534 nobody root@pd6000:~ # chown postfix:postfix /var/mail root@pd6000:~ # cd /usr/src root@pd6000:/usr/src # tar xfz /von/wo/man/das/halt/gespeichert/hat/postfix-2.4.1.tar.gz root@pd6000:/usr/src # cd postfix-2.4.1 root@pd6000:/usr/src/postfix-2.4.1 # make root@pd6000:/usr/src/postfix-2.4.1 # make installDie Fragen kann man alle mit den vorbelegten Antwort abhaken.
Jetzt muß noch überprüft werden, ob eine eventuell alte sendmail Datei wirklich durch die neue von postfix ersetzt worden ist:
# ls -l /usr/sbin/sendmailDas Datum der Datei sollte von heute sein (oder halt jedenfalls von dann, wann man postfix installiert hat...), wenn nicht:
# cp /usr/src/postfix-2.4.1/src/sendmail/sendmail /usr/sbin/sendmail4. Konfiguration von fetchmail
poll pop.example.com protocol POP3 user testuser@example.com password blabla is testuser ssl
poll | hole Mails |
pop.example.com | vom Mailserver pop.example.com |
protocol POP3 | mit dem Protokol POP3 |
user testuser@example.com | vom User testuser@example.com |
password blabla | der das Password blabla hat |
is testuser | und sortiere sie in die lokale Mailbox vom User testuser ein |
ssl | SSL-Verschlüsselung nutzen |
# chmod 600 /root/.fetchmailrc5. Konfiguration von postfix
myhostname = localhost.localdomain relayhost = mail.example.com defer_transports = smtp disable_dns_lookups = yes6. Einrichten des Start-Stop-Scriptes
#!/bin/shDanach müssen noch die symbolischen Links gesetzt werden:
#
# Start and stopping postfix MTA.case "$1" in start) echo "Starting MTA postfix" /usr/sbin/postfix start ;; stop) echo "Stopping MTA postfix" /usr/sbin/postfix stop ;; *) echo "Usage: /etc/init.d/postfix {start|stop}" exit 1 ;; esac
exit 0
# cd /etc/rc0.d # cd /etc/rc0.d# ln -s ../init.d/postfix K20postfix # cd /etc/rc0.d# cd ../rc1.d # cd /etc/rc1.d# ln -s ../init.d/postfix K20postfix # cd /etc/rc1.d# cd ../rc2.d # cd /etc/rc2.d# ln -s ../init.d/postfix S20postfix # cd /etc/rc2.d# cd ../rc6.d # cd /etc/rc6.d# ln -s ../init.d/postfix K20postfix
7. Testen des Systems
Als erstes muß postfix gestartet werden (was mit dem Script eigentlich bei jeden Neustart auch geschehen sollte), ansonsten folgender Befehl (als Benutzer root):
# /etc/init.d/postfix start
8. Testen von fetchmail
Dazu folgender Befehl eingeben:
# fetchmail -v -a -k
-v | mehr Ausgaben |
-a | alle Mails holen |
-k | Mails auf Mailserver nicht löschen |
1. bei dem Hauptmenü ins Setup gehen ( S )
2. danach Config wählen ( C )
3. und bei user-domain gmx.de angeben
4. danach mit Exit ( E ) verlassen
5. und speichern ( Y )
Jetzt ein Mail an irgendeinen anderen Account schreiben, wo man Zugriff hat und danach als root folgenden Befehl ausführen:
# sendmail -q
Damit sollte die Mail bei bestehende Internetverbindung weggeschickt worden sein. (dieses ist nicht das originale sendmail, sondern nur eine Datei von postfix, die aus Kompatibelitätsgründen beiliegt)
Um die ganze Sache zu automatisieren, kann man folgende zwei Zeilen in der Datei /etc/ppp/ip-up anhängen:
/usr/bin/fetchmail -a -v /usr/sbin/sendmail -qDamit sollte zumindest unter Debian nach jeden Verbindungsaufbau Mails abholt und gesendet werden...
Falls diese Anleitung nicht funktionieren sollte, ist es eine gute Hilfe, auf einer anderen Konsole die Dateien /var/log/mail.* mit einen tail mitlaufen zu lassen.
9. User mappen
Manchmal ist es nötig, lokale User auf reale Adressen zu mappen. Normalerweise gibt man im Mailprogramm die Absender Domain an (siehe zum Beispiel in diesen Artikel weiter oben bei Pine). Solche Optionen bieten fast alle Programme, aber es klappt halt nicht immer. Eins von diesen Programmen ist der Newsreader slrn. In dessen Config kann man zwar einstellen, welche Domain er nutzen soll, aber er macht es einfach nicht. Mails wurden immer mit testuser@localhost.localhost verschickt. Diese Mails nimmt GMX (in den Bespielen hier reden wir immer von example.com) aus Anti-Spam Gründen erst gar nicht an (was auch gut ist). Nach langen suchen bin ich auf http://www.linux-community.de/Neues/story?storyid=5184 gestossen.
Hier eine Anleitung in Kompaktform:
als erstes die Datei /etc/postfix/canonical editieren, am Ende die Usermappings anhängen:
#lokaler User richtige E-Mail Adresse testuser@localhost.localhost testuser@example.comDiese Datei muß in eine Datenbank umgewandelt werden:
# postmap /etc/postfix/canonicalIn der Datei /etc/postfix/main.cf hängen wir jetzt am Ende noch folgende Zeile an:
sender_canonical_maps = hash:/etc/postfix/canonicalAnschließend Postfix neu starten. Eine E-Mail mit zum Beispiel slrn verfassen und mit mailq kontrollieren, ob der Absender nun korrekt ist.
zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 26. April 2007