SichlMichl Geschrieben 28. Februar 2006 Geschrieben 28. Februar 2006 Hallo zusammen, ich habe ein Problem mit dem Mailversand durch Perl. Bei der ganzen Geschichte handelt es sich um ein Skript, das eine Mailbenachrichtigung sendet, wenn es aufgerufen wurde. Die ganze Geschichte muss leider auf Windows laufen. Ich verwende die Perlversion 5.8.0. soweit bin ich schon: use strict; use warnings; use Net::SMTP; my $mailServer = "mailHost"; my $absender = "test\@test.de"; my $empfaenger = "versuch\@versuch.de"; my $betreff = "Betreff"; my $nachricht = "Nachricht"; my $smtp = Net::SMTP->new('$mailServer'); $smtp->mail("$absender"); $smtp->to($empfaenger); $smtp->data(); $smtp->datasend("From: $absender \n"); $smtp->datasend("To: $empfaenger \n"); $smtp->datasend("\n"); $smtp->datasend($nachricht); $smtp->dataend(); $smtp->quit; So, jetzt wirft er mit immer die folgende Fehlermeldung: Can't call method "mail" on an undefined value at mail.pl line 12. Weiß da jemand weiter? Ich bin grad ein bisschen am verzweifeln... Danke schon mal im voraus... Grüße Michl
mr-blister Geschrieben 28. Februar 2006 Geschrieben 28. Februar 2006 Hallo, was kommt denn raus wenn du das so benutzt: $smtp = Net::SMTP->new( Host => 'hiersolldiemailhin', Hello => 'dasbinichselber' Timeout => 30, Debug => 1, ) || die ("Mist, hat nicht geklappt!\n"); Mehr Infos unter CPAN Gruß
SichlMichl Geschrieben 1. März 2006 Autor Geschrieben 1. März 2006 Da geht er mit immer in die Fehlermeldung rein. Schön langsam habe ich die Befürchtung, dass ich meinen Server nicht auf diese weise erreichen kann...
Amstelchen Geschrieben 1. März 2006 Geschrieben 1. März 2006 $smtp->mail("$absender"); $smtp->to($empfaenger); meine erste vermutung ist, dass auf deinem mailHost kein SMTP-dienst lauscht oder der port blockiert ist. und nimm vielleicht mal die anführungszeichen bei "$absender" weg, analog zu $empfaenger. vielleicht klappts ja dann, wenn die variable nicht in anführungszeichen steht. s'Amstel
mr-blister Geschrieben 1. März 2006 Geschrieben 1. März 2006 Hi, Da geht er mit immer in die Fehlermeldung rein Also kannst du keine SMTP-Verbindung aufbauen. Probiers doch erstmal auf der Konsole: andreas@duster:~> telnet mein.mailserver.de 25 Trying 129.x.x.x.... Connected to mein.mailserver.de. .... Bekommst du da eine Verbindung zu deinem Mailserver? Gruß
SichlMichl Geschrieben 1. März 2006 Autor Geschrieben 1. März 2006 Ok, das hab ich gemach, und ich kann keine Verbindung zu meinem Server aufbauen. Verdammt... Das interessante ist, dass es mit PHP funktioniert... Naja, da kann man ja wohl nichts machen. Danke für die Hilfe... Grüße Michl
SichlMichl Geschrieben 1. März 2006 Autor Geschrieben 1. März 2006 Ok, das hab ich gemach, und ich kann keine Verbindung zu meinem Server aufbauen. Verdammt... Das interessante ist, dass es mit PHP funktioniert... Naja, da kann man ja wohl nichts machen. Danke für die Hilfe... Grüße Michl Moment, mir ist noch was eingefallen. Mit Ping ist er erreichbar, also kennen tut er den Server.
DevilDawn Geschrieben 1. März 2006 Geschrieben 1. März 2006 Es stand nie außer Frage das er den Server kennt. Aber Server erlaubt keine Verbindung von deiner Maschine (wo das Script läuft) auf seinen SMTP Serviceport (tcp/25). Solange telnet <ip> 25 nicht geht wird Mailversenden weder mit perl noch mit php gehen. PS: Lokale Virenscanner mit eMail Check Feature verhindern gelegentlich Verbindungen auf Mailserver. ggfs mal Deaktivieren und erneut mit telnet testen.
SichlMichl Geschrieben 1. März 2006 Autor Geschrieben 1. März 2006 Also Telnet funktioniert nicht. Aber muss den Telnet klappen? Was ist, wenn auf dem Server der Dienst gar nicht läuft?
Amstelchen Geschrieben 1. März 2006 Geschrieben 1. März 2006 Also Telnet funktioniert nicht. Aber muss den Telnet klappen? wenn du via telnet kein connect auf den mailserver herstellen kannst, ist das nicht zwangsläufig ein zeichen, dass der mailserver nicht von woanders erreichbar ist - stichwort mailvirenscanner von DevilDawn. Was ist, wenn auf dem Server der Dienst gar nicht läuft? dann läuft garnix. ich nehme jetzt mal stark an (bzw. meine glaskugel) - dass du keinen lokalen mailserver verwendest, sondern den deines providers (oder deiner firma?). konkret: wer ist denn "mailhost" bei dir? s'Amstel
SichlMichl Geschrieben 2. März 2006 Autor Geschrieben 2. März 2006 Vorausschicken muss ich evtl. noch, dass ich noch ziemlich jung bin, was die Computerbranche betrifft und daher auch noch nicht zuviel ahnung habe. Ja, ich mach des Skript in der Firma. Ich muss sagen, dass ich jetzt nicht genau weiß, was du "mailhost" meinst. Es läuft halt ein Exchangeserver. Hilft dir das weiter?
DevilDawn Geschrieben 2. März 2006 Geschrieben 2. März 2006 Um mit Perl/PHP Mails zu versenden benötigst du einen Mailserver. Das ist in dem Falle dann das Exchange. Exchange sollte auf port 25 lauschen. Dein Mailhost ist damit die IP/der DNS-Name des Exchange-Servers. telnet <IP des Exchange> 25 sollte ungefähr so aussehen: telnet exchange.firma.com 25 Trying 10.20.30.40... Connected to exchange.firma.com. Escape character is '^]'. 220 exchange.firma.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.1830 ready at Thu, 2 Mar 2006 10:08:00 +0100 Wenn das funktioniert sollte die IP des Exchange auch im Script verwendet werden können.
SichlMichl Geschrieben 2. März 2006 Autor Geschrieben 2. März 2006 telnet <IP des Exchange> 25 Ok, das hab ich verstanden. Ausprobiert hab ich das ganze auch. Krieg aber leider diese Meldung: Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 25: Verbinden fehlgeschlagen Ich geh mal davon aus, dass mich mein Server einfach keine Verbindung aufbauen lässt.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden