2016-05-12 2 views
0

Ich bin mit der CPAN-Modul Email::MIME::CreateHTML aber halte die folgende Fehlermeldung erhalten:Warum bekomme ich Syntaxfehler bei Email/MIME/CreateHTML.pm Zeile 203, in der Nähe von "Croak" Sie müssen einen Körper "" 'angeben, wenn ich Email :: MIME :: CreateHTML verwende?

syntax error at Email/MIME/CreateHTML.pm line 203, near "croak "You must supply a body""

Hier ist mein Skript:

#!/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 = '[email protected]'; 
my $SendFrom = '[email protected]'; 
my $Subject = 'test MSG'; 

my $SMTP_Server = 'smtp.gmail.com'; 
my $SMTP_SSL = 'starttls'; 
my $SMTP_Port = 587; 
my $SMTP_User = '[email protected]'; 
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'; 

Wie kann ich dieses Problem beheben?

+1

ist '$ eMailMessage' mit Daten gefüllt? – stevieb

+0

Ja, alle Variablen sind ausgefüllt – Blnukem

+0

Wie sicher bist du? Haben Sie es ausgedruckt, um das zu überprüfen? Der Code im Modul prüft, ob 'body' einen * true * Wert hat, und wenn nicht, krächzt er – stevieb

Antwort

1

Sie müssen eine alte Version von Email :: MIME :: CreateHTML haben. Dies sieht aus wie eine bug, die in der Version 1.030 wurde behoben:

This happens because the create_html method being mixed into Email::MIME does not have croak in scope. The fix is to simply explicitly load Carp again after the package Email::MIME declaration.

I'm not sure exactly how this ever worked, honestly.

Upgrade auf die neueste Version.

Verwandte Themen