Zum Inhalt springen

SMTP Mailversand


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen


$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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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ß

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...