繁体   English   中英

当我使用Email :: MIME :: CreateHTML时,为什么在Email / MIME / CreateHTML.pm的第203行“ croak”附近必须显示正文”附近收到“语法错误”?

[英]Why do I get 'syntax error at Email/MIME/CreateHTML.pm line 203, near “croak ”You must supply a body“”' when I use Email::MIME::CreateHTML?

我正在使用CPAN模块Email :: MIME :: CreateHTML,始终收到以下错误:

Email / MIME / CreateHTML.pm第203行的语法错误,靠近“吱吱作响,您必须提供尸体”

这是我的脚本:

#!/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';

我怎样才能解决这个问题?

您必须具有旧版本的Email :: MIME :: CreateHTML。 这看起来像是在1.030版中修复的错误

这是因为create_html方法混入了Email :: MIME没有croak的范围。 解决方法是简单地在package Email::MIME声明之后再次显式加载Carp。

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

升级到最新版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM