簡體   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