草庐IT

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

YP_FlowerSky 2023-04-12 原文

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

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

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  5. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  6. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  7. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  8. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  9. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  10. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

随机推荐