python3邮件添加图片

如果要把一个图片嵌入到邮件正文中怎么做?直接在HTML邮件中链接图片地址行不行?

答案是,大部分邮件服务商都会自动屏蔽带有外链接的图片,因为不知道这些链接是否指向恶意网站。

要把图片嵌入到邮件正文中,我们只需要按照发送附件的方式,先把邮件作为附件添加进去,

然后,在HTML中通过引用src=“cid:0”就可以把附件作为图片嵌入了。如果有多个图片,给他们依次编号,然后引用不同的cid:x即可。

把上面代码加入MIMEMultipart的MIMEText从plain改为html,然后在适当的位置引用图片:

#邮件正文是MIMEText:
msg.attach(MIMEText('<html><body><h1>hello</h1>'+
'<p><img src="cid:0"></p>'+
'</body></html>','html','utf-8'))

 

同时支持HTML和Plain格式

如果我们发送HTML邮件,收件人通过浏览器或者Outlook之类的软件是可以正常浏览邮件内容的,但是如果收件人使用的设备太古老,查看不了HTML邮件怎么办?

办法是在发送HTML的同时再添加一个纯文本,如果收件人无法查看HTML格式的邮件,就可以自动降级查看纯文本邮件。

Python的smtplib发送邮件十分简单,只要掌握了各种邮件类型的构造方法,正确设置好邮件头,就可以顺利发出。

构造一个邮件对象就是一个Message对象,如果构造一个MIMEText对象,就表示一个文本邮件对象,如果构造一个MIMEImage对象,就表示一个作为附件的图片,要把多个对象组合起来,就用MIMEMultipart对象,而MIMEBase可以表示任何对象。他们的继承关系如下:

Message
+-MIMEBase
+-MIMEMultipart
+-MIMENonMultipart
+-MIMEMessage
+-MIMEText
+-MIMIEImage

通过msg.attach添加html文本及多个图片

 

 


这种嵌套关系就可以构造出任意复杂的邮件。你可以通过email.mime文档查看它们所在的包以及详细的用法。
————————————————
https://blog.csdn.net/Darin2017/article/details/89634257?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.nonecase

 

posted @ 2020-05-19 09:37  定静沉行  阅读(3427)  评论(0编辑  收藏  举报