我们正在使用Perl程序使用Net::SMTP::SSL
模块发送电子邮件。我们也在使用Google SMTP服务器。他们每天通过SMTP发送限制为100封电子邮件(如果您使用的是免费服务)。
有时我们会不小心超出此限制,Google也不会发送电子邮件。但是我们的Perl程序似乎并未接受这一点。有谁知道如何检测发送失败?
我认为这是相关的代码:
use Net::SMTP::SSL;
my $smtp;
$smtp = Net::SMTP::SSL->new( 'smtp.gmail.com', Port => 465, Debug => 0 ) or
die "Could not connect to Gmail server!";
$smtp->auth( $L, $P ) or die "Authentication Failed!";
$smtp->mail( $from . "\n" ) or die "Cannot send as user $from!";
$smtp->to( $to . "\n" ) or die "Cannot send to $to!";
$smtp->data();
$smtp->datasend( "MIME-Version: 1.0\n" );
$smtp->datasend( "From: " . $from . "\n" );
$smtp->datasend( "To: " . $to . "\n" );
$smtp->datasend( "Subject: " . $subject . "\n" );
$smtp->datasend( "\n");
$smtp->datasend( $body . "\n" );
$smtp->dataend();
$smtp->quit;
答案 0 :(得分:0)
我不知道如果达到限制,谷歌如何拒绝发送电子邮件,但有几种方法:
dataend()
应该告诉您问题,即发送邮件时应该调用的最后一个方法。但看起来您甚至不在代码中使用dataend()
,这可能会导致交付纯粹是运气。