Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Net::SMTP Problem

by jettero (Monsignor)
on Jun 04, 2010 at 19:09 UTC ( #843189=note: print w/replies, xml ) Need Help??

in reply to Net::SMTP Problem

See eval and use something like if( !eval{blarg()} ) { warn "hrm: $@" }. Also, consider something like Email::Valid to avoid the send step on bad addresses.

Replies are listed 'Best First'.
Re^2: Net::SMTP Problem
by joshe (Initiate) on Jun 04, 2010 at 19:22 UTC

    Dear jettero:

    Thanks for your fast reply, i am a completly monkey and newbie, can you give a example please


      Below example shows how to incorporate eval into the code you already have. jettero's method to wrap the subroutine gives you the added benefit of trapping other errors as well. But if you are just concerned about not failing for bad domains the below code (untested) should work.

      sub sendtextemail { use MIME::Lite; $from = "\"$from_name\" <$from_email>\n"; $sender = "\<$reply_1>\n"; $reply = "\"$from_name\" <$from_email>\n"; $to = "\"$fname\" <$email>\n"; $unsubscribe .="<$shortlink/r.cgi?s=$subid&a=$username&k=$valkey>\n"; use Net::SMTP; MIME::Lite->send('smtp', 'localhost'); $mailmsg = MIME::Lite->new( From => $from, 'Reply-to' => $reply, Sender => $sender, To => $to, Subject => $subjectline, Type => "text/plain; charset=iso-8859-1", "X-Identifier:" => "$subid-$username\n", "X-Ip:" => "$ip\n", Data => "$message", ); $mailmsg->add("Complaints-To" => "$emailabuse\n"); eval { $mailmsg->send; }; if ($@) { print "[Error] Your email send errored: [$@]\n"; } }

        Thank you. I have tried but not working

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://843189]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2016-10-23 09:01 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (300 votes). Check out past polls.