Email :: Sender如何在Perl中附加文件?

问题描述 投票:0回答:1

系统:在Ubuntu 18.04 LTS上的Perl 5.26.1。

我已经在各种网站和Google上搜索了大约2个小时,并阅读了Email :: Sender上的手册,使用Email :: Sender时似乎找不到如何附加文件。我正在升级机器,并且正在使用Mail :: Sender,但对于Email :: Sender不推荐使用Mail :: Sender,并且在Email :: Sender上文档稀疏。

我在Email :: Sender文档中根本找不到有关文件附件的任何信息。

由于Mail :: Sender不再更新,因此继续使用它是一个坏主意。我们在Perl上投入了很多资金,因此我们暂时无法更改工具。

  1. 有人可以帮我吗?
  2. 我应该为Perl使用另一个电子邮件模块吗?电子邮件::发件人似乎是最新最频繁的更新。

编辑:这是我到目前为止的代码:

my $email = Email::Stuffer->new(
        text_body=>$body,
        subject=>$subjparam,
        from=>$from, # or use ->from($email1, $email2...)
        transport=>Email::Sender::Transport::SMTP->new({
            host => $smtpserver,
            port => $smtpport,
            username => $smtpuser,
            password => $smtppw,
            }),
        );
perl email email-attachments
1个回答
1
投票

该过程有两个部分,构造电子邮件并发送。 Email :: Sender仅处理后者,并且显示了如何使用Email :: Simple构造简单的电子邮件。要构建更高级的电子邮件(例如带有附件的电子邮件),您需要功能更强大的Email::MIME,并且将电子邮件::: MIME和电子邮件::: Sender的包装一起称为Email::Stuffer,它提供了用于附加文件的简单API。]

use strict;
use warnings;
use Email::Stuffer;
my $mail = Email::Stuffer->...->attach_file('/path/to/file.txt'); # guesses MIME type
# or if you have the file data in memory
my $mail = Email::Stuffer->...->attach($contents,
  name => 'foo.dat', filename => 'foo.dat', content_type => 'application/octet-stream');
$mail->send_or_die;
© www.soinside.com 2019 - 2024. All rights reserved.