如何在 Perl 5 中保存通过 MIME::Lite 发送的邮件的备份?

Posted

技术标签:

【中文标题】如何在 Perl 5 中保存通过 MIME::Lite 发送的邮件的备份?【英文标题】:How to save a backup of mails sent through MIME::Lite in Perl 5? 【发布时间】:2016-12-13 19:34:24 【问题描述】:

我正在通过 MIME::Lite perl 模块发送邮件。我希望我发送的邮件应该保存在我的邮件收件箱的已发送邮件文件夹中。请建议我这样做的方法。 谢谢 脚本-

use MIME::Lite;

my $msg = MIME::Lite->new(
    From    => 'xyz@abc.com',
    To      => 'abcd@gmail.com',
    Subject => 'sending mail',
    Type    => 'multipart/mixed',
);

$msg->attach(
    Type     => 'TEXT',
    Path     => '/home/user/myName/cppLab/a.txt',
    Filename => 'aabc.txt',
    Disposition => 'attachment',
);

$msg->attach(
    Type     => 'TEXT',
    Data     => "learning to send mail",
);


 #$msg->print(\*STDOUT);
  #$msg->print_header(\*STDOUT);
 $msg->send;
print "mail sent.."

【问题讨论】:

你使用的是哪个 Perl? @Přemysl Šťastný 我正在使用 perl 5.12.5 您是否使用 SMTP AUTH 发送电子邮件? (smtp with password) 您是否通过 IMAP 协议访问您的邮箱?您的问题有“一些”特殊情况。 我已附上我的脚本 【参考方案1】:

取决于您访问收件箱的方式。在任何情况下,您都可能需要MIME::Liteas_string 方法,您可以调用消息来检索整个文本,包括标题和可能的附件。 对于本地邮箱:

如果您的邮件文件夹使用 Maildir 格式,您可以使用 Maildir::Lite 将返回的字符串简单地写入适当命名的(Maildir::Lite 为您完成此操作)文件。 对于 mbox 文件夹,请查看 Mail::Box::Mbox

只需几行 Perl 就可以处理本地邮箱。如果您的收件箱是远程的并且需要 IMAP,那么总是有 IMAP::Client 但我对此一无所知。也许本地 Maildir 加上 offlineimap 也可以?

【讨论】:

以上是关于如何在 Perl 5 中保存通过 MIME::Lite 发送的邮件的备份?的主要内容,如果未能解决你的问题,请参考以下文章

在网页上运行 perl 脚本后保存文件

在 Perl 中如何使用变量作为哈希键?

如何在 C# 或 Perl 中以编程方式打开 PowerPoint 演示文稿并将其保存为 HTML/JPEG?

perl处理fasta文件

在linux下的如何将perl默认版本5.8.8升级为5.10

如何在 localhost 中运行 perl 脚本?