私は EmailMultiAlternatives クラスを使用して、django でテキストと HTML メールを送信しています。ダミーコードでテストしているときに、テキストを含む画像を追加したいと思いました。
msg = EmailMultiAlternatives('My subject','some text here', 'from@domain.com', ['to@my_domain.com'])
msg.attach_alternative('<p>here is what I was talking about</p> <img src="logo.png" alt="logo_here" /> <div>You see???</div>', 'text/html')
msg.attach_file('/var/my_site/static/images/logo.png')
msg.send()
問題は、電子メールクライアントで画像が表示されないことです...
生のメールを見て、これを見つけました:
--===============1013820581535380480==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
<p>here is what I was talking about</p> <img src=3D"logo.png" alt=3D"logo_h=
ere" /> <div>You see???</div>
--===============1013820581535380480==--
誰かが私が間違っていることを知っていますか??
ありがとう!
編集: HTML メールに画像を埋め込むことができました。EmailMultiAlternatives には、MimeImage オブジェクトを受け入れることができる attach メソッドがあるようです。実際には、MimeBase から継承するものは何でも受け入れることができます。
fp = open('test.jpg', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
mimeImage = MimeImage(fp.read())
mimeImage.add_header('Content-ID', '<logo.png>')
msg.attach(mimeImage)
msg.send()