This is hopefully a simple one, where I am just missing a clue in the docs.
What I want is a simple script that tells me if an e-mail sent with Net::SMTP succeeds, or if it does not, why it does not.
In the example below I have a short script that sends mail, and tells me which addresses were successful. What I would like is to also list which ones failed -- hopefully with a failure code as well.
Here's the script:
#test_mail.pl
use Net::SMTP;
$smtp = Net::SMTP->new(
Host => '192.168.55.173',
Debug => 1,
);
$smtp -> mail("root\@test-server.my.home");
@good = $smtp -> recipient('good_address@my.home','bad_address@my.home
+',{ SkipBad => 1, Notify => ['FAILURE']});
$smtp -> data();
$smtp -> datasend("TO: good_address@my.home\n");
$smtp -> datasend("TO: bad_address@my.home\n");
$smtp -> datasend("SUBJECT: Test e-mail from root\n");
$smtp -> datasend("\n");
$smtp -> datasend("A test message.\n");
$smtp -> dataend();
print "These addresses went: @good\n";
$smtp -> quit();
When I run this the print statement does print out good_address@my.home as I expect. And I can see how the addresses succeed or fail with the debug output:
Net::SMTP=GLOB(0x977cdc0)>>> MAIL FROM:<root@test-server.my.home>
Net::SMTP=GLOB(0x977cdc0)<<< 250 2.1.0 Sender OK
Net::SMTP=GLOB(0x977cdc0)>>> RCPT TO:<good_address@my.home> NOTIFY=FAI
+LURE
Net::SMTP=GLOB(0x977cdc0)<<< 250 2.1.5 Recipient OK
Net::SMTP=GLOB(0x977cdc0)>>> RCPT TO:<bad_address@my.home> NOTIFY=FAIL
+URE
Net::SMTP=GLOB(0x977cdc0)<<< 550 5.1.1 User unknown
What I would like is to get bad_address and the 550 user unknown error into a form where I can print it. (This will eventually end up in a cgi script.)
It's got to be something simple that I am missing. Any clues?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.