Hello,

  Net::SMTP's sub auth() begins as (perl\site\lib\Net\SMTP.pm):

  sub auth {
    my (\$self, \$username, \$password) = [EMAIL PROTECTED];
  
    eval {
      require MIME::Base64;
      require Authen::SASL;
    } or \$self->set_status(500, ["Need MIME::Base64 and Authen::SASL todo 
auth"]), return 0;
  
  In line 117, replace Authen::SASL to Authen::SASLX, a 
  non-existant module.  One would think that the error 
  message of line 118 would be given to the user.  
  However, the failure is silent!  Why?

  Code to test is attached below -- need to provide a 
  valid $smtp_host.  Output from test is attached also.

  Thanks,

  --Suresh

  #!/use/bin/perl
  BEGIN {(*STDERR = *STDOUT) || die;}
  use diagnostics;
  use warnings;
  use strict;
  $| = 1;
  use Net::POP3;
  use Net::SMTP;
  
  my $smtp_host  = 'smtp.att.yahoo.com';
  my $src_domain = 'the.org';
  my $user_id    = 'the_user_id'; 
  my $password   = 'the_password'; 

  
  my %smtp_options = ( 
                       Host => $smtp_host, 
                       Hello => $src_domain,
                       Debug   => 4,
                     ); 
  
  
   if(!($mail = Net::SMTP->new(%smtp_options)))
   {
      print "ERROR:  Could not open $smtp_host\n$!\n"; 
      return -1;
   }

   if(!$mail->auth($user_id, $password))
   {
      print "ERROR:  Could not authenticate user $user_id\n$!\n"; 
      $mail->quit();
      return -1;
   }

  __END__

  Net::SMTP>>> Net::SMTP(2.31)
  Net::SMTP>>>   Net::Cmd(2.29)
  Net::SMTP>>>     Exporter(5.60)
  Net::SMTP>>>   IO::Socket::INET(1.31)
  Net::SMTP>>>     IO::Socket(1.30)
  Net::SMTP>>>       IO::Handle(1.27)
  Net::SMTP=GLOB(0x1b0b964)<<< 220 smtp118.sbc.mail.re3.yahoo.com ESMTP
  Net::SMTP=GLOB(0x1b0b964)>>> EHLO tms-eui.org
  Net::SMTP=GLOB(0x1b0b964)<<< 250-smtp118.sbc.mail.re3.yahoo.com
  Net::SMTP=GLOB(0x1b0b964)<<< 250-AUTH LOGIN PLAIN XYMCOOKIE
  Net::SMTP=GLOB(0x1b0b964)<<< 250-PIPELINING
  Net::SMTP=GLOB(0x1b0b964)<<< 250 8BITMIME
  ERROR:  Could not authenticate user [EMAIL PROTECTED]
  No such file or directory
  Net::SMTP=GLOB(0x1b0b964)>>> QUIT
  Net::SMTP=GLOB(0x1b0b964)<<< 221 smtp118.sbc.mail.re3.yahoo.com




_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to