Login
Immer anmelden
SSL Login

 
Newsletter
Werbung
Shopping
International Shopping
 
 


Yatego Shopping bei über 10000 Händlern und über
3 Mio. Artikel.


Linux

:

Linux-Bücher

Handy
Shop

  und Computer.

Viele Services

:

Apple iPad Reader,


Ratgeber,

 

Techniktops,

 

Yatego Clicks

  & über 3000

Gutscheine.

 
So, 24. Mai 2009, 00:00

Mailserver auf Debian mit IMAP, Smarthost und Filter

[options]
verbose = 0
delete = true
# true= mails werden auf Server gelöscht; false= Mails werden nicht gelöscht
read_all = false
# true= alle Mails werden abgeholt; false= nur neue Mails werden abgeholt
message_log = ~/.getmail/mailbox1.log
# Fehler beim Abholen werden in die Logdatei mailbox1 geschrieben
[retriever]
type = SimplePOP3Retriever
server = mail.ihrprovider.de
# Die Adresse des Mailservers des Providers
username = username
# Der Username des Mailservers
password = passwort
# Passwort, Achtung, steht im Klartext hier
[destination]
type = MDA_external
# Das sagt aus, dass ein externes Programm die Mails übernimmt
path = /usr/bin/procmail
# Procmail nimmt alles in die Hand
arguments = ("-dpostfach1", )
# Der Nutzer postfach1 bekommt die Mails überstellt

Wenn Sie mehrere externe Mailboxen besitzen, legen Sie für jede Mailbox eine eigene Konfigurationsdatei an. Benennen Sie jede eindeutig, damit Sie diese später auseinanderhalten können. Zudem legen Sie in jeder Datei fest, welcher Nutzer die Mails bekommen soll. Das wird im Bereich »arguments = ("-dxyz", )« festgelegt. xyz ist der jeweilige Nutzer, der die Mails bekommen soll.

Damit nur getmail die Datei lesen darf, ändern Sie die Zugriffsrechte wie folgt

cd /home/getmail
chown getmail:getmail -R .getmail
chmod 640 .getmail/*

Im Grunde haben wir nun unseren kleinen Daemon schon fertig, der später regelmäßig all unsere Mailboxen nach neuen E-Mails abklappert. Falls ein Firewall aktiv ist, muss Port 110 nach außen offen sein.

Installation und Konfiguration von Procmail

Procmail bekommt ja nun alle Mails und verteilt sie nach entsprechenden Schemata in die einzelnen Postfächer der Mailnutzer. Es kann sein, dass procmail schon auf dem System vorhanden ist. Falls nicht, wird es als Root mit apt-get install procmail installiert. Dann in das Verzeichnis des Users postfach1 wechseln und eine Konfigurationsdatei mit dem Namen .procmailrc und folgendem Inhalt anlegen:

MAILDIR=$HOME/mail # Hier kommen die Mails rein
LOGFILE=$HOME/log/procmail.log # Fehlermeldungen werden hier gespeichert
VERBOSE=on
:0
* ^TO_.*beispiel.de # Mails, deren Empfänger auf beispiel.de endet,
.test/ # landen in INBOX.test
:0
* ^From: .*spammer@domain.com # Mails von einer bestimmten Adresse werden
/dev/null # gelöscht
:0
* ^TO_.*test2@beispiel.de # alle Mails an eine bestimmte Adresse werden
.test2/ # in die INBOX.test2 einsortiert
:0
./ # Alles andere an direkten Posteingang

Zudem benötigen wir zwei neue Verzeichnisse:

mkdir mail
mkdir log

Folgendes ist hier wichtig: Hinten müssen die Kommentare wieder entfernt werden, sonst werden diese in die Suchkriterien mit einbezogen und es wird nichts gefunden. Den Ordner ./ auf jeden Fall anlegen! Alternativ vielleicht auch .INBOX.mismatches nennen. Denn wenn einmal etwas nicht in den Regeln zutreffen sollte, dann landet die Mail immer hier. Dann kann man in der Logdatei nachsehen, warum die Mail nicht zugeordnet wurde, und die Regeln in .procmailrc anpassen.

Das ^ am Anfang einer Regel bedeutet, dass das Wort am Zeilenanfang gesucht wird. Ein To oder From im Header steht immer vorne. Mit einem .* vor einem Suchbegriff kann man mögliche zusätzliche Leerzeichen mit einschließen und vermeidet, dass bei zusätzlichen Leerzeichen nichts gefunden wird.

Erster Test

Um nun zu überprüfen, ob die ersten Regeln funktionieren und auch von der Mailbox abgerufen werden kann, musst man sich als User getmail einloggen. Hierfür müssen wir unsere Sperre in der Datei /etc/passwd rückgängig machen. In der Zeile des Benutzers getmail ändern wir /bin/false wieder auf /bin/bash ab. Jetzt funktioniert die Anmeldung:

su getmail

Ändern Sie zum Testen auch in der Getmail-Konfiguration delete = true auf delete = false, da Sie garantiert öfter testen müssen.

Führen Sie nun den Abruf aus:

getmail -v --rcfile ~/.getmail/mailbox1.conf

Wenn Sie mehrere Boxen abrufen, dann einfach diese zusätzlich anhängen:

getmail -v --rcfile ~/.getmail/mailbox1.conf --rcfile ~/.getmail/mailbox2.conf

Wenn alles gut läuft, bekommen Sie eine entsprechende Meldung:

getmail -v --rcfile ~/.getmail/mailbox1.conf
getmail version 4.7.8
Copyright (C) 1998-2007 Charles Cazabon. Licensed under the GNU GPL version 2.
SimplePOP3Retriever:blah@mail.beispiel.de:110:
 msg 1/14 (2428090 bytes) delivered
 msg 2/14 (3415 bytes) delivered
 msg 3/14 (3253 bytes) delivered
 msg 4/14 (2940 bytes) delivered
 msg 5/14 (4124 bytes) delivered
 msg 6/14 (3687 bytes) delivered
 msg 7/14 (4498 bytes) delivered
 msg 8/14 (5705 bytes) delivered
 msg 9/14 (5377 bytes) delivered
 msg 10/14 (3863 bytes) delivered
 msg 11/14 (4275 bytes) delivered
 msg 12/14 (5422 bytes) delivered
 msg 13/14 (3715 bytes) delivered
 msg 14/14 (4015 bytes) delivered
 14 messages (2482379 bytes) retrieved, 0 skipped

Loggen Sie sich wieder aus:

exit

Gehen Sie in das Home-Verzeichnis des Postfach1 und sehen Sie unter mail nach, ob dort Mails unter new liegen. Wenn diese im Spam-Ordner gelandet sind, dann stimmt etwas mit der procmail-Regel nicht. Zum erneuten Test löschen Sie alle Verzeichnisse unter mail und wiederholen das solange, bis die Mails korrekt einsortiert werden. Es wird sicherlich hin und wieder Mails geben, die nicht sauber einsortiert werden. Für diese Gelegenheit müssen Sie dann die Regeln entsprechend anpassen.

Nun werden wir den Mailabruf automatisieren. Dazu öffnen wir, noch als User getmail angemeldet, die Crontab mit

crontab -e

Dort fügen wir den Getmail-Aufruf ein:

*/5 * * * * /usr/bin/getmail -v --rcfile ~/.getmail/mailbox1.conf \
 --rcfile ~/.getmail/mailbox2.conf > /dev/null 2>&1

Das ruft den Prozess nun alle fünf Minuten auf. D.h. alle fünf Minuten werden die externen Mailboxen auf neue E-Mails überprüft und an procmail übergeben, das filtert und in die Mailboxen verteilt.

Wenn alles glatt läuft, dann melden Sie sich als getmail ab und sperren wieder den Zugang für diesen Benutzer. In /etc/passwd setzen wir die Shell dieses Benutzers wieder auf /bin/false.

Pro-Linux
Newsletter
Neue Nachrichten