Django 发送邮件速度很慢。
我在用 EmailMessage
在 Django 发送邮件。这是我的代码:
message = " test message "
email = EmailMessage('test subject', message, to=['me@test.com'])
email.send()
但是我需要给不同的人发送不同内容的邮件,如果我像上面那样做两次,发送邮件就会花很长时间,像是10秒钟或更久。有没有什么其他的方法可以更简单、更快地发送邮件呢?
在 PHP 中发送邮件非常快。我在 Django 中也能做到这一点吗?
非常感谢!
2 个回答
3
如果你需要发送多封邮件,并且想要加快这个过程,可以使用Django的send_mass_mail
功能。文档里对如何使用这个功能讲得很清楚;这里有一个例子:
message1 = ('Subject here', 'Here is the message', 'from@example.com', ['first@example.com', 'other@example.com'])
message2 = ('Another Subject', 'Here is another message', 'from@example.com', ['second@test.com'])
send_mass_mail((message1, message2), fail_silently=False)
这样做的话,所有的邮件会共用一个连接,这样可以提高发送效率。
1
这是对@Thomas Orozco回答的补充。
django-pigeonpost - 这个工具可以让你设置发送邮件的时间,还有更多功能...
https://github.com/dragonfly-science/django-pigeonpost
django cron - 这个功能会在你第一次访问网站时启动,然后每隔300毫秒(0.3秒)就会发送一次邮件。
https://sites.google.com/site/vigeblog/blog/sendmailswithdjango
如果你觉得发送邮件又慢了,那你需要检查一下你的服务器,优化你的代码,并进行测试。