2017-12-21 6 views
0

私は以下のビューコードスニペットを持っており、EmailMultiAlternativesというメールを管理者に送信したいのですが、問題は... htmlタグを表示しません。 いくつかのアイデアを親切に助けてください。mail_admins()内のEmailMultiAlternativesを送信しています

subject = "A New Feedback" 

ctx = { 
      'name': name, 
      'email': email, 
      'message': message 
     } 

message = ('ecoke/includes/email_feedback.html', ctx) 

mail_admins(subject, message, fail_silently=True, html_message='text/html') 

答えて

0

mail_adminsは、send_mailのラッパーです。

send_mailドキュメントhtml_messageは、電子メールに添付するHTMLメッセージとして記載されています。messageはプレーンテキスト文字列です。

上記の内容から、メッセージをレンダリングし(render_to_string)、HTMLとして添付する必要があります。

subject = "A New Feedback" 

ctx = { 
      'name': name, 
      'email': email, 
      'message': message 
     } 

html_message = render_to_string(
    'ecoke/includes/email_feedback.html', 
    context=ctx 
) 
text_message = 'Hi %s, <plain text goes here>' % name 

mail_admins(subject, text_message, fail_silently=True, html_message=html_message) 

2つのバージョンのテキストがあります。 1つはHTML用のプレーンテキスト用です。 HTMLはmail_adminsによってレンダリングされないので、テンプレートをHTMLに手動でレンダリングする必要があります。図示のように、HTMLメッセージが添付されているhere

+0

text_messageの目的はhtml_messageを電子メールのメッセージにしたいからです。 –

+0

受信者クライアントがHTMLメッセージを解釈できない場合。これが問題でない場合は、 'text_message'を空の文字列に設定することができます。 'text_message = ''' –

+0

はまだHTMLを表示しません! –

関連する問題