我正在使用CPAN模块Email::MIME::CreateHTML,但一直收到以下错误:
电子邮件/ MIME / CreateHTML.pm第203行的语法错误,靠近“croak”你必须提供一个正文“”
这是我的剧本:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
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';
我该如何解决这个问题?
答案 0 :(得分:1)
您必须拥有旧版本的Email :: MIME :: CreateHTML。这看起来像版本1.030中修复的bug:
这是因为混合到Email :: MIME中的
create_html
方法在范围内没有croak
。修复是在package Email::MIME
声明之后再次显式加载Carp。老实说,我不确定这是如何运作的。
升级到最新版本。