SuperMailer: Unsubscribe / mailsend

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

Antworten
Thomas Weber
Beiträge: 16
Registriert: 28.03.2007, 16:25

Beitrag 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!
Thomas Weber
Beiträge: 16
Registriert: 28.03.2007, 16:25

Beitrag 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?)
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

typischer Fehler. :) In Zeile 16 des Scripts fehlt am Zeilenende das Semikolon (;) .
Thomas Weber
Beiträge: 16
Registriert: 28.03.2007, 16:25

Beitrag 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.
Zuletzt geändert von Thomas Weber am 29.03.2007, 13:40, insgesamt 1-mal geändert.
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag 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.
Thomas Weber
Beiträge: 16
Registriert: 28.03.2007, 16:25

Beitrag 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
Thomas Weber
Beiträge: 16
Registriert: 28.03.2007, 16:25

Beitrag 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.
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag 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.
Thomas Weber
Beiträge: 16
Registriert: 28.03.2007, 16:25

Beitrag 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.
Zuletzt geändert von Thomas Weber am 29.03.2007, 09:27, insgesamt 1-mal geändert.
Antworten