前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pyhon smtplib库 实现插入图片邮件发送

pyhon smtplib库 实现插入图片邮件发送

作者头像
kirin
发布2020-10-26 17:07:03
2.3K0
发布2020-10-26 17:07:03
举报
文章被收录于专栏:Kirin博客
代码语言:javascript
复制
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.utils import parseaddr, formataddr

sender = 'xxxxxxxxxx@qq.com'  # 这里就是你的QQ邮箱
# receiver = 'xxxxxxxx@qq.com'  # 发给单人时的邮件接收邮箱
to_address = ['xxxxxxxx@qq.com', 'xxxxxxxx@qq.com'] # 如果想发给多人,可以放入一个数组
cc_reciver = ['xxxxxxxx@qq.com', 'xxxxxxxx@qq.com'] # 如果想添加抄送人,也可以是单人或者数组的形式
reciver = to_reciver + cc_reciver

smtpserver = "smtp.qq.com" # 邮件服务器,如果是qq邮箱那就是这个了,其他的可以自行查找
username = 'xxxxxxx@qq.com' # 这里还是你的邮箱
password = 'fsdkfjlsjdfljasdfjsa' # 上面获取的SMTP授权码,相当于是一个密码验证

msgRoot = MIMEMultipart('related') # 邮件类型,如果要加图片等附件,就得是这个
msgRoot['Subject'] = '监控日报' # 邮件标题,以下设置项都很明了
msgRoot['From'] = sender
# msgRoot['To'] = receiver # 发给单人
msgRoot['To'] = ",".join( to_address ) # 发给多人
message['Cc'] = ";".join(cc_reciver) # 抄送人


# 以下为邮件正文内容,含有一个居中的标题和一张图片
content = MIMEText('<html><head><style>#string{text-align:center;font-size:25px;}</style><div id="string">我是居中显示的标题<div></head><body><img src="cid:image1" alt="image1"></body></html>','html','utf-8')
# 如果有编码格式问题导致乱码,可以进行格式转换:
# content = content.decode('utf-8').encode('gbk')
msgRoot.attach(content)

# 上面加的图片src必须是cid:xxx的形式,xxx就是下面添加图片时设置的图片id
# 添加图片附件
fp = open('C:\\Users\\cloudoxou\\Desktop\\img.png', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', 'image1') # 这个id用于上面html获取图片
msgRoot.attach(msgImage)

'''
# 另外也可以用base64的方法直接加:
import base64
img_file = open('C:\\Users\\cloudoxou\\Desktop\\img.png','rb')
base64_data = base64.b64encode(img_file.read())
html = "<img src="data:image/png;base64,%s" alt="image1">"%(base64_data) # 这里简化了html代码
'''

# 连接邮件服务器,因为使用SMTP授权码的方式登录,必须是465端口
smtp = smtplib.SMTP_SSL('smtp.qq.com:465')
smtp.login(username, password)
smtp.sendmail(sender, reciver, msgRoot.as_string())
smtp.quit()
文章出自:https://www.jianshu.com/p/00939538817a
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档