SMTP cannot create smtp object

I am able to open a telnet session and send the email via smtp manually. I am unable to send an email via smtp with a perl script. When I try and use Net::SMTP with perl, the script fails to create the SMTP object.

When running this code, here is the response:
Net::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: Unexpected EOF on command channel at email.pl line 3
Can't call method "mail" on an undefined value at email.pl line 4

The mailhost can be connected to outside of the perl script, so what else could be the problem?
#!/usr/bin/perl
use Net::SMTP;
$smtp=Net::SMTP->net('mailhost',Debug=>1);
$smtp->mail('sender\@domain.com');
$smtp->to('recip\@domain.com');
$smtp->data();
 
$smtp->datasend("Subject: test","\n");
$smtp->datasend("testing\n");
$smtp->datasend(".\n");
 
$smtp->dataend();
$smtp->quit();

Open in new window

kmonarchAsked:
Who is Participating?
 
kmonarchConnect With a Mentor Author Commented:
My @INC was pointing to an older perl version which didn't support SMTP. I added the correct path at the beginning of the script and it worked. Thanks for your help.
0
 
Kim RyanIT ConsultantCommented:
Line 3 should use the 'new' method, not net

$smtp=Net::SMTP->new('mailhost',Debug=>1);
0
 
kmonarchAuthor Commented:
That's a typo. Good catch, but that's not the problem.
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
Adam314Commented:
Did you replace 'mailhost' with your actual smtp server?
$smtp=Net::SMTP->new('mailhost',Debug=>1)
  or die "Could not create Net::SMTP object";

Open in new window

0
 
FishMongerCommented:
IMO, MIME::Lite is cleaner and easier.

http://search.cpan.org/~rjbs/MIME-Lite-3.021/lib/MIME/Lite.pm
0
 
kmonarchAuthor Commented:
Yes I used the actualy smtp server. No, MIME::Lite is not an option, I need to use smtp.
0
 
Adam314Commented:
Is your SMTP server up to date?  
0
 
kmonarchAuthor Commented:
Up to date in what respect? As I said in the initial posting, I am able to telnet to the smtp server and send emails. It does not appear to be a problem with the smtp server itself, just with the perl script creating an smtp object.
0
 
Adam314Commented:
Up to date meaning any known bugs with the server are fixed.

There is a newer version of Net::SMTP available - 2.31.  You could try upgrading to the latest, and see if that helps.
0
 
kmonarchAuthor Commented:
How do I check the version of my SMTP server?
0
 
FishMongerCommented:
perl -MNet::SMTP -e 'print $Net::SMTP::VERSION'
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.