在Django中发送HTML电子邮件

dea*_*nm1 10 html python email django

自从Django 1.7问世以来,事情发生了一些变化.我试图使用'send_mail'发送HTML电子邮件.

我想在注册我的网站后向用户发送一封感谢邮件.

我正在使用

subject = 'Thank you from ******'
message = 'text version of HTML message'
from_email = my email address
to_list = users email address
html_message= really long set of html code

send_mail(subject,message,from_email,to_list,fail_silently=True,html_message=html_message) 
Run Code Online (Sandbox Code Playgroud)

是否可以将html作为文件存储在服务器上,然后将其转换为字符串,以便将其输入'html_message'?

she*_*bye 20

是的你可以.在我自己的项目中,我使用以下代码执行相同的操作:

from django.template import loader

html_message = loader.render_to_string(
            'path/to/your/htm_file.html',
            {
                'user_name': user.name,
                'subject':  'Thank you from' + dynymic_data,
                //...  
            }
        )
send_mail(subject,message,from_email,to_list,fail_silently=True,html_message=html_message)
Run Code Online (Sandbox Code Playgroud)

并且html文件看起来像这样:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <h1>{{ user_name }}</h1>
        <h2>{{ subject }}</h2>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 干得好,工作正常 (2认同)