Hi Monks. This is more of a continuation from a previous post.

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.

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
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:
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, ); }

In reply to Authen::SASL error by mwhiting

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.