我正在使用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。老实说,我不确定这到底是怎么回事。
升级至最新版本。