使用Django send_mail方法发送的邮件非常慢

时间:2013-09-19 13:36:43

标签: python django email gmail

我每天使用django(1.5.2)发送邮件。在约2/3分钟的间隔内大约100个左右。

直到最近我才真正遇到任何问题(自从我升级到1.5.2后就有可能)。现在有时需要长达2小时(!)来发送这些邮件。

我发现最多有5个线程尝试使用send_mail方法发送邮件(https://docs.djangoproject.com/en/dev/topics/email/#send-mail)。完成一个线程后,创建一个新线程,做一些工作,然后发送邮件。在发送的时候,他们都会“停止”(或死锁或其他什么)有时几分钟,有时是几个小时,直到最后他们发送邮件,一切正常(下一个线程快速发送邮件)。

我使用postfix和gmail帐户作为邮件服务器。当只发送一封邮件时(在django shell中或当一个帖子在另一小时发送一封邮件时)没有问题(邮件立即发送)。每个send_mail调用大约有4个收件人完成,所以100~4 * 25左右。

最后,当查看mail.info日志时,每个日志都会在邮件实际发送的时间周围加上时间戳,或许建议问题在于django?

问题是我不知道如何调试这个,我应该在哪里看,如果问题来自django或gmail。任何建议都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

也许设置Celery而不是线程?

此外,您可以使用SendGrid之类的电子邮件服务,而不必担心邮件的负载。只需通过REST或使用SMTP

命中它们的API