E-Mail automatisch an mich versenden
Andre Meyer
- cgi
Hallo Leute,
ich hab schon im Archiv gesucht, bin aber leider nicht fündig geworden. Und zwar versuche ich mit einem Perl Script ein E-Mail an mich zu versenden wenn jemand meine Homepage ansieht. Ich bin noch nicht sehr belesen in der Perl Programmierung und habe diesen Ansatz daher aus Selfhtml entnommen.
Das Script:
#!/usr/bin/perl
$counter = "count.txt";
open(ANZ, "$counter");
$anzahl = <ANZ>;
close(ANZ);
$mailto = 'andremeyer21@aol.com';
$subject = 'Wieder jemand auf der Seite!';
$mailtext= 'Schon $anzahl Besucher auf www.quatschimeyer.com';
my $Sendmail_Prog = "/usr/lib/sendmail";
open(MAIL,"|$Sendmail_Prog -t") || print "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
Im Browser steht dann immer "Befehl oder Dateiname nicht gefunden" und im Serverlog steht die Meldung "Sat, 15.03.2003 10:34:13 : Cgi-Program did not send header-termination (\n\n). Cgi-Program: F:\Homepage(save)\cgi-bin\user.pl"
Aufrufen tue ich dieses Script mit <form action="/cgi-bin/user.pl" method="post">
Gruß
Andre
Das Script:
#!/usr/bin/perl
#!/usr/bin/perl -w
use strict;
Das hilft dir bei der Fehlersuche.
$counter = "count.txt";
Dann müssen Variabeln deklariert werden (damit vermeidest du Tippfehler)
my $counter = "count.txt";
open(ANZ, "$counter");
Immer prüfen ob das überhaupt funktioniert:
open ANZ, $counter || die "Kann $counter nicht öffnen, weil: $!";
$anzahl = <ANZ>;
close(ANZ);$mailto = 'andremeyer21@aol.com';
Das @ Zeichen muss in Strings mit einfachen Anführungszeichen nicht maskiert werden.
$subject = 'Wieder jemand auf der Seite!';
$mailtext= 'Schon $anzahl Besucher auf www.quatschimeyer.com';
hier jeweils my davor.
my $Sendmail_Prog = "/usr/lib/sendmail";
open(MAIL,"|$Sendmail_Prog -t") || print "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);Im Browser steht dann immer "Befehl oder Dateiname nicht gefunden" und im Serverlog steht die Meldung "Sat, 15.03.2003 10:34:13 : Cgi-Program did not send header-termination (\n\n). Cgi-Program: F:\Homepage(save)\cgi-bin\user.pl"
So eine tolle Fehlermeldung krieg ich in deinem Falle nicht. Da steht ja ganz deutlich was falsch läuft.
Du startest ein CGI Programm und gibst keinen Header aus. Was soll dann der Browser anzeigen?
Struppi.
Hi!
Ich befürchte, dass ich jetzt ein wenig unkonstruktiv bin, aber was solls?! _grinst_
Ich würd das ganze einfach per PHP machen, die E-Mail bei jedem Seitenaufruf verschicken lassen (Mann kann auch noch ne IP-Sperre einrichten damit nicht bei jedem reload geschickt wird) und dann die eigentliche Seite per Inlclude dahinter einbinden...
Hat den Vorteil, dass du die Scripterei direkt in der aufgerufenen Seite hast und:
So wird dann die E-Mail immer dann an dich verschickt, wenn einer deine Seite aufruft und die IP eine bestimmte Zeit lang nicht auf der Seite war...
Gruss Adrian
Hi Adrian,
Ich bin noch nicht sehr belesen in der Perl Programmierung und habe diesen Ansatz daher aus Selfhtml entnommen.
--- aber nicht vollständig, oder? Es fehlt vor To:
print MAIL "From: $mailfrom\n";
Gruß, JOhnnY