【发布时间】:2015-12-11 02:58:16
【问题描述】:
我想向 django 网站的订阅者发送邮件。因此,一旦有人注册,就应该向他们发送邮件。我可以通过 django 的 send_mail 功能来做到这一点,但我想发送设计好的邮件(比如使用邮件黑猩猩模板)。关于如何做到这一点的任何想法?我通读了api文档并了解了如何发送邮件,但我不明白如何集成自己的模板和东西。
任何建议都会有所帮助。谢谢!
【问题讨论】:
我想向 django 网站的订阅者发送邮件。因此,一旦有人注册,就应该向他们发送邮件。我可以通过 django 的 send_mail 功能来做到这一点,但我想发送设计好的邮件(比如使用邮件黑猩猩模板)。关于如何做到这一点的任何想法?我通读了api文档并了解了如何发送邮件,但我不明白如何集成自己的模板和东西。
任何建议都会有所帮助。谢谢!
【问题讨论】:
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() 吗?