![](/img/trans.png)
[英]Why do I get “SMTP Failed to connect to mail server:” when I try to send an email to a Gmail account using MIME::Lite?
[英]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.