in reply to Re^2: Net::SMTP halts script
in thread Net::SMTP halts script

As I showed above, Net::SMTP->new() returns undef on failure. If you then try to call a method on this undef value, you effectively have undef->mail($FROM);of course this method call will die! You need an explicit test for undef, to ensure that the mail(), to(), cc(), etc., methods are only ever called on defined objects. For example (untested):

my $smtp = Net::SMTP->new($INVALID, Debug => 3); if (defined $smtp) { $smtp->mail($FROM); $smtp->to($EMAIL); $smtp->cc($USEREMAIL); $smtp->data(); $smtp->datasend("From: $FROM \n"); $smtp->datasend("To: $EMAIL \n"); $smtp->datasend("Cc: $USEREMAIL\n"); $smtp->datasend("Subject: $SUBJECT \n"); $smtp->datasend("\n"); $smtp->datasend("$MAILTEXT \n"); $smtp->datasend("\n"); $smtp->dataend(); $smtp->quit; } else { print $@, "\n"; }

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^4: Net::SMTP halts script
by nperrins (Initiate) on Aug 19, 2014 at 19:02 UTC

    Athanasius,

    That's the one I needed. Thanks for spelling it out for me.

    I can now add a "catch" line to warn when the connection is down.

    Cheers