Selenium /Python 配置QQ邮箱后台自动发送邮件unittest//发送多人邮件报错: ‘list‘ object has no attribute ‘encode‘

目的:不打开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()

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值