Django 发送邮件速度很慢。

1 投票
2 回答
2901 浏览
提问于 2025-04-17 18:46

我在用 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

如果你觉得发送邮件又慢了,那你需要检查一下你的服务器,优化你的代码,并进行测试。

撰写回答