python-发送邮件

网友投稿 620 2022-05-29

这里事清安,我们跑完自动化脚本后,是不是想一气呵成把邮件一起发了?完成一次华丽的真自动化。

zmail操作

1. 导包 import zmail

python-发送邮件

2. 邮件内容,包含:主题(subject)、正文(content_text)、附件(attachments)

3. 发件人信息,包含:发件人账号,密码(授权码)

4. 发送邮件,包含:收件人地址,邮件内容

5. 群发邮件,收件人地址写在一个列表中,多个收件人以逗号分隔开

纯文字发送:

import zmail #邮件内容,主题subject内容content_text,不能随意定义 msg = { 'subject':'邮件主题:小姐姐的信息', 'content_text':'身高172,大长腿,颜值高。。。' } #发件人,授权码 sender = ('123456798@qq.com','dfddfdfdfggrgrgc') #收件人 reciver = '123456789@163.com' #群发形式,这里列表不支持改成元组 #reciver = ['123465789@163.com','12345678@qq.com'] # 登录,索引值账号、密码 sender = zmail.server(sender[0],sender[1])#(*sender)也叫解包,自动填充 # 发送邮件,发动到哪个邮件,以及发送内容 sender.send_mail(reciver,msg) 复制代码

需要值得注意的是,这里的操作很简单,msg是一个字典变量,我们自己设定的,但是 里面的键是不能够改变的,是这个库内部规定的,其他的变量名可以随意的取,这里的sender是你的账号加上授权码。

也可以进行群发哦,但是需要是列表形式的。

这里说一下授权码怎么弄,在你邮件中,找到设置按钮,点击后进入设置界面,再找到你的账户按钮,点击进入,一直下拉

把这些服务全部打开:

点击生成授权码,按照操作来,发送短信,点击我已发送,就可以得到一串授权码, 记得自己收好哦。

html格式发送:

我们还可以发送HTML形式的文档出去 ,所以这波操作也是一个关键,后续自动化发送邮件我们需要将报告进行压缩,如何以zip或者rar又或者以其他形式的方式进行发送。

# 方法一 comtent = ''' html内容 ''' # 方法二 with open('email_msg.html','r',encoding='utf-8') as e: comtent = e.read() #这里如果正文跟html都写,会被html格式内容跟所覆盖掉 msg = { 'subject':'邮件主题:自动化测试报告', 'content_html':comtent, } #发件人 sender = ('123456798@qq.com','dfddfdfdfggrgrgc') #收件人 reciver = '123456789@163.com' #群发形式,这里列表不支持改成元组 #reciver = ['123465789@163.com','12345678@qq.com'] # 登录,索引值账号、密码 sender = zmail.server(sender[0],sender[1])#(*sender)也叫解包,自动填充 # 发送邮件,发动到哪个邮件,以及发送内容 sender.send_mail(reciver,msg) 复制代码

这里清安给出了两种方法,第一种呢比较lw,还是用第二种吧,html形式的就不是很适合发送不得了的图片了,但是还有一种你绝对的想知道,那就是附件形式去发送,简单快捷,发完还可以清理磁盘,哈哈哈哈!!!

附件格式发送:

直接上代码:

#发送附件,附件(attachments),多个附件的话用列表形式 msg = { 'subject':'邮件主题:你好', 'content_text':'附件', 'attachments':'1.png' } #'attachments':['1.png','test.make.txt'] #发件人 sender = ('123456798@qq.com','dfddfdfdfggrgrgc') #收件人 reciver = '123456789@163.com' #群发形式,这里列表不支持改成元组 #reciver = ['123465789@163.com','12345678@qq.com'] # 登录,索引值账号、密码 sender = zmail.server(sende[0],sende[1])#(*sender)也叫解包,自动填充 # 发送邮件,发动到哪个邮件,以及发送内容 sender.send_mail(reciver,msg) 复制代码

封装

我们不想每次都来重新写这些代码,那么我们就封装一下,需要的时候直接导入类调用使用就好了。

class Email_file(): # 主题,正文,附件,初始化对应的属性,床送多个附件就必须要*attachments def __init__(self,subject,content_text,attachments): self.subject = subject self.content_text = content_text self.attachments = attachments #传送多个附件,转成列表形式 #self.attachments = list(attachments) self.msg= { 'subject':self.subject, 'content_text':self.content_text, 'attachments':self.attachments, } def send_email(self,*sender_more,**romve_more): #单个发件人,多个发件人 #self.sender = '1104282189@qq.com' self.sender = sender_more #收件人 # self.remove = '1104282189@qq.com' #多个收件人 self.list_remove = [] #把字典值存入列表中 for i in romve_more.values(): self.list_remove.append(i) #登录操作 self.get_email = zmail.server(*self.sender) #发送 self.get_email.send_mail(self.sender,self.msg) m = Email_file('邮件主题:你好','邮件正文内容:你好!','email_msg.html') #传值,多个发件人,多个收件人 m.send_email('123456789@qq.com','qokdghjdgjdkejye',user1='123456789@163.com',user2='123456789@qq.com') 复制代码

最后说明一下,邮件发送需要根据自身框架的实际情况进行变更,所以,这里的只是以介绍的形式告诉你,可以这样做。需要灵活运用,善于百度!

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《单片机原理与应用》期末试卷参考2020年
下一篇:oracle 19C 安装
相关文章