mwhiting has asked for the wisdom of the Perl Monks concerning the following question:
I have a script that has been sending mail using Net::SMTP for a while now quite successfully. I recently was asked by my supervisor to add the ability to authenticate in that email script.
Khen1950fx posted a short script to use Authen::SASL more directly, instead of SMTP_auth as I can't ask multiple ISP's for our customers to install SMTP_auth. So here is my results from the server with the debug option on, and afterwards the modified version of his code suggestion. I get an error, hopefully someone can help me with it, Khen1950fx or anyone else.
You can see the Relaying denied. Proper authentication required. error in there. It seems to be getting past the 'die' statement when running the &auth subroutine, and then choking when it tries to send data. Here is my code currently:SMTP authNet::SMTP>>> Net::SMTP(2.29) Net::SMTP>>> Net::Cmd(2.26) Net: +:SMTP>>> Exporter(5.58) Net::SMTP>>> IO::Socket::INET(1.29) Net::SMTP +>>> IO::Socket(1.29) Net::SMTP>>> IO::Handle(1.25) Net::SMTP=GLOB(0x2 +a152d4)<<< 220 vinyl4.sentex.ca ESMTP Sendmail 8.14.5/8.14.5; Mon, 2 +Jul 2012 14:48:57 -0400 (EDT) Net::SMTP=GLOB(0x2a152d4)>>> EHLO local +host.localdomain Net::SMTP=GLOB(0x2a152d4)<<< 250-vinyl4.sentex.ca He +llo 50-56-96-131.static.cloud-ips.com [50.56.96.131], pleased to meet + you Net::SMTP=GLOB(0x2a152d4)<<< 250-ENHANCEDSTATUSCODES Net::SMTP=G +LOB(0x2a152d4)<<< 250-PIPELINING Net::SMTP=GLOB(0x2a152d4)<<< 250-8BI +TMIME Net::SMTP=GLOB(0x2a152d4)<<< 250-SIZE 30000000 Net::SMTP=GLOB(0 +x2a152d4)<<< 250-DSN Net::SMTP=GLOB(0x2a152d4)<<< 250-ETRN Net::SMTP= +GLOB(0x2a152d4)<<< 250-AUTH PLAIN LOGIN DIGEST-MD5 Net::SMTP=GLOB(0x2 +a152d4)<<< 250-STARTTLS Net::SMTP=GLOB(0x2a152d4)<<< 250-DELIVERBY Ne +t::SMTP=GLOB(0x2a152d4)<<< 250 HELP starting auth sending from [michael@thewhitings.ca] to [michael@thewhitings.ca]Net:: +SMTP=GLOB(0x2a152d4)>>> MAIL FROM: Net::SMTP=GLOB(0x2a152d4)<<< 250 2 +.1.0 ... Sender ok Net::SMTP=GLOB(0x2a152d4)>>> RCPT TO: Net::SMTP=GL +OB(0x2a152d4)<<< 550 5.7.1 ... Relaying denied. Proper authentication + required. Net::SMTP=GLOB(0x29dbba4)>>> DATA Net::SMTP=GLOB(0x29dbba4 +)<<< 503 5.0.0 Need RCPT (recipient) datasendNet::SMTP=GLOB(0x29dbba4)>>> test text Your Items Have Been Requested, Thank You
sub main { use Net::SMTP; $SMTPServer = 'localhost' unless (defined $SMTPServer); BEGIN { $| = 1; require MIME::Base64; require Authen::SASL; } my $host = $SMTPServer; my $user = $mainlogin; my $pass = $mainpwd; my $NetSMTP = Net::SMTP->new( Host => $host, Time => 30, Debug => 1, ); my $sasl; my $mechanisms = ['AUTH', 500]; print "starting auth<br>"; die "Couldn't auth sasl login: $!" unless \&auth; $NetSMTP->mail($emailFrom); $NetSMTP->to($LibDef{$LibName}[1]); $NetSMTP->data(); $NetSMTP->datasend('test text'); close (MAIL); print "<br><br><b>$REQUESTPAGE_TEXT_THANKYOU</b>"; } sub auth { my $sasl = Authen::SASL->new( mechanism => $mechanisms, debug => 1, callback => { user => $user, pass => $pass, authname => $user, ); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Authen::SASL error
by Anonymous Monk on Jul 03, 2012 at 20:25 UTC | |
by mwhiting (Beadle) on Jul 03, 2012 at 22:55 UTC | |
by Anonymous Monk on Jul 04, 2012 at 07:13 UTC | |
by mwhiting (Beadle) on Jul 05, 2012 at 21:47 UTC | |
by mwhiting (Beadle) on Jul 06, 2012 at 13:58 UTC | |
by mwhiting (Beadle) on Jul 06, 2012 at 14:03 UTC |