我正在使用 MIME::Lite::TT 通过 perl 发送邮件。发送前如何将邮件保存到本地

I am using MIME::Lite::TT to send mail with perl. How to save the mail locally before sending

模板

 <html>
 <body>

 <strong>Hi [% first_name %]</strong>,

 <p>
 This is to confirm your purchase of $ [% amt_due %].
 </p>

 <p>
 Thank you!
 </p>
 </body>
 </html>

   `$params{first_name} = 'Frank';
    $params{last_name}  = 'Wiles';
    $params{amt_due}    = '24.99';
    my $msg = MIME::Lite::TT::HTML->new(
        From        =>  'admin@example.com',
        To          =>  'frank@example.com',
        Subject     =>  'Your recent purchase',
        Template    =>  {
                            text    =>  'test.txt.tt',
                            html    =>  'test.html.tt',
                            },
        TmplOptions =>  \%options,
        TmplParams  =>  \%params,
 );

如何在发送前将邮件保存到本地。它的模板为 html,其中填充了参数和 pdf 附件。 是否可以使用填充值保存模板。

MIME::Lite::TT 只是一个预处理器;调用 MIME::Lite::TT->new returns 一个普通的 MIME::Lite 对象。只需以您喜欢的任何方式保存该对象即可。

例如,您可以 print it to a filehandle:

my $email = MIME::Lite::TT->new(...);
$email->print(\*STDOUT);
$email->send;

要打印填充的模板,我们可以使用

$$email{data}

因为 $email 是对哈希的引用,而数据是电子邮件正文内容的关键。 要打印整封邮件,请使用上述解决方案。