Mail_Problem. (SMTP)

Hi,
habe mal folgendes Programm -natürlich mit §realen" Server&Adressen- ausprobiert. Doch dann kam die Fehlermeldung:

Can’t call method „mail“ on an undefined value at test1.pl line 16.

Bei diesem Prog:

use Net::SMTP;

$mailServer = „Server“;

$nachricht = „Test.“;
$absender = „[email protected]“;
$betreff = „Test“;
$empfaenger = „[email protected]“;

print „Mailserver ist : $mailServer\n“;

$smtp = Net::SMTP->new($mailServer);

$smtp->mail($absender);

$smtp->to($empfaenger);

$smtp->data();

$smtp->datasend(„Subject: $betreff\n“);

$smtp->datasend(„To: $empfaenger\n“);

$smtp->datasend("\n");

$smtp->datasend("$nachricht");

$smtp->dataend();

$smtp->quit;

Kann mir vielleicht jemand sagen, was das zu bedeuten hat und wie ich diesen Fehler beheben kann ? Danke, das wäre sehr nett.

Ich benutze ActivePerl 5.005 für Win32 (auf WIN98PC)

Bin absoluter Neuling in dieser Sprache

Can’t call method „mail“ on an undefined value at test1.pl
line 16.

use Net::SMTP;

$mailServer = „Server“;

$nachricht = „Test.“;
$absender = „[email protected]“;
$betreff = „Test“;
$empfaenger = „[email protected]“;

print „Mailserver ist : $mailServer\n“;

$smtp = Net::SMTP->new($mailServer);

Liefert denn der Aufruf was zurück? Sprich steht in $smtp etwas sinnreiches drin?

Versuch es mal mit perl -d scriptname und schau Dir den Wert von $smtp an. Ich würde vermuten, er ist „undef“.

Klaus

$smtp ist leer, weil …
der angebene SMTP Server keiner ist … und der „Konstruktor“ new dies überprüft und dehalb „undef“ zurückgibt.

siehe Implementierung von SMTP.pm

sub new
{
my $self = shift;
my $type = ref($self) || $self;
my $host = shift if @_ % 2;
my %arg = @_;
my $hosts = defined $host ? [$host] : $NetConfig{smtp_hosts};
my $obj;

my $h;
foreach $h (@{$hosts})
{
$obj = $type->SUPER::new(PeerAddr => ($host = $h),
PeerPort => $arg{Port} || ‚smtp(25)‘,
Proto => ‚tcp‘,
Timeout => defined $arg{Timeout}
? $arg{Timeout}
: 120
) and last;
}

return undef
unless defined $obj
:
:

Klaus

Hallo Klaus !

$smtp ist leer, weil …
der angebene SMTP Server keiner ist … und der
„Konstruktor“ new dies überprüft und dehalb „undef“
zurückgibt.

Also liegt das daran, daß der angegebene SMTP-Server keiner ist ?
( Ich habe natürlich nicht *Server* angegeben, sonder einen mail. … Auch die EmailAdressen waren wie bereits beschrieben *echt*.) Kannst Du mir vielleicht einen *funktionierenden* SMPT-Server nennen ? Bzw. braucht man für dieses Prog spezielle Zugriffsrechte ? (Also, wenn ich z.B. mit telnet bei mail.gmx.net eine mail verschicken will, ist mir das nicht gestattet… Warte, ich probiers einfach mal… )

Danke für Deine Antwort. M.

Also, ging nicht. Habe schon zig Mailserver (auch spezielle SMTP-Server) ausprobiert. Es kommt immer die gleiche Fehlermeldung.
Warum ???

M.

Also, ging nicht. Habe schon zig Mailserver (auch spezielle
SMTP-Server) ausprobiert. Es kommt immer die gleiche
Fehlermeldung.

hmmm, eventuell solltest Du mal in das SMTP Modul reindebuggen.
Kann sein, dass die von Dir benutzten SMTP-Server eine SMTP-after-POP Authetifizierung verlangen - aus Spamschutzgründen :frowning: oder simpel, dass DU sie aus irgendwelchen Gründen nicht „connected“ kannst.