Georg Pfeiffer: "GET-String" erstellen

Beitrag lesen

Hallo,

ich habe folgende Problemstellung: Ich will (bestimmte) eingehende E-Mails in einer MySQL-Datenbank im Web speichern. Dazu habe ich mir ein kleines Perl-Skript geschrieben, das die Mail "parst" und mit einem "GET HTTP..."-Befehl eine PHP-Seite auf dem Server aufruft, welches die Daten an MySQL übergibt. Der eigentliche Mailinhalt wird in "GET-Syntax" als Parameter an den Aufruf der PHP-Seite angehängt, also etwa "GET http..server/seite.php?abs=$abs&subj=$subj...". Wahrscheinlich ist das etwas umständlich, aber es funktioniert, jedenfalls wo einfache Parameter übergeben werden.

Jetzt will ich aber den gesamten Mailtext (incl. Header) in einen solchen "PHP-String" umwandeln und an ein Datenbankfeld übergeben. Bislang habe ich mir die nachfolgenden Befehle gebastelt, wobey in $toto der gesamte Mailstring gespeichert ist, aber mir sind Zweifel gekommen, ob ich auf diesem Weg zum Ziele komme. Könnte mir jemand einen Tip geben?

Gruß
gp

$toto =~ s/ +/ /eg;
$toto =~ s/([^a-zA-Z0-9 .,-])/'%'.sprintf("%X",unpack("C",$1)) /eg;
$toto =~ s/ /+/g;

zl1: ersetze mehrere aufeinanderfolgende Leerzeichen durch ein einzelnes Leerzeichen
zl2: ersetze alle außer den angeführten Zeichen mit '%', gefolgt von dem Hexadezimalwert des Zeichens
zl3: ersetze alle Leerzeichen durch '+'