我一直在尝试通过电子邮件发送多部分HTML邮件,但收到太多错误和警告。我正在使用sendmail()
模块为use Email::MIME;
use Email::MIME::CreateHTML;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP qw();
my $smtpServer = $mailSMTPHost;
my $smtpPort = $mailSMTPPort;
my $smtpUser = $mailLogin;
my $smtpPassword = $mailPwd;
my $transport = Email::Sender::Transport::SMTP->new({
host => $smtpServer,
port => $smtpPort,
sasl_username => $smtpUser,
sasl_password => $smtpPassword,
});
# for Email with HTML content
my $mailBody = $mailGreeting . $mailMsg . $mailSignature;
my $email = Email::MIME->create_html(
header => [
From => $mailFrom,
To => $mailTo,
Cc => $mailCC,
Bcc => $mailBCC,
Reply => $mailReplyTo,
Subject => $mailSubject
],
body => $mailBody
);
eval { sendmail($email, { transport => $transport }); };
if ($@) {
# $@ is an object of Email::Sender::Failure
print $@->message;
print"\n".$@->code;
# print "Oh no!". $@->what;
} else{ print "sendmail success"; };
和Email::Sender
创建消息。
这里是代码的相关部分以供参考。真的很感激,如果有人能够指出我正在犯的错误以及任何消除它的指针。
注意:所有RHS变量都是从属性文件中正确分配的。我还打印了它们,以检查它们确实被分配了正确的值。
Parsing of undecoded UTF-8 will give garbage when decoding entities at /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level/HTML/PullParser.pm line 81.
failed AUTH: Command unknown: 'AUTH'
500
运行代码时出现以下错误:
{{1}}
答案 0 :(得分:0)
我认为这个问题是TLS。当我改变使用模块并相应更新代码时,电子邮件正在正确发送;即使仍然抛出解析警告 - 不知道如何解决这个问题。以下是我的更改:
use Email::Sender::Transport::SMTP::TLS;
my $transport = Email::Sender::Transport::SMTP::TLS->new({
host => $smtpServer,
port => $smtpPort,
username => $smtpUser,
password => $smtpPassword,
});