【问题标题】:Perl script is not sending emailPerl 脚本不发送电子邮件
【发布时间】:2015-01-20 03:16:55
【问题描述】:

我正在尝试使用 Perl 发送我的第一封电子邮件(来自 Windows 机器),但我收到了一个错误:

SMTP Failed to connect to mail server: at emailer2.pl line 18 (msg->send;)

我对 Perl 完全陌生,因此我们将不胜感激。有没有人遇到过这个问题?我已经搜索了错误,但没有找到我的确切问题。

非常感谢您的帮助!

代码:

#!/usr/bin/perl
use MIME::Lite;

$to = 'myemail@gmail.com';
$cc = 'myemail@gmail.com';
$from = 'myemail@gmail.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );

$msg->send;
print "Email Sent Successfully\n";

【问题讨论】:

    标签: perl smtp mime


    【解决方案1】:

    这意味着您的机器上没有运行邮件服务器。您需要安装一个并确保它正在运行。

    【讨论】:

    • 太棒了,大概就是这样。有什么好的建议吗?
    • 这是一个非常广泛(且值得商榷)的话题。但是,如果您只是想在本地机器上进行测试(不是出于部署目的),您可以查看Papercut。它不是一个真正的服务器,只是一个应用程序,它可以向您显示从您的机器发送的内容。如果您想要一个可以实际发送邮件的真实服务器,我建议您在Server Fault 询问。
    • P.S.如果您觉得它有帮助,请记得接受这个答案!
    • @Eman 1) 您是否有权访问本地有线网络上的 SMTP 服务器? [MIME::Lite 支持 SMTP AUTH 但不支持 STARTTLS] 2) 你能安装(简化的)Win 等效的“sendmail”吗?
    【解决方案2】:

    您也可以在发送邮件之前使用另一个邮件服务器设置默认参数

    MIME::Lite->send('smtp', "smpt.example.org", Timeout=>60, SSL=>1,
                     AuthUser=>"myself", AuthPass=>"mysecret");
    

    看看MIME::Lite sending section。

    【讨论】:

      猜你喜欢
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 2012-08-14
      • 2012-09-12
      • 1970-01-01
      • 2011-04-28
      相关资源
      最近更新 更多