Empfangen und Speichern von Mails
Horst
- perl
0 Frank Schönmann0 Klaus Mock0 LanX0 Horst0 Reiner
Hallo Leute,
mit Sendmail kann man wunderbar Mails verschicken, das ist kein Problem. Was mich interessiert ist das Gegenteil: Wie kann ich Mails autoamtisch mit einem Perlscript empfangen und z.B. den Inhalt der Mail für den jeweiligen Empfänger in eine Datenbank eintragen. Wie kann ich quasi einen Maildienst wie z.B. GMX (nur ein paar Nummern kleiner *g*) aufbauen. In den Servereinstellungen habe ich die Möglichkeit eine Defaultmailadresse einzutragen, also eine Adresse, an die Mails weitergeleitet werden, die nicht direkt auf dem Server eingerichtet sind. Wie kann ich da z.B. ein Perlscript anhängen ??
Danke allerseits
hi!
mit Sendmail kann man wunderbar Mails verschicken, das ist kein
Problem. Was mich interessiert ist das Gegenteil: Wie kann ich
Mails autoamtisch mit einem Perlscript empfangen und z.B. den
Inhalt der Mail für den jeweiligen Empfänger in eine Datenbank
eintragen.
Es gibt fertige Perl-Module, die sowas erledigen können. Für deinen
Fall vermutlich das Modul Net::POP3. Findest du zum Beispiel im CPAN
(http://www.cpan.org/). Anleitung ist dann dabei.
bye, Frank!
Hallo,
Wie kann ich da z.B. ein Perlscript anhängen ??
Spontan fallen mir zwei Möglichkeiten ein.
1.) Einige Mailserver (wie sendmail oder qmail) unterstützen Benutzerkonfiguriertes forwarding. Bei sendmail muß eine Datei mit dem namen '.forward' im Benutzerverzeichnis angelegt sein, und in dem kannst Du auch Programme als empfänger angeben.
Näheres dazu findest Du in den Manpages zu forward(4) bzw aliases(4) bzw. analog in der qmail-mainpage.
Allerdings funktiooniert das nicht mit allen Systemen, und Du mußt auch Zugriff auf das home-directory des Mailusers am Mailserver haben.
2.) Ein Perlscript wird zyklisch gestartet und agiert als Mail-Client.
Dazu solltest Du aber auch in der Lage sein, auf dem Server (diesmal allerdings wahrscheinlich der Webserver) einen zyklischen Prozess zu erzeugen (cronjob unter Unix/Linux, Unter WinNT/Win2K eventuell 'at').
Für das Schreiben eines Clients unter Perl gibts eine ganze Menge.
Mail::POP3Client für den Zugriff auf POP3 Server
Mail::IMAPClient analog für IMAP-Server
MIME::Parser für das analysieren der Mails (im Paket MIME-tools)
Ich hab mal vor kurzem zweiteres gemacht, Mails empfangen ist nicht besonders aufregend, das krisensichere Analysieren von Mails ist dagegen soch etwas aufwendiger. Allerdings mußte ich den Inhalt der Mails etwas genauer klassifizieren, und da muß halt dafür gesorgt werden, daß da jeder Schrott noch irgendwie erkannt wird, da ja genug DAU herumlaufen, welchen man nicht beibringen kann, daß es besser wäre, HTML-Mails nicht zu versenden.
Aber wie heißt doch eine Grundregel beim Programmieren:
Sei genau mit Deinem Output, und tolerant zu dem Input.
Hmmm, ich plaudere wohl wieder zu viel. Und Schluß.
Grüße
Klaus
Hi
Unter Unix benutzt man gängigerweise procmail.
Dieses Programm wird immer [1] aufgerufen wenn eine Mail eingeht und je nach
eingestellten Filterkriterien dann andere Prozesse angestoßen.
Das gute daran ist, dass es unter der userid läuft, d.h. geringeres
Sicherheitsrisiko als bei root!
IMHO ist diese Variante dem zyklischen Pollen eines
POP-Servers vorzusiehen (Last!)
Hilft dir das weiter :)?
Viele Grüße
Rolf
[1] falls vom Admin abgestellt kannste immer noch über die .forward
herangehen!
vielen Dank, ich werde mal sehen, ob ich das hinbekomme :)
Eine sehr gute Site dazu findet sicher auch hier:
http://www.thomas-fahle.de/index.html