关于如何将图像嵌入python电子邮件中,有很多答案。我不知道如何嵌入可点击的图像,然后将您引至网站。
Sending Multipart html emails which contain embedded images 我几乎完全遵循了第一条评论。我只需要弄清楚如何向该图像添加链接
这是我遵循的
msgRoot = MIMEMultipart('related')
fp = open('test.jpg', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', "<image1>")
msgRoot.attach(msgImage)
显然,这只是嵌入图像,但是我需要它来嵌入链接的图像!
答案 0 :(得分:1)
您链接的示例使用了正确格式的HTML电子邮件,其中add_alternative()
用于提供电子邮件的HTML部分。您已在编写的内容中排除了此内容。如果您在电子邮件中包含实际的HTML正文,那么您要做的就是将图像包装在您要链接到的URL的anchor(link)元素中。
(根据您的链接问题改编)
msg.add_alternative("""\
<html>
<body>
<p>Click the Image below to visit our site!</p>
<a href="www.google.com"><img src="cid:{image_cid}"></a>
</body>
</html>
""".format(image_cid=image_cid[1:-1]), subtype='html')
没有要测试的Python 2,但是应该可以在同一线程(表明与Python 2.x兼容)上的“接受的答案”中的以下代码正常工作。
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><a href="www.google.com"><img src="cid:image1"></a><br>Nifty!', 'html')
msgAlternative.attach(msgText)
同样,这里的要点是您通过html嵌入图像,这也允许您应用锚标记(基本上是您想要的其他任何样式)。