gpt4 book ai didi

django - send_mass_emails 和 EmailMultiAlternatives

转载 作者:行者123 更新时间:2023-12-03 12:03:15 24 4
gpt4 key购买 nike

我尝试构建一个时事通讯应用程序,并希望通过一个连接发送 50 封电子邮件。 send_mass_mail() 看起来很完美,但我不知道如何将其与 EmailMultiAlternatives 结合使用。

这是我的代码,它仅通过一个连接发送一封电子邮件:

html_content = render_to_string('newsletter.html', {'newsletter': n,})               
text_content = "..."
msg = EmailMultiAlternatives("subject", text_content, "from@bla", ["to@bla"])
msg.attach_alternative(html_content, "text/html")
msg.send()

带有上述代码和 send_mass_mail 的工作示例会很棒,谢谢!

最佳答案

不能直接将 send_mass_mail() 与 EmailMultiAlternatives 一起使用。然而,根据the Django documentation , send_mass_mail() 只是一个使用 EmailMessage 的包装器。类(class)。 EmailMultiAlternatives 是 EmailMessage 的子类。 EmailMessage 有一个“connection”参数,允许您指定在向所有收件人发送消息时使用的单个连接 - 即与 send_mass_mail() 提供的功能相同。您可以使用 get_connection()函数来获取由 SMTP settings 定义的 SMTP 连接在settings.py中。

我相信以下(未经测试的)代码应该可以工作:

from django.core.mail import get_connection, EmailMultiAlternatives

connection = get_connection() # uses SMTP server specified in settings.py
connection.open() # If you don't open the connection manually, Django will automatically open, then tear down the connection in msg.send()

html_content = render_to_string('newsletter.html', {'newsletter': n,})
text_content = "..."
msg = EmailMultiAlternatives("subject", text_content, "from@bla", ["to@bla", "to2@bla", "to3@bla"], connection=connection)
msg.attach_alternative(html_content, "text/html")
msg.send()

connection.close() # Cleanup

关于django - send_mass_emails 和 EmailMultiAlternatives,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com