我有一個perl導出腳本,它會生成一個.csv文件,然後通過電子郵件發送給用戶。我已經走下了這條路,因爲我們不希望用戶不得不在特定的頁面上等待導出完成,而是允許它在後臺導出。Net :: SMTP :: SSL(通過Gmail和亞馬遜smtp) - 連接關閉時發送電子郵件附件
然而,當CSV連接和電子郵件發送我得到以下錯誤:
[Net::SMTP::SSL] Connection closed
我不能把大量的代碼在這裏,但我至少可以告訴你什麼部分代碼報告了此錯誤。我想知道是否有人知道這可能會發生,或者一個簡單的方法來調試它。
下面是(對於其中報告的錯誤與評論)發送電子郵件的代碼塊:
my $mailer = new Net::SMTP::SSL($smtp, Port => $port) or die "Cannot create a SSL mailer instance!\n";
$mailer->auth($user, $pass) or die ("Can't authenticate");
$mailer->mail($email) or die $mailer->message;
$mailer->to(split(',', $to)) or die $mailer->message;
$mailer->data() or die $mailer->message;
$mailer->datasend($msg->as_string) or die $mailer->message; # Connection closed
$mailer->dataend() or die $mailer->message;
$mailer->quit() or die $mailer->message;
請讓我知道,如果有需要的任何其他信息。我會盡力提供我能做的。這很難解決,因爲這個錯誤是非常模糊的。
注意:刪除違規附件時有成功發送電子郵件,有時根據csv內容發送。
請添加所有詳細信息以使問題可重現。如果問題只發生在特定郵件內容中,則需要將此內容添加到問題中。請參見[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –
@SteffenUllrich儘管我希望我可以添加csv的內容,但所討論的內容是我無法提供的敏感數據。我明白,這隻會讓事情變得複雜,但我對這些問題有所認識,看看是否有人遇到了某些內容導致拒絕/關閉與gmail的smtp連接的問題。 – jardis
您不需要添加導致問題的原始(敏感)內容,但僅導致問題的一些(非敏感)內容就足夠了。我懷疑你不會得到幫助,你承認奇怪的問題是沒有辦法重現它。另外請確保您使用的是最新版本的Net :: SMTP(由Net :: SMTP :: SSL使用),以防已知但已修復的錯誤。 –