in reply to Unable to send email using MIME::Lite

You're using the SSL port without telling MIME::Lite to use SSL, and you don't appear to be using the the correct host name.

From http://help.yahoo.com/l/us/yahoo/mail/original/mailplus/pop/pop-14.html,

Update: I swear I saw an Ssl => 1 option when I looked at the docs, but there isn't. I must have been looking at the wrong window. Later posts seem to indicate that SSL is automatically detected.

Replies are listed 'Best First'.
Re^2: Unable to send email using MIME::Lite
by sabari (Beadle) on Apr 28, 2010 at 07:26 UTC
    The below code does that
    #!/usr/bin/perl #===================================================================== +========== # # FILE: ExampleMailer.pl # # USAGE: ./ExampleMailer.pl # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: S.SABARINATHAN (Sabarinathan), <sabarinathan@bksyste +ms.co.in> # COMPANY: Bk Systems (P) Ltd,Chennai # VERSION: 1.0 # CREATED: 04/28/10 12:52:40 IST # REVISION: --- #===================================================================== +========== use strict; use warnings; use MIME::Lite; use Net::SMTP; my $from = 'perlmail@bksys.co.in'; my $to = 'sabarinathan@bksys.co.in'; my $host = '192.168.1.1'; my $subject = 'A test message by script '; my $body = "Pls ignore this msg as this is test from perl scripts "; my $msg = MIME::Lite->new ( From => $from, To => $to, Subject => $subject, Type =>'multipart/mixed' ) or die "Error creating multipart container: $!\n"; $msg->attach ( Type => 'TEXT', Data => $body ) or die "Error adding the text message part: $!\n"; MIME::Lite->send('smtp', $host, Timeout=>60); $msg->send;
    Best Regards, S.Sabarinathan,
      Below code does the login
      #!/usr/bin/perl #===================================================================== +========== # # FILE: ExampleMailer.pl # # USAGE: ./ExampleMailer.pl # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: S.SABARINATHAN (Sabarinathan), <sabarinathan@bksyste +ms.co.in> # COMPANY: Bk Systems (P) Ltd,Chennai # VERSION: 1.0 # CREATED: 04/28/10 12:52:40 IST # REVISION: --- #===================================================================== +========== use strict; use warnings; use MIME::Lite; use Net::SMTP; my $from = 'YAHOO ID'; my $to = 'sabarinathan@bksystems.co.in'; my $host ='plus.smtp.mail.yahoo.com'; my $subject = 'A test message by script '; my $body = "Pls ignore this msg as this is test from perl scripts "; my $pass="********"; my $msg = MIME::Lite->new ( From => $from, To => $to, Subject => $subject, Type =>'multipart/mixed' ) or die "Error creating multipart container: $!\n"; $msg->attach ( Type => 'TEXT', Data => $body ) or die "Error adding the text message part: $!\n"; #MIME::Lite->send('smtp', $host, Timeout=>60,Auth=>'Yes',Port => 465, +Debug => 1); MIME::Lite->send('smtp', $host, Timeout=>60,Auth=>'LOGIN',AuthUser=>$f +rom,AuthPass=>$pass,Port => 465, Debug => 1); $msg->send;
      But i am getting below error in atuthen, MIME::Lite::SMTP>>> MIME::Lite::SMTP MIME::Lite::SMTP>>> Net::SMTP(2.31) MIME::Lite::SMTP>>> Net::Cmd(2.29) MIME::Lite::SMTP>>> Exporter(5.62) MIME::Lite::SMTP>>> IO::Socket::INET(1.31) MIME::Lite::SMTP>>> IO::Socket(1.30_01) MIME::Lite::SMTP>>> IO::Handle(1.27) MIME::Lite::SMTP=GLOB(0x8d0a970)<<< 220 smtp105.prem.mail.sp1.yahoo.com ESMTP MIME::Lite::SMTP=GLOB(0x8d0a970)>>> EHLO localhost.localdomain MIME::Lite::SMTP=GLOB(0x8d0a970)<<< 250-smtp105.prem.mail.sp1.yahoo.com MIME::Lite::SMTP=GLOB(0x8d0a970)<<< 250-AUTH LOGIN PLAIN XYMCOOKIE MIME::Lite::SMTP=GLOB(0x8d0a970)<<< 250-PIPELINING MIME::Lite::SMTP=GLOB(0x8d0a970)<<< 250 8BITMIME SMTP auth() command failed: No such file or directory Need MIME::Base64 and Authen::SASL todo auth
      Best Regards, S.Sabarinathan,
        I was able to make the above code work in Activeperl under Win 7 but not in Ubuntu. I am getting the same error above in Ubuntu. I installed MIME::Base64 and Authen::SASL but no luck....
        I ran your code, always showing me SMTP to connect to mail server:bad file descriptor
        MIME::Lite->send('smtp', $host, Timeout=>60,Auth=>'LOGIN',AuthUser=>$f +rom,AuthPass=>$pass,Port => 465, Debug => 1);
        $host I set as smtp.gmail.com