Net::SMTP - Unknown callback

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I am trying to use Net::SMTP to send e-mail from a CGI script in
a hosting environment (not my own server). The server (which I
have control) requires authentication (naturally), and I already
tested that I can use Net::SMTP from other machine (not that
hosting) to connect and send e-mail through that server.

However, when I uploaded my script to the hosting environment,
the connecting effort dies with the error "Unknown callback:
'authname'. (user|auth|language|pass)".

This can be incompatible module, and I can install my own
module, but first I need to find out which module to install. I
already installed the newest libnet (1.22) and Authen::SASL
(2.11), but they did not help.

The perl version is a bit old - 5.008004 - not sure if this have
any effect. BTW I don't have any power to update that.

Any idea what causing this the error? Any suggestion?

Below is the part of the code doing the connect and

  if($debug) { print STDERR "going to connect to $ssph->\n"; }
  my $smtp= Net::SMTP->new
   (Host=> $ssph->,
    ($ssph-> ? (Port=> $ssph->) : ()),
    ($debug ? (Debug=> 1) : ())
   ) || die "open SMTP $ssph->: ".$!;
  if($debug) { print STDERR "connected to $ssph->, going to auth\n"; }

  if($ssph->User and $ssph->) {
   $smtp->auth($ssph->User, $ssph->) || die "at auth: ".$smtp->message();
  if($debug) { print STDERR "auth to $ssph-> successful\n"; }

This is the output:

going to connect to
Net::SMTP>>> Net::SMTP(2.31)
Net::SMTP>>>   Net::Cmd(2.29)
Net::SMTP>>>     Exporter(5.58)
Net::SMTP>>>   IO::Socket::INET(1.27)
Net::SMTP>>>     IO::Socket(1.28)
Net::SMTP>>>       IO::Handle(1.24)
Net::SMTP=GLOB(0x88bdfc8)<<< 220 ESMTP Postfix
Net::SMTP=GLOB(0x88bdfc8)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x88bdfc8)<<< 250-PIPELINING
Net::SMTP=GLOB(0x88bdfc8)<<< 250-SIZE 10240000
Net::SMTP=GLOB(0x88bdfc8)<<< 250-VRFY
Net::SMTP=GLOB(0x88bdfc8)<<< 250-ETRN
Net::SMTP=GLOB(0x88bdfc8)<<< 250-AUTH PLAIN LOGIN
Net::SMTP=GLOB(0x88bdfc8)<<< 250-AUTH=PLAIN LOGIN
Net::SMTP=GLOB(0x88bdfc8)<<< 250 8BITMIME
connected to, going to auth

(then die with "Unknown callback: 'authname'. (user|auth|language|pass)")


                              (stephan paul) Arif Sahari Wibowo
    _____  _____  _____  _____
   /____  /____/ /____/ /____
  _____/ /      /    / _____/ /

Re: Net::SMTP - Unknown callback

I met same problem on SUSE Linux 10.1 last week.

Net::SMTP::SSL=GLOB(0x84d7d84)<<< 250-SIZE 28311552
Net::SMTP::SSL=GLOB(0x84d7d84)<<< 250-8BITMIME
Net::SMTP::SSL=GLOB(0x84d7d84)<<< 250-AUTH LOGIN PLAIN
Unknown callback: 'authname'. (user|auth|language|pass)

My perl script run normally on windows vista.

I installed Authen::SASL 2.10 by CPAN on SUSE Linux 10.1.

But my server already be installed perl-Authen-SASL-2.09-11.i586.rpm.
Maybe confuse and perl used old version.

So, I uninstalled this package. Then resolved it.
I don't know workaround on hosting server.
but maybe refer to incorrect Authen::SASL module.


Site Timeline