Seite 1 von 1
Verfasst: 29.03.2007, 14:33
von Thomas Weber
Ich muss mich korrigieren: Es scheint nun DOCH zu funktionieren. Keine Ahnung, was da vorhin noch falsch lief...
Vielen Dank für Deine Hilfe!
Verfasst: 29.03.2007, 14:31
von Thomas Weber
Tja, darauf hätt ich auch selber kommen...

auf Zeile 156 war auch noch grad eine Klammer zu viel.
Ausführen aus Kommandozeile funktioniert nun:
C:\\>perl\\bin\\perl.exe e:\\htdocs\\hapimag\\awstats\\cgi-bin\\newsletter.pl
Status: 301
Location:
http://www.hapimag.com/newsletter/falsche_email.html
Beim Aufruf des \"Abmelden\" Links aus einem an mich gesendeten Newsletter erhalte ich aber noch folgenden Fehler:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
(Link:
http://www.hapimag.com/awstats/cgi-bin/ ... nsubscribe)
Ebenfall erhalte ich noch keine E-Mail betreffend der Abmeldung. (Ich habe provisorisch mal meine eigene E-Mail Adresse als $Recipient angegeben > dort werden Abmeldung hingeschickt, oder?)
Verfasst: 29.03.2007, 14:19
von mirko
typischer Fehler.

In Zeile 16 des Scripts fehlt am Zeilenende das Semikolon (;) .
Verfasst: 29.03.2007, 13:39
von Thomas Weber
Vielen Dank schon mal. Scheint noch nicht ganz zu funktionieren. Beim ausführen ab Kommandozeile erhalte ich folgende Meldung:
C:\\>perl\\bin\\perl.exe e:\\htdocs\\hapimag\\awstats\\cgi-bin\\newsletter.pl
\"
weber.thomas@hapimag.com\" is not exported by the Net::SMTP module
Can\'t continue after import errors at e:\\htdocs\\hapimag\\awstats\\cgi-bin\\newsletter.pl line 19
BEGIN failed--compilation aborted at e:\\htdocs\\hapimag\\awstats\\cgi-bin\\newsletter.pl line 19.
Hab Dir mal mein aktuelles Script rangehängt.
Verfasst: 29.03.2007, 12:51
von mirko
Die Variable $MailProgram kann so bleiben, da man diese nicht mehr braucht. Man muss die Routine sub mail {... } komplett austauschen.
mail hat die Parameter
mail($EMail, $EMailSubject, $message, $headers);
also wie in PHP.
die neue Routine müsste dann so aussehen (nicht getestet, Synataxfehler nicht ausgeschlossen!):
Code: Alles auswählen
sub mail {
$smtp = Net::SMTP->new(\'here.com\'); # connect to an SMTP server here.com gegen richtigen Servernamen tauschen falls notwendig
$smtp->mail( $Recipient ); # use the sender\'s address here
$smtp->to($_[0]); # recipient\'s address
$smtp->data(); # Start the mail
# Send the header.
$smtp->datasend("Subject: ".$_[1]."\\n");
$smtp->datasend("To: ".$_[0]."\\n");
$smtp->datasend("From: ".$Recipient."\\n");
$smtp->datasend("\\n");
# Send the body.
$smtp->datasend($_[2]);
$smtp->dataend(); # Finish sending the mail
$smtp->quit; # Close the SMTP connection
}
oben im Script muss natürlich unter die andere use-Anweisungen use Net::SMTP; mit rein.
Verfasst: 29.03.2007, 11:56
von Thomas Weber
Die Klasse net :: smtp ist auf meinem Server vorhanden. Mit der sollte Mailen auch möglich sein. (Siehe weiter unten.)
Wie genau müsste ich dann die Variable $MailProgramm im newsletter Script unter Windows abfüllen? Momentan steht da $MailProgram = \"/usr/sbin/sendmail\";
use Net::SMTP;
$smtp = Net::SMTP->new(\'here.com\'); # connect to an SMTP server
$smtp->mail( \'
user@here.com\' ); # use the sender\'s address here
$smtp->to(\'
user@there.com\'); # recipient\'s address
$smtp->data(); # Start the mail
# Send the header.
$smtp->datasend(\"To:
user@there.com\\n\");
$smtp->datasend(\"From:
user@here.com\\n\");
$smtp->datasend(\"\\n\");
# Send the body.
$smtp->datasend(\"Hello, World!\\n\");
$smtp->dataend(); # Finish sending the mail
$smtp->quit; # Close the SMTP connection
Verfasst: 29.03.2007, 11:13
von Thomas Weber
PHP ist bei uns nicht wirklich Standard, weshalb ich eigentlich schon weiterhin auf die PERL Lösung hoffe... sowas hier wäre keine Lösung?
http://www.ntsendmail.com/ scheint ebenfalls nichts zu kosten. Anstelle von \"your.mailserver.com\" könnte ich unseren eigenen Mailserver angeben. Auf dem Webserver unseres Corporate Auftrittes möchte ich auch Sicherheitsgründen keinen Mailer einrichten.
Verfasst: 29.03.2007, 10:26
von mirko
Besser das PHP4/5-Script nehmen. Für Perl braucht man ein SendMail, das gibt es auch für Windows aber kostet natürlich. Der Windows-Server selbst muss natürlich einen SMTP-Server-Dienst aktiviert haben, ansonsten kann das PHP-Script ebenfalls keine Mails versenden.
Verfasst: 29.03.2007, 09:26
von Thomas Weber
Ich habe SuperMailer 4.30 erfolgreich lizensiert, installiert und konfiguriert. Die Anmelde- und Abmeldescripts funktionieren ebenfalls. Mein Problem ist nun folgendes: PERL Script newsletter.pl will ein sendmail verwenden, das auf meinem Server (noch) nicht vorhanden ist. Meine Webseite läuft auf einem W23 Server unter IIS, zusätzlich installiert habe ich ActiveState Perl.
Fragen: was für ein sendmail soll ich verwenden? Reicht herunterladen und ins /bin Verzeichnis kopieren? SMTP Server ist nicht der Webserver selber, sondern ein dedizierter Mailserver.
Habe (bis jetzt) so gut wie keine Ahnung von PERL, und die allermeisten Infos, die ich in Foren finde, befassen sich halt mit PERL unter LINUX.
Gruss und danke im Voraus für ein paar Tipps. Thomas.