Horst: Empfangen und Speichern von Mails

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

  1. 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!

  2. 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

  3. 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!

  4. vielen Dank, ich werde mal sehen, ob ich das hinbekomme :)

  5. Eine sehr gute Site dazu findet sicher auch hier:
    http://www.thomas-fahle.de/index.html