目的:不打开QQ邮箱,自动化运行完毕之后,QQ邮箱自动向目标邮箱2发送结果邮件。
QQ邮箱需要进行配置:
获取qq邮箱授权码:
邮箱-设置-账户:
2. 多人邮件报错:AttributeError: 'list' object has no attribute 'encode'
-------------------------------
直接改list,如下,还是不行。
Receiver = ['nnv1@xx.cn','nnv2@xx.cn','nnv3@xx.cn','nnv4@xx.cn']
报错:AttributeError: 'list' object has no attribute 'encode'
然后查到,用下面方法分割:
to_list = ['a@xx.com', 'b@xx.com']
msg['to'] = ','.join(to_list)
查到的原文是这样:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
name = 'xx@xxx.cn'
pwd = 'xxx'
to_list = ['xx@xxx.cn']
content = '<html><head><title>test</title></head><body>这是测试邮件内容</body></html>'
msg = MIMEText(content, 'html', 'utf-8')
msg['form'] = Header('huyang', 'utf-8')
msg['to'] = ','.join(to_list) # 重点是这个位置
msg['subject'] = Header('测试邮件', 'utf-8')
#---发送
smtp = smtplib.SMTP_SSL('smtp.exmail.qq.com', 465)
smtp.login(name, pwd)
smtp.sendmail(name, to_list, msg.as_string())
print('发送成功!')
-----------------------------直接将两行代码改到我的代码里,还是不行,只有第一个邮箱收到邮件
后来修改倒数第二行:
原来的:smtp.sendmail(msg["from"], msg["to"], msg.as_string())
修改后:smtp.sendmail(msg["from"], msg["to"].split(','), msg.as_string())
好啦~~
import smtplib,datetime,time
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from time import sleep
def SendQQMailAttach(filename): #发送附件邮件
smtpserver = 'smtp.qq.com'
user = "96209**5@qq.com" # 发送邮件的邮箱
sender_pwd = 'pylnyc**ybt**bch' #授权码!!!
sender = '96209**65@qq.com' #发送邮箱
to_list =['aidongch**ue@126.com','96209**5@qq.com']
receiver = ','.join(to_list)
msg = MIMEMultipart()
now = time.strftime('%Y_%m_%d %H_%M_%S')
sleep(2)
att = MIMEText(open(filename, 'r', encoding='UTF-8').read(),'html') # 要发送的邮件附件
print(filename)
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attchment; filename="'+now+'Result.html"' #filename中选出要显示的名称 :左侧第25位向右取值到末尾
msg.attach(att)
msg["from"] = sender # 发件人
msg["to"] = receiver # 收件人
# msg["to"] = ";".join(receiver) # 多个收件人 list 转 str
msg["subject"] = Header('自动化测试结果(见附件)') # 发送的邮件的主题
body = '自动化测试(结果请下载查看附件)'
msg.attach(MIMEText(body,'plain'))
smtp = smtplib.SMTP()
smtp.connect(smtpserver) # 连服务器
smtp.login(user, sender_pwd)
smtp.sendmail(msg["from"], msg["to"].split(','), msg.as_string())
smtp.quit()