为什么我在Email / MIME / CreateHTML.pm第203行收到'语法错误,靠近“croak”当我使用Email :: MIME :: CreateHTML时,你必须提供一个正文“”?

时间:2016-05-12 20:42:03

标签: perl

我正在使用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';

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您必须拥有旧版本的Email :: MIME :: CreateHTML。这看起来像版本1.030中修复的bug

  

这是因为混合到Email :: MIME中的create_html方法在范围内没有croak。修复是在package Email::MIME声明之后再次显式加载Carp。

     

老实说,我不确定这是如何运作的。

升级到最新版本。