Python发送多人邮件报错
2020-12-23 08:27
453 查看
问题现状
to_email = ['***@qq.com','***@qq.com']
发送邮件时会报以下错误
AttributeError: ‘list’ object has no attribute ‘encode’ )
问题分析
列表没有encode的属性,原因是提取列表中的某个邮箱时,它依然还是列表类型,所以我们需要将它转换成字符串类型。因为字符串是可以使用encode方法。
解决办法
方法一:
to_email = ["xxxxxxxxx@qq.com", "xxxxxxxxx@qq.com"] msg['To'] = ','.join(to_email )
这么发貌似没有问题,但实际上只有第一个人收到邮件了,其他人都没有收到。
究其原因,是Python的smtplib模块中,发送对象和实际发送对象是两种格式的数据。发生对象格式必须是字符串,实际发送的格式则是列表。
msg = MIMEMultipart() msg['Subject'] = Header(subject, 'utf-8') msg['From'] = self.user msg['To'] = to
发送的对象格式按如下修改成字符串格式
msg = MIMEMultipart() msg['Subject'] = Header(subject, 'utf-8') msg['From'] = self.user msg['To'] = ','.join(to)
实际发送的格式依然按照之前定义的列表格式
users = [***@qq.com,***@qq.com] smtp.sender(to=users, attachments=report_abspath)
然后大功告成,所有人都收到了邮件和附件。
方法二:
按照上面的格式进行处理也是可以成功的,具体我就不试了。
思路:按下列字符串格式进行填写用户列表,然后实际发送的时候转换成列表即可。
to_email = "xxxxxxxxx@qq.com, xxxxxxxxx@qq.com"
相关文章推荐
- Python3 Email模块定时定点发送邮件+附件,外带关机模块
- Python发送邮件模块
- 自动邮件发送程序Python版本
- 一个python的邮件发送脚本,自动,定时,可以附件发送,抄送,附有说明文件
- python笔记---SMTP发送邮件
- Python通用发送邮件模块
- python调用smtplib模块发送邮件
- 利用python发送邮件
- Python之邮件发送
- python 简单邮件发送
- python:利用smtplib模块发送邮件
- python批量发送带附件邮件
- python发送邮件
- 利用python smtplib简单有效的发送一封邮件(1)
- python发送带附件的邮件
- Python3 SMTP发送邮件
- Python3实现发送QQ邮件功能(html)
- 使用python发送带附件的邮件给多个收件人
- Python 邮件发送
- Python发送邮件,含附件