J'utilise la classe EmailMultiAlternatives pour envoyer du courrier texte et html avec django. Lors d'un test avec un code fictif, j'ai voulu ajouter une image avec du texte.EmailMultiAlternatives ajouter une 3D lors de l'envoi de courrier avec image dans django
msg = EmailMultiAlternatives('My subject','some text here', '[email protected]', ['[email protected]_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()
Le problème est que le client de messagerie de l'image ne montre pas ...
Regarder l'e-mail cru, je trouve ceci:
--===============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==--
Est-ce que quelqu'un a une idée de ce que je fais mal ??
Merci!
Editer: Je pourrais réussir à intégrer une image dans le courrier HTML. Il semble que EmailMultiAlternatives possède une méthode attach qui peut accepter un objet MimeImage. En fait, il peut accepter tout ce qui hérite de 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()
Ceci l'a fixé pour moi! Juste une petite faute de frappe, ça devrait être msg.mixed_subtype = 'related' pas relatif ... –