Hi brothers.
A program of mine contains the following section :
...
MIME::Lite->send(
'smtp' => $args->{'smtp'},
'AuthUser' => $uid,
'AuthPass' => $args->{'smtppw'}
);
...
This has worked fine for a couple of years, under perl 5.8.8.
This last week-end, the host was upgraded from Debian Linux "Etch" to "Lenny", and at the same time perl went from 5.8.8 to 5.10.0.
As a result, the same program now crashes with the following error :
2011/05/12-11:40:25 error SMTP auth() command failed:
5.5.4 Syntax: AUTH mechanism
Does that ring a bell to anyone ?
I tried to follow the chain of what happens, and track it down to this section of MIME::Lite :
my $smtp = MIME::Lite::SMTP->new( $hostname, %opts )
or Carp::croak "SMTP Failed to connect to mail server: $!\n";
# Possibly authenticate
if ( defined $args{AuthUser} and defined $args{AuthPass}
and !$args{NoAuth} )
{
if ($smtp->supports('AUTH',500,["Command unknown: 'AUTH'"])) {
$smtp->auth( $args{AuthUser}, $args{AuthPass} )
or die "SMTP auth() command failed: $!\n"
. $smtp->message . "\n";
} else {
die "SMTP auth() command not supported on $hostname\n";
}
}
and gather that MIME::Lite::SMTP->new() itself boils down to a Net::SMTP->new(), but then I get hopelessly lost, because that is definitely wizard code from Graham Barr and such, leading further to Authen::SASL and lots of references to globs (or vice-versa, my head spins).
Anyway, my basic question is : this worked fine for years with perl 5.8.8, the mail server has not changed, my program has not changed, so any clue about what is happening here ?