sendmail Alternative für Windows gesucht..
Mark
- cgi
Hallo !
Ich suche eine (für Perl) alternative zu sendmail für mein WAMP. Ich habe mir mal das NT:SMTP von Graham Barr angeschaut, aber damit komm ich irgendwie überhaupt nicht klar.
Was nutzt Ihr für den Emailversand unter Perl?
Gruß
Mark
Hi,
Ich suche eine (für Perl) alternative zu sendmail für mein WAMP. Ich habe mir mal das NT:SMTP von Graham Barr angeschaut, aber damit komm ich irgendwie überhaupt nicht klar.
Was nutzt Ihr für den Emailversand unter Perl?
darf ich mich redundanterweise anschliessen? ;-)
Gruss,
Lude
---
"Doof bist nicht Du, sondern die Gesellschaft."
Hi,
Ich suche eine (für Perl) alternative zu sendmail für mein WAMP. Ich habe mir mal das NT:SMTP von Graham Barr angeschaut, aber damit komm ich irgendwie überhaupt nicht klar.
Was nutzt Ihr für den Emailversand unter Perl?
darf ich mich redundanterweise anschliessen? ;-)
siehe weiter oben.
Eine kleine Ergänzung: Such mal auf den üblichen DownloadSites nach mail64 - das ist ein SMTP Server für windows der auch POP3 kann.
Diesen Server verwende ich zum Testen von PERL Scripts mit Net::SMTP auf windows- PC (localhost, port 25). POP3 ist dabei von Vorteil, da kannst du gleich schauen ob die Mail "angekommen" ist (POP3 auf localhost, poer 110)
Erwin
Rechtschreipung selwer gebrieft ;-)
Hallo !
Ich suche eine (für Perl) alternative zu sendmail für mein WAMP. Ich habe mir mal das NT:SMTP von Graham Barr angeschaut, aber damit komm ich irgendwie überhaupt nicht klar.
Was nutzt Ihr für den Emailversand unter Perl?
Net::SMTP; # ;-)
Du brauchst einen Postausgangsserver, falls der auf dem localhost nicht läuft, nimm einfach den SMTP Gateway von deinem Provider (oder einen anderen der erreichbar ist und über den du relay'en darfst)
Diesen Server gibst du bei der Objekterstellung an.
Erwin
=beispiel
#!/usr/bin/perl
###########################################################################
###########################################################################
$to = 'rosti@vr-web.de';
$confirm = 'http://home.vr-web.de/~rolfrost/confirm.html';
###########################################################################
$host = 'localhost';
###########################################################################
###########################################################################
###########################################################################
use strict;
use vars qw($to $host $confirm);
use subs qw(compute abbruch);
use CGI 'param';
use Net::SMTP;
compute;
exit;
###########################################################################
###########################################################################
sub mail{
# needs 5 or 6 arguments
my ($smtp_host, $rcpt, $subject, $msg, $abs_email, $abs_name) = @_;
my $from = ();
if($abs_name){ $from = "$abs_name <$abs_email>" }
else{ $from = "<$abs_email>"}
# Neues Objekt erstellen
my $s = new Net::SMTP($smtp_host);
# format the message
my $message = <<"--MSG";
From: $from
To: <$rcpt>
Subject: $subject
$msg
--MSG
# Ab geht die Post # dem SMTP Protocol entsprechendes Kommando
$s->mail($abs_email); # mail from:roro@local
$s->to( $rcpt ); # rcpt to:otto@local
$s->data( $message ); # data: eintippen der message, abschluss mit einem Punkt
$s->quit(); # quit
return 1;
}
###########################################################################
sub abbruch{
print "Content-type: text/html\n\n";
print qq(
<h1>$_[0]</h1>
<p>
$_[1]
);
exit;
}
###########################################################################
sub compute{
# Kontrolle der verwendeten Paramaternamen, diese Namen muss es geben
my %control = (
'from', 1,
'name', 1,
'subject',1,
'text',1,
);
my @names = param;
my $names = join "<br>", @names;
foreach my $name(@names){
if(not $control{$name}){
abbruch("Konfigurationsfehler","Falscher oder fehlender Parameter, bitte die Feldnamen from, name, subject und text verwenden, siehe Beschreibung im Script. Verwendet wurden die Feldnamen:<p>$names ");
}
}
# Testen des Postausgangsservers auf Port 25
my $client_sock = new IO::Socket::INET (
PeerAddr => $host,
PeerPort => 25,
Proto => 'tcp') or abbruch "Konfiguration oder Socketfehler","Der eingetragene Postausgangsserver $host ist an Port 25 nicht offen";
$client_sock->close();
# Nun die Parameter einlesen
my $from = param 'from' or abbruch "Fehleingabe","eMail ist erforderlich, Backbutton...";
my $name = param 'name' or abbruch "Fehleingabe","Name ist erforderlich, Backbutton...";
my $subject = param 'subject' or abbruch "Fehleingabe","Betreff ist erforderlich, Backbutton...";
my $text = param 'text' or abbruch "Fehleingabe","Text ist erforderlich, Backbutton...";
# Mail wird nun gesendet
mail($host,$to,$subject,$text,$from,$name) or abbruch "Fehler","Die Mail wurde nicht gesendet, moeglicherweise steht das Modul Net::SMTP nicht zur Verfuegung oder es wurde ein nicht funktionaler Postausgangsserver eingetragen.";
# Umleitung zu Bestaetigung
redir($confirm);
}
###########################################################################
sub trim{
my $s = shift;
$s =~ s/^\s+|\s+$//g;
return $s;
}
###########################################################################
sub redir{
my $url = shift;
print "Status: 302 Moved\n";
print "location: $url\n\n";
}
###########################################################################