为什么我得到'电子邮件/MIME/CreateHTML.pm行203处的语法错误;“嘎嘎”;你必须提供一个body“



我正在使用CPAN模块电子邮件::MIME::CreateHTML,但不断收到以下错误:

在电子邮件/MIME/CreateHTML.pm第203行,靠近"crah"处出现语法错误您必须提供一个正文"

这是我的脚本:

#!/usr/bin/perl
print "Content-type: text/htmlnn";
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;
use Email::Sender::Transport::SMTPS;
use Email::MIME::CreateHTML;
my $SendTo = 'MyEmail@SendTo.com';
my $SendFrom = 'MyEmail@SendFrom.com';
my $Subject = 'test MSG';
my $SMTP_Server = 'smtp.gmail.com';
my $SMTP_SSL = 'starttls';
my $SMTP_Port = 587;
my $SMTP_User   = 'my@gmail.com';
my $SMTP_Password = 'MyGmailPassword';
my $eMailMessage = "Test MSG";
use Email::Sender::Transport::SMTPS;
use Email::MIME::CreateHTML;
my $transport = Email::Sender::Transport::SMTPS->new({
  host => $SMTP_Server,
  ssl  => $SMTP_SSL,
  port => $SMTP_Port,
  sasl_username => $SMTP_User,
  sasl_password => $SMTP_Password,
  debug => 1,
});

my $email = Email::MIME->create_html(
  header => [
    To      => $SendTo,
    From    => $SendFrom,
    Subject => $Subject,
  ],
 body => $eMailMessage
);
sendmail($email, { transport => $transport });
print 'Mail Sent';

我该怎么解决这个问题?

您必须拥有旧版本的电子邮件::MIME::CreateHTML。这看起来像是1.030版本中修复的一个错误:

发生这种情况是因为混合到电子邮件::MIME中的create_html方法在作用域中没有croak。修复方法是简单地在package Email::MIME声明之后再次显式加载Carp。

老实说,我不确定这到底是怎么回事。

升级至最新版本。

最新更新