2011-06-20 37 views
4

HTMLと埋め込み画像で電子メールを送信しようとしています。メールの送信は正常に動作し、画像も電子メールに添付されていますが、HTML(インライン)で画像が表示されません。テンプレートに表示し、CIDにIDが、何の成功は:(私はそう多くの形を模索しないと解決策を適用するが、無駄ではここに私のコードです!助けてください:私は、コンテンツを使用していました。Django EmailMultiAlternativesに埋め込み画像をHTMLで埋め込んでいます

html_content = render_to_string('newsletters/newsletter_template.html', vars) 
text_content = strip_tags(html_content) 

to = '[email protected]' 


msg = EmailMultiAlternatives(self.subject, text_content, settings.STAFF_FROM_EMAIL, [to]) 
msg.attach_alternative(html_content, "text/html") 

image_file = open('../media/images/banner_admin.gif', 'rb') 
msg_image = MIMEImage(image_file.read()) 
image_file.close() 

msg_image.add_header('Content-ID', '<image1>') 
msg.attach(msg_image) 

msg.send() 

テンプレートファイル:

<div style="border:2px solid #CCCCCC; width:900px; font-size:10px; padding:5px;"> 
    <div style="margin-bottom: 10px;"><img src="cid:image1" /></div> 
    <div style="">{{body|linebreaks}}</div> 
</div> 

私はここで何かが欠けていた場合、私に知らせてください... HTMLメールで

+0

こんにちは。あなたのコードは私のために働いています。私はGMailでフォーマットされた電子メールを受け取りました。 –

答えて

-1

画像は絶対URLを持っている必要があります:

<img alt="Django" src="https://www.djangoproject.com/m/img/site/hdr_logo.gif"> 
+0

これは間違っています。 HTML電子メール内の画像タグは、コンテンツIDを参照することによって添付ファイルを参照できます。詳細はhttp://www.campaignmonitor.com/blog/post/1759/embedding-images-revisited/を参照してください。 – rossp

+0

私はそれを知らなかった。リンクありがとう。 – Brandon

+0

質問は埋め込まれた画像についてであり、遠隔ホストされた画像ではありません –

関連する問題