【问题标题】:Send email from Mac OS X via perl script通过 perl 脚本从 Mac OS X 发送电子邮件
【发布时间】:2012-08-14 12:15:59
【问题描述】:

我正在尝试使用我已安装的 Mac 上的 Perl 脚本发送电子邮件 MIME::Lite 模块。我正在使用一个基本的脚本来测试:

#!/usr/bin/perl

use MIME::Lite;

$msg = MIME::Lite->new(
                 From     =>"abc\@gmail.com",
                 To       =>"xyz\@gmail.com",
                 Subject  =>"Demo",
                 Data     =>"Sent :-):-)"
                 );
$msg->send();

我已经在我的 macbook 中设置了我的电子邮件帐户。 如果我无法发送电子邮件,请指导我是否需要检查其他内容。

【问题讨论】:

  • 如果您想通过您的电子邮件提供商发送邮件,请添加身份验证,只需查阅模块文档

标签: macos perl


【解决方案1】:

您可以在命令行中使用系统调用的日子已经一去不复返了:

mail boss@megacorp.net -s "I QUIT!" < body_of_message.txt

但如果你安装并配置 mutt 来与你的邮件服务器通信,你可以做一些非常接近的事情:

mutt -s "I QUIT" boss@megacorp.net < body_of_message.txt

最难的一点是配置 mutt,这还不错。那里有大量的文档和操作指南,例如Mutt Configuration Doc ...或者只是在谷歌上搜索“mutt configure”以及您正在使用的邮件服务器类型; gmail、exchange等

从那里,在 perl 中,您只需:

system("/path/to/mutt", "-s", "I QUIT", "boss\@megacorp.net", ...)
   or die "Could not send Email";

【讨论】:

    【解决方案2】:

    我没有使用过这个模块,但我注意到它的文档说

    MIME::Lite 不被当前的维护者推荐。有一个 备选方案的数量,例如 Email::MIME 或 MIME::Entity 和 Email::Sender,您可能应该使用它。 MIME::精简版 继续产生奇怪的错误报告,并且没有收到大量的 由于有更好的替代方案的可用性,重构的数量。 请考虑使用其他东西。 http://metacpan.org/pod/MIME::Lite

    话虽如此,您可能需要做类似的事情

    指定默认发送方式:

     MIME::Lite->send('smtp','some.host',Debug=>0);
     MIME::Lite->send('smtp','some.host', AuthUser=>$user, AuthPass=>$pass);
    

    【讨论】:

      猜你喜欢
      • 2015-01-20
      • 1970-01-01
      • 2013-07-07
      • 2014-04-14
      • 1970-01-01
      • 2011-04-30
      • 2018-02-15
      • 1970-01-01
      • 2013-08-15
      相关资源
      最近更新 更多