2016-05-19 12 views
0

Ich bin für das Senden von E-Mail ein Perl-Skript writting und Zip-Datei anhängen, haben aber Fehler
354 Enddaten mit <CR><LF>. <CR><LF> Perl verwenden Net :: SMTP:

unten Fehler wird, wenn der Code ausgeführt wird:

 Net::SMTP::SSL=GLOB(0x1b79e68)>>> RCPT TO:<[email protected]> 
     Net::SMTP::SSL=GLOB(0x1b79e68)<<< 250 2.1.5 Ok 
     Net::SMTP::SSL=GLOB(0x1b79e68)>>> DATA 
     Net::SMTP::SSL=GLOB(0x1b79e68)<<< 354 End data with <CR><LF>.<CR><LF> 

== ====

$msg = MIME::Lite->new(
     To =>'[email protected]', 
     Subject =>'VTT:Daily Report ['.$TimeDate.']', 
     Type => 'multipart/mixed' 
    ); 
    ### Create a part: 
    $part = MIME::Lite->new(
     Top  => 0, 
     Type  =>'text/html', 
     Data  =>'<H1>Daily Report</H1>', 
    ); 
    $part->attr('content-type.charset' => 'UTF-8'); 

    $part->add('X-Comment' => 'A report for you'); 
    $msg->attach($part); 
      $msg->attach(
         Type  => 'application/zip', 
         Path  => '/home/appaxa/scripts/rommel/send_report', 
         Filename => 'dailyreport.zip', 
         Dispostion => 'attachment' 
        ); 
    $msg->send(); 

my $smtp; 
$smtp = Net::SMTP::SSL->new($host, Port=>465, Debug => 1, 
          SSL  => 0,) or die "Can't connect"; 
$smtp->auth($user, $pass)     or die "Can't authenticate:".$smtp->message(); 
$smtp->mail('[email protected]')  or die "Error:".$smtp->message(); 
$smtp->to('[email protected]') or die "Error:".$smtp->message(); 

$smtp->data()     or die "Error:".$smtp->message(); 
$smtp->datasend($msg) or die "Error:".$smtp->message(); 
$smtp->dataend()     or die "Error:".$smtp->message(); 
$smtp->quit()     or die "Error:".$smtp->message() 

was ist das Problem hier ?? Danke allen.

+0

Die Debug-Ausgabe zeigt keinen Fehler an. 354 ist nur die normale Antwort auf den Befehl DATA. Bitte fügen Sie den Fehler hinzu, den Sie tatsächlich bekommen (zB von Ihrem 'Die'Fehler ...') und bei welcher Aussage Sie diesen Fehler bekommen. –

+0

Re "* was ist das Problem hier *", könnte ich dich dasselbe fragen. Sie sagen, Sie bekommen einen Fehler, aber Sie haben nicht gesagt, was es war. – ikegami

+0

Es gibt eine zusätzliche '\' 'nach der E-Mail-Adresse in der zweiten Zeile. – simbabque

Antwort

1

$msg ist ein MIME :: Lite-Objekt und keine Zeichenfolge. Was Sie hier wollen, ist eine Zeichenfolge, d.h. $msg->as_string.

Abgesehen davon rufen Sie $msg->send früher, was bedeutet, dass es bereits versucht, die Nachricht über den Standardtransport zu senden. Dies macht keinen Sinn, es sei denn, Sie möchten die Nachricht zweimal senden.