我试图通过perl槽yahoo smtp服务器发送电子邮件,我的代码在linux上运行没有错误,但是当我在Windows Server 2008 r2 perl sys上运行此代码时:



我的代码是:

use Net::SMTP 3.03;

my $mailer = Net::SMTP->new(
    'smtp.mail.yahoo.com',
    Hello   =>      'smtp.mail.yahoo.com',
    Port    =>      587,
    Debug => 1,
);

$mailer->starttls();
$mailer->auth('test','123');
    #!$mailer->mail('[email protected]');
    $mailer->to('[email protected]');
    $mailer->data();
    $mailer->datasend('From: [email protected] \r\n');
    $mailer->datasend('To: [email protected] \r\n');
    $mailer->datasend('Subject: testing \r\n');
    $mailer->datasend('Content-type: text/html \r\n\n');
    $mailer->datasend('\n');
    $mailer->datasend('test test test\r\n');
    $mailer->dataend();
$mailer->quit;

问题是什么 ?

“perl -MIO::Socket::SSL = debug4 test.pl”的结果

最佳答案

“...不支持SSL版本SSLv2”-我感到您的IO::Socket::SSL版本不是原始版本,但可能是收到(错误)补丁的版本,用于解决Net::损坏的问题。 SMTP::TLS。请确保您安装了IO::Socket::SSL的最新版本。 –斯特芬·乌尔里希(Steffen Ullrich)

关于windows - Net::SMTP:Net::Cmd::_ is_closed():命令 channel 上出现意外的EOF [perl],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34286837/

10-12 15:06