【发布时间】:2012-02-16 09:04:53
【问题描述】:
我有一个应用程序可以向客户发送超过 1,000 封电子邮件。每封电子邮件都是为每个客户定制的。我有我的 Django 应用程序,使用我的 Gmail 业务帐户(为 Google 应用程序付费)发送电子邮件。
我遇到的问题是,在成功发送大约 80-100 封电子邮件后,与 Gmail 的 SMTP 连接断开。我必须等待大约 10-15 分钟才能再次开始发送。但是,在正确发送大约 70-100 封电子邮件后,连接再次断开。
我使用 Django-Mailer-2 发送邮件。这是我的 Django 应用程序产生的错误:
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 351, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.6/dist-packages/django_mailer/management/commands/send_mail.py", line 47, in handle_noargs
send_all(block_size, backend=settings.USE_BACKEND)
File "/usr/local/lib/python2.6/dist-packages/django_mailer/engine.py", line 91, in send_all
blacklist=blacklist)
File "/usr/local/lib/python2.6/dist-packages/django_mailer/engine.py", line 179, in send_queued_message
[message.to_address], smart_str(message.encoded_message))
File "/usr/lib/python2.6/smtplib.py", line 697, in sendmail
self.rset()
File "/usr/lib/python2.6/smtplib.py", line 438, in rset
return self.docmd("rset")
File "/usr/lib/python2.6/smtplib.py", line 363, in docmd
return self.getreply()
File "/usr/lib/python2.6/smtplib.py", line 340, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
最后两行让我觉得 Gmail 正在关闭连接。我已经联系了 Gmail,他们声称是我的软件导致了问题,而不是他们。
你怎么看?
【问题讨论】:
-
当您的连接断开时,您是否尝试过在 google 邮件服务上进行 telnet 会话?只是为了验证连接的可能性。