Perl 为什么它在尝试使用email::Send module通过电子邮件发送多部分HTML消息时抛出错误?

Perl 为什么它在尝试使用email::Send module通过电子邮件发送多部分HTML消息时抛出错误?,perl,Perl,我一直试图通过电子邮件发送多部分HTML消息,但收到太多错误和警告。我正在将模块用于sendmail()和创建消息 以下是代码的相关部分,以供参考。如果有人能指出我所犯的错误,并指出消除错误的方法,我将不胜感激 注意:所有RHS变量都是从属性文件中正确指定的。我还打印了它们,以检查它们是否被分配了正确的值 use Email::MIME; use Email::MIME::CreateHTML; use Email::Sender::Simple qw(sendmail); use Email:

我一直试图通过电子邮件发送多部分HTML消息,但收到太多错误和警告。我正在将模块用于
sendmail()
和创建消息

以下是代码的相关部分,以供参考。如果有人能指出我所犯的错误,并指出消除错误的方法,我将不胜感激

注意:所有RHS变量都是从属性文件中正确指定的。我还打印了它们,以检查它们是否被分配了正确的值

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"; };
运行代码时,我遇到以下错误:

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

我想问题是TLS。当我改为使用模块并相应地更新代码时,电子邮件发送正确;即使仍会抛出解析警告,但仍不知道如何解决该问题。这是我的零钱:

use Email::Sender::Transport::SMTP::TLS;
my $transport = Email::Sender::Transport::SMTP::TLS->new({
   host => $smtpServer,
   port => $smtpPort,
   username => $smtpUser,
   password => $smtpPassword,
 });

您是否安装了MIME::Base64和Authen::SASL?看起来Email::Sender::Transport::SMTP需要它们进行身份验证。将它们添加到要使用的模块列表中@allen是的,我已经安装了这两个模块,并根据您的建议将它们添加到使用中。但不幸的是,结果仍然是一样的