2015-09-15 39 views
0

我想發送郵件給django網站的訂閱者。所以,一旦有人登記,他們應該發送一封郵件。我可以通過django的send_mail函數來完成此操作,但是我想發送一個設計好的郵件(就像使用郵件黑猩猩模板一樣)。任何想法如何做到這一點?我閱讀了api文檔,瞭解如何發送郵件,但我無法理解如何整合自己的模板和內容。使用django發送郵件黑猩猩設計的電子郵件

任何建議將有所幫助。謝謝!

回答

2

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

您可以使用render_to_string(see here)函數來輸出適當的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', 
    '[email protected]', 
    ['[email protected]'], 
    html_message=html_template, 
) 
+0

這是偉大的!非常感謝! –

+0

快速跟進問題 - 這也可以與'send_mass_mail()'一起使用嗎? –

+0

看看這裏的答案:https://stackoverflow.com/questions/7583801/send-mass-emails-with-emailmultialternatives 可能回答你的問題! –