如何将链接的图像嵌入到python电子邮件中

时间:2019-05-08 11:38:35

标签: python python-2.7 html-email email-attachments

关于如何将图像嵌入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)

显然,这只是嵌入图像,但是我需要它来嵌入链接的图像!

1 个答案:

答案 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嵌入图像,这也允许您应用锚标记(基本上是您想要的其他任何样式)。