我有一个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使用),以防已知但已修复的错误。 –