目前我们使用的打印通过sendmail的管道,它工作正常发送HTML邮件。
$fh->open( q{|sendmail -f<fromaddress> .......} );
这是来自包含了像文本模板...
From: <Fromaddress>
Reply-to: <replyaddress>
Subject: etc
Mine-Version: 1.o
Content-Type: text/html
<!DOCTYPE html...
<html...
rest of body
现在我想用Email ::简单的文字相同
my $email = Email::simple->create(
header => $header,
body => $body
);
sendmail( $email, { transport => $transport });
我的头就像
[ To => <toaddress>, From => <fromaddress>, 'Content-Type' => 'text/html' ]
这一切都将正常,但它也包括“发件人:..为::主题..”作为HTML的一部分也显示,而sendmail的消耗此使用。
我可以使用正则表达式来去掉那中包含的内容文字标题的内容(因为它已经产生,但那种感觉风险倾向和笨重的),但我想知道,是否有电子邮件::丢弃,或者使用的简单方法只有HTML而不是从/到提供的电子邮件::简单/主题特定的头文件?
我看过here,但不能看到任何引用。
我假设你$body
变量包含您的模板文件中的一个文本。而那些模板包含标题,他们最终会在你的电子邮件的正文复制。
最好的办法是编辑你的模板,以删除页眉部分。
但是,如果你不能这样做,因为某些原因,你可以将它传递给$body
方法之前预处理create()
。事情是这样的,也许:
(undef, $body) = split /\n\n/, $body, 2;
其实答案是比我想象的更简单...
如果你只是使用
my $email = Email::Simple->new( $text );
sendmail( $email, { transport => $transport });
它将使用的标题从文本/体,而不是将它们包含在主体。
如果您使用
my $email = Email::Simple->create( $text );
sendmail( $email, { transport => $transport });
这似乎需要单独报头,并发送文本的标题为主要数据/ HTML指称发送的一部分。