2013-03-12 79 views
0

我使用django中的EmailMessage发送邮件。这是我的代码:django邮件发送非常缓慢。

message = " test message " 
    email = EmailMessage('test subject', message, to=['[email protected]']) 
    email.send() 

,但我需要派遣更多的电子邮件,其中包含不同的内容,不同的人,所以,如果我做我做过两次以上,它走很长的时间来发送邮件。像10秒或更多。有没有其他解决方案可以更容易,更快速地发送?

在php中它是非常快的。我可以在django中有这个吗?

非常感谢。

+0

使用send_mail()代替 – catherine 2013-03-12 05:33:53

+0

@catherine,但它仍然很慢。是不是因为我在本地主机? – doniyor 2013-03-12 05:51:59

+0

我会搜索你的问题 – catherine 2013-03-12 05:55:19

回答

1

扩展到@Thomas Orozco的答案。

Django的飞鸽传书 - 允许您设置的时间发送邮件,和更多...

https://github.com/dragonfly-science/django-pigeonpost

的Django的cron - 开始在Web应用程序的第一个请求,它会发送电子邮件每个300毫秒(0.4秒),

https://sites.google.com/site/vigeblog/blog/sendmailswithdjango

如果发送邮件再次缓慢(在您看来),你必须检查你的服务器,重构你的代码,做测试。

+0

很好,谢谢。我会遵循你的指导 – doniyor 2013-03-12 06:19:46

3

如果您需要发送多个电子邮件并希望加快此过程,则可以使用Django的send_mass_mail函数。文档清楚地说明了如何使用它;这里有一个例子形式有:

message1 = ('Subject here', 'Here is the message', '[email protected]', ['[email protected]', '[email protected]']) 
message2 = ('Another Subject', 'Here is another message', '[email protected]', ['[email protected]']) 
send_mass_mail((message1, message2), fail_silently=False) 

这将重用所有电子邮件的单一连接。

+0

但它仍然需要11秒。但我仍然在本地主机,这可以成为缓慢发送的原因吗? – doniyor 2013-03-12 05:51:15

+0

@ doniyor你将不得不做一些调试。一个起点可能是检查邮件服务器上的日志以及应用程序中的日志并寻找差异。 – 2013-03-12 05:57:06