FrankS: eMail über CGI/Perl-Script senden

Beitrag lesen

Hallo P. !

(Dies sind meine ersten Versuche mit CGI/Perl!) Ich verwende folgendes Script, um
Formulardaten aufzubereiten und will diese dann an eine bestimmte eMail-Adresse
schicken. Ich verwende WIN98 und Outlook Express. Es funktioniert so weit, daß die
Daten zwar korrekt erzeugt und Outlook Express gestartet wird, aber die Daten nicht
in die zu sendende eMail übernommen werden, geschweige denn, daß diese abgeschickt
würde. Wahrscheinlich liegt es u.a. an fehlenden Aufrufparametern für Outlook Express -
wenn ja, welche?

[...]

PS: Falls das von Interesse ist: ich habe einen lokalen WWW-Server für die
CGI-Schnittstelle installiert (OmniHTTPd).

Willst Du Dein CGI nur zum Testen auf Deinem lokalen WWW-Server laufen lassen, oder sollen die Formulardaten später mal auf einem im Netz stehenden Server verarbeitet und als Mail verschickt werden? Oder willst Du deinen PC als Server ins Netz stellen? Da  CGI'S immer serverseitig laufen, musst Du das mailprogramm aufrufen, das auch auf dem Server läuft. Und das ist mit Sicherheit nicht Outlook E. unter Win98. Soll dieser PC in einem Intranet als Server stehen, dann musst Du andere Mail-Tools nutzten (siehe posting von Björn Höhrmann).

Ein zweites Problem: Auch wenn ich bei $Mailprog= etwas völlig
sinnloses eingebe, erscheint die Fehlermeldung "Mailprogramm kann nicht gestartet
werden\n" nicht. Warum?

Warum die Fehlermeldung erscheint, ist ganz einfach: Du hast es so gewollt, und zwar mit der folgenden Zeile:

open(MAIL,"$Mailprog") die "Mailprogramm kann nicht gestartet werden\n";

Schlägt das Öffnen des Programms fehlt, wird 'die' ausgeführt. Dieses beendete das Script, gibt aber vorher noch den angegebenen String aus.

Und wo müßte sie eigentlich erscheinen?

Genau dort. Denn das CGI schickt die Ausgabe zum Server und der schickts dann an den Client, der das CGI aufgerufen hat. Deshalb siehst Du's im Browser.

Auf http://cgi.xwolf.com/faq/cgitutor.shtml findest Du ein kurzes CGI-Tutorial. Dort kannst Du den Ablauf eines CGI-Aufrufs nachlesen.

Gruß Frank