我是Perl的新手。
我使用以下perl代码发送邮件。
它的工作正常。
但我怎么能在其中加入html内容?
use strict;
use warnings;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP ();
use Email::Simple ();
use Email::Simple::Creator ();
my $smtpserver = 'xxxx.xx.x.x.';
my $smtpport = 25;
my $smtpuser = 'test@test.com';
my $smtppassword = 'xxxxx';
my $transport = Email::Sender::Transport::SMTP->new({
host => $smtpserver,
port => $smtpport,
sasl_username => $smtpuser,
sasl_password => $smtppassword,
});
my $email = Email::Simple->create(
header => [
To => 'xxx@xxxx.com',
From => 'test@test.com',
Subject => 'Hi!'
],
body => "<table><tr><td>try</td></tr></table>",
);
sendmail($email, { transport => $transport });
print "Success \n";
1;
答案 0 :(得分:5)
使用Email :: *命名空间中的模块的乐趣在于它们可以很好地协同工作。目前,您正在使用Email :: Simple创建电子邮件,并使用Email :: Sender发送电子邮件。但现在您不再想创建简单的电子邮件,而是想要创建更复杂的电子邮件。发送复杂电子邮件的格式为MIME。因此,您应该在Email :: MIME命名空间中查找可以插入的内容,而不是Email :: Simple。 Email::MIME::CreateHTML看起来就像你想要的那样。
摘要:
use Email::MIME::CreateHTML;
my $email = Email::MIME->create_html(
header => [
From => 'my@address',
To => 'your@address',
Subject => 'Here is the information you requested',
],
body => $html,
text_body => $plain_text
);
use Email::Send;
my $sender = Email::Send->new({mailer => 'SMTP'});
$sender->mailer_args([Host => 'smtp.example.com']);
$sender->send($email);
看起来这很简单,可以转换为您的用法。