为什么在尝试使用Email :: Send模块通过电子邮件发送多部分HTML邮件时会出错?

时间:2014-09-23 20:22:10

标签: perl

我一直在尝试通过电子邮件发送多部分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}}

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,
 });