2017-01-03 20 views
0

html形式の文書を電子メールの本文として送信し、添付ファイルを含めることはできますか?HTMLボディでdjangoにメールを作成し、添付ファイルを添付します

send_mail()にはhtml_messageのオプションがありますが、EmailMessageクラスにはオプションがありません。

添付ファイルを送信するには、attach_fileメソッドを使用するためにEmailMessageクラスを使用する必要があります。

何か不足していますか?私はsend_mail()がEmailMessageクラスを使用していると思ったので、なぜこれらの2つの機能は相互に排他的なように見えますか?

答えて

1

EmailMultiAlternativesをチェックしてください。この目的で使用できるの機能がに添付されています。ここで

がそれを使用する方法の例です:

from django.core.mail import EmailMultiAlternatives 

    subject   = request.POST.get('subject', '') 
    message   = request.POST.get('message', '').encode("utf-8") 

    # Create an e-mail 
    email_message = EmailMultiAlternatives(
     subject=subject, 
     body=message, 
     from_email=conn.username, 
     to=recipents, 
     bcc=bcc_recipents, # ['[email protected]'], 
     cc=cc_recipents, 
     headers = {'Reply-To': request.user.email}, 
     connection = connection 
     ) 

    email_message.attach_alternative(message, "text/html") 

    for a in matachments: 

     email_message.attach(a.name, a.document.read()) 

    email_message.send() 
+0

ありがとうGustavo、 私のEmailMultiAlternativesの読書では、添付ファイルとして自分のHTMLバージョンを送信しようとしていたようでした。もう一度試してみましょう。 – RandO

0

私はHTML形式のメールを持っていることがわかり、私は体としてHTMLを持つことができますが、私はちょうどHTMLにcontent_subtypeを変更する必要があります。

msg_body.content_subtype =「HTML」あなたの助けのための

おかげで、それはより良い詳細を読むために戻って右のページに私を得ました。

+0

うれしかったです。 –

関連する問題