![](/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.