[解決済み】Djangoでメールテンプレートを作成する
2022-04-04 10:58:12
質問
このようなDjangoのテンプレートを使って、HTMLメールを送信したいのですが。
<html>
<body>
hello <strong>{{username}}</strong>
your account activated.
<img src="mysite.com/logo.gif" />
</body>
については、何も見つかりません。
send_mail
そして、django-mailer は HTML テンプレートのみを送信し、動的なデータは送信しません。
Django のテンプレートエンジンを使って電子メールを生成するには?
どのように解決するのですか?
から ドキュメント のように、HTMLメールを送信するために、別のcontent-typesを使用したい。
from django.core.mail import EmailMultiAlternatives
subject, from_email, to = 'hello', '[email protected]', '[email protected]'
text_content = 'This is an important message.'
html_content = '<p>This is an <strong>important</strong> message.</p>'
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
メール用のテンプレートは2つ必要でしょう。プレーンテキストのものは、以下のようなもので、テンプレート・ディレクトリの
email.txt
:
Hello {{ username }} - your account is activated.
の下に格納されているHTML的なものと
email.html
:
Hello <strong>{{ username }}</strong> - your account is activated.
この2つのテンプレートを使ってメールを送るには
get_template
このように
from django.core.mail import EmailMultiAlternatives
from django.template.loader import get_template
from django.template import Context
plaintext = get_template('email.txt')
htmly = get_template('email.html')
d = Context({ 'username': username })
subject, from_email, to = 'hello', '[email protected]', '[email protected]'
text_content = plaintext.render(d)
html_content = htmly.render(d)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
関連
-
[解決済み] Django-Rest-Framework ルータ登録
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] 有効なメールアドレスの最大長を教えてください。
-
[解決済み] mailto:を使ってメールの件名や内容を設定することはできますか?
-
[解決済み] .NETでGmailを使ったメール送信
-
[解決済み] メール送信インテント
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み】Djangoのテンプレートにコメントを入れる方法
-
[解決済み] djangoのテンプレートで文字列を連結する方法は?
-
[解決済み】テンプレート変数をHTMLとしてレンダリングする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Django: TemplateSyntaxError: 余りをパースできませんでした。
-
[解決済み] ImportError: 'django.utils' から名前 'six' をインポートできません。
-
[解決済み] CSRFに失敗しました。CSRFトークンがないか不正確です
-
django upstream が up からの応答ヘッダを読み込む際に接続を早々に切断してしまう。
-
Djangoにおけるrenderとrender_to_responseの違いについて
-
[解決済み] http://127.0.0.1:8000/ には接続できるのに、http://192.168.1.6/ には接続できないのはなぜですか?
-
[解決済み] Facebookログインとメール認証
-
[解決済み】Djangoのテンプレートにコメントを入れる方法
-
[解決済み】Django: モデルフィールドのリストを取得しますか?
-
[解決済み】Djangoのvalues_listとvaluesの比較