0

这是我现在的设置:

connection = mail.get_connection()
maillist = []

# my real setup is a little more complex for-loop, but basicly I add all recipients to a list. 
for person in object_list:
    mail_subject = "Mail subject here"
    mail_body = "Mail body text...bla bla"
    email_sender = "me@example.com"
    maillist.append((mail_subject, mail_body, email_sender, [person.email]))

#send_mass_mail wants a tuple, so we convert the list
mailtuple = tuple(maillist)
mail.send_mass_mail(mailtuple, fail_silently=False, connection=connection)

但是,forloop 迭代了 1000 多个对象/人,当我尝试这种方法时,我能够发送 101 封电子邮件,然后它就停止了。任何地方都没有错误(如我所见)。

一位开发人员提到,也许 POST 的大小太大了?来自 SO 社区的任何想法?

4

3 回答 3

4

您的 SMTP 服务器可能有一些发送限制。例如,我认为 Gmail 将外发邮件限制为 100 个收件人。

于 2011-03-29T17:58:57.840 回答
2

既然您提到了 POST 限制 - 您是否在视图中发送电子邮件?我想知道您如何在设置中处理取消的请求。

我正在使用管理命令发送 1000 多份时事通讯。但是我没有使用 send_mass_mail,而是在循环中使用普通的发送方法。发送邮件大约需要 5 分钟(没有正确的 atm 计数),而且我还没有遇到任何服务器限制。

我的计划是改用 celery 来处理通过 Web 界面发送的信息。也许你想看看它,以防你还没有。

http://celeryproject.org/

于 2011-03-29T20:23:51.450 回答
2

正如 Micah 所建议的,您很有可能会达到服务器限制。

通常,在处理大量邮件时,限制发送总是一个好主意。由于许多实际原因,包括 smtp 服务器限制,在 300 秒内每 5 秒发送 50 封邮件比同时发送 3000 封邮件要好。

于 2011-03-29T18:02:53.257 回答