web-dev-qa-db-ja.com

Django)でHTMLメールを送信する

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) 

Htmlをファイルとしてサーバーに保存し、それを文字列に変換して「html_message」に入力することはできますか?

13
deanm1

はい、できます。私自身のプロジェクトでは、次のコードを使用して同じことを行います。

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)

そして、htmlファイルは次のようになります。

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <h1>{{ user_name }}</h1>
        <h2>{{ subject }}</h2>
    </body>
</html>
23
shellbye