使用 django 发送邮件黑猩猩设计的电子邮件

Posted

技术标签:

【中文标题】使用 django 发送邮件黑猩猩设计的电子邮件【英文标题】:Sending mail chimp designed emails using django 【发布时间】:2015-12-11 02:58:16 【问题描述】:

我想向 django 网站的订阅者发送邮件。因此,一旦有人注册,就应该向他们发送邮件。我可以通过 django 的 send_mail 功能来做到这一点,但我想发送设计好的邮件(比如使用邮件黑猩猩模板)。关于如何做到这一点的任何想法?我通读了api文档并了解了如何发送邮件,但我不明白如何集成自己的模板和东西。

任何建议都会有所帮助。谢谢!

【问题讨论】:

【参考方案1】:

MailChimp 模板只是 html。如果您使用的是 Django 1.7+,send_email 支持 html_message (ref)。

您可以使用render_to_string(see here) 函数输出适当的HTML,该HTML 将被输入send_email。结合这两者,您可以首先设置您的 HTML 模板:

html_template = render_to_string('templates/my_email.html', 'foo': 'bar')

然后创建my_email.html 并将MailChimp 上生成的HTML 放入该文件中。

您现在可以使用新的 HTML 模板调用 send_mail:

send_mail(
    [...]
    html_message=html_template,
)

编辑:完整示例:

from django.core.mail import send_mail
from django.template.loader import render_to_string

html_template = render_to_string('templates/my_email.html', 'foo': 'bar')
send_mail(
    'Title',
    'Plaintext Version Goes Here',
    'sender@sender.com',
    ['receiver@receiver.com'],
    html_message=html_template,
)

【讨论】:

这太棒了!非常感谢! 快速跟进问题 - 这也适用于 send_mass_mail() 吗? 看看这里的答案:***.com/questions/7583801/… 可能会回答你的问题!

以上是关于使用 django 发送邮件黑猩猩设计的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用Django实现发邮件功能

Django 密码重置。不发邮件

Django 允许用户在电子邮件中插入动态内容

将 Mail Chimp API 集成到 Django 应用程序中。

使用django进行发送 邮件

celery django 定时发邮件