目录
2,yag = yagmail.SMTP("user", "password", "host")
3,yag.send(['xxxxxx@qq.com'], subject, content)
五,中文报错SyntaxError: Non-UTF-8 code starting with '\xe6' in file
一,需要模块:yagmail
模块下载:
# MAC OS 环境:
pip3 install yagmail -i https://pypi.tuna.tsinghua.edu.cn/simple/
# Windows 环境:
pip install yagmail -i https://pypi.tuna.tsinghua.edu.cn/simple/
二,用代码即可实现(三行即可)
# 导入 yagmail 模块
import yagmail
# 连接邮箱服务器
yag = yagmail.SMTP(user='xxxxxx@qq.com', password='xxxxxx', host='smtp.qq.com')
# 邮件内容
yag.send(to=['xxxxxx@qq.com'], subject='Python 发送邮件', contents='人生苦短,我用 Python')
三,详细说明
1,import yagmail 导入模块
2,yag = yagmail.SMTP("user", "password", "host")
(1)user 发件人邮箱也就是你自己的邮箱地址
(2)password 是授权码,不是邮箱密码
(3)授权码获取方式如下(以QQ邮箱为例):
登录QQ邮箱后,设置——>账户——>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务——>
我们需要开启POP3/SMTP 服务——>生成授权码
开启后会得到一个授权码,如果已经开启,可以点击下面的 生成授权码 重新获取新的授权码。生成授权码的界面如下,是一个 16 位的字符串,我们直接复制即可。注意,这个授权码和密码一样是极其隐私的,千万不要泄露出来。
3,yag.send(['xxxxxx@qq.com'], subject, content)
(1)to
:收件人邮箱,可接收一个列表,传入多个收件人邮箱;
(2)subject
:邮件主题;
(3)
contents
:邮件内容,可接收一个列表,传入多行文本或多个文件。如果我们把文件路径作为列表元素,那么该文件也会作为附件发送;如果 路径下这个文件不存在,那发送的邮件就会将存储路径作为文本直接显示。
四,实例
import yagmail
# coding:utf-8
sub = '主题'
countent = '内容'
path = r'D:\Progect\pythonProject\Hello.txt' #文件所在路径
yag = yagmail.SMTP('12345@qq.com', 'xxxxxxxxxxxxxxxx', 'smtp.qq.com')
yag.send('54321@163.com', '主题', '内容') #发送文本内容
yag.send('54321@163.com', sub, countent)
yag.send('54321@163.com', '主题', path) #发送文件
五,中文报错SyntaxError: Non-UTF-8 code starting with '\xe6' in file
如果有SyntaxError: Non-UTF-8 code starting with '\xe6' in file 报错的话,在代码最上面加上编码格式
#coding:utf-8