我們使用Perl程序使用Net::SMTP::SSL
模塊發送電子郵件。我們也在使用Google SMTP服務器。他們每天通過SMTP發送100封電子郵件(如果您使用的是免費服務)。如何檢測拒絕發送SMTP響應?
有時我們意外地超過了這個限制,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;
所有'warn's'肯定輸出的東西? –
你可以使用'Return'和/或'Envelope'參數來傳遞狀態通知的'mail'命令嗎? (['Net :: SMTP'](http://search.cpan.org/~shay/libnet-3.08/lib/Net/SMTP.pm)) – zdim
有點難以閱讀。你能重新格式化嗎?試試/ elsif/else。如果+ not =除非 – xxfelixxx