Python使用yagmail库发送QQ邮箱的完整指南
本文详细介绍如何在Python中利用yagmail库实现邮件发送功能。内容涵盖安装依赖、获取QQ邮箱授权码、配置SMTP服务器,以及发送纯文本、多收件人和带附件邮件的具体代码示例。此外,文章提供了将发送逻辑封装为函数的方法,便于在实际项目中复用。
安装yagmail库
在开始使用yagmail之前,首先需要确保环境中已安装该库。
可以通过以下命令从国内镜像源安装yagmail: pip install yagmail -i https://pypi.douban.com/simple
获取QQ邮箱授权码
若需通过QQ邮箱发送邮件,必须使用授权码而非邮箱登录密码。因此,第一步是登录QQ邮箱,进入“设置”中的“账户”选项卡,开启SMTP服务并生成授权码。
具体路径为:邮箱设置 -> 账户 -> 开启SMTP服务。

yagmail模块极大简化了邮件发送流程,仅需少量代码即可完成。
基础邮件发送实现
# -*- encoding: utf-8 -*-
import yagmail
def E_mali_jj(fr,key,etype,text,to,attachments):
'''
:param fr: 发送邮箱
:param key: 授权码
:param etype: 邮件类型
:param text: 文本
:param to: 接受邮箱
:param attachments: 附件文件地址,空则填''
:return:
'''
# 链接邮箱服务器
yag=yagmail.SMTP(user=fr,password=key,host=etype)
# 邮箱正文
contents=[text]
# 发送邮件
yag.send(to=to,subject='邮件标题',contents=contents,
attachments=attachments) #subject 标题
yag.close()
print("邮件发送成功")
if __name__ == '__main__':
E_mali_jj("123456@qq.com",
"gwheybuaamrqbihh",
'smtp.qq.com',
"邮件正文内容",
"123456@qq.com",
"E:\\proto_code\\Roshan-01-microscript-proto_test-master-src\\src\\report\\report.html")
当需要向多个收件人发送邮件时,只需将目标邮箱地址放入一个列表中即可。
发送多收件人邮件
# 发送邮件
yag.send(to = ['123456@qq.com','678910@qq.com', '10111213@qq.com'], subject='subject', contents = contents, attachments="")
除了文本内容,yagmail也支持发送带附件的邮件。
发送带附件邮件
# -*- coding:utf-8 -*-
import yagmail
yag = yagmail.SMTP( user="157540957@qq.com",
password="kayzilfyziulbhbb1",
host='smtp.qq.com')
"""
user: 发送的邮箱
password: 授权码
"""
# 邮箱正文
contents = ['测试发送邮件']
# 附件
attachments = "D:\\code\\0906\\api_test009\\report\\report.html"
# 发送邮件
try:
yag.send(to = '3437871062@qq.com',
subject='subject',
contents = contents,
attachments=attachments)
except Exception as e :
print("Error: 抱歉!发送邮件失败。", e)
"""
to : 接收者
subject : 邮件主题
contents: 正文
attachments: 附件
"""
yag.close()
为了在项目中更好地复用,可以将邮件发送逻辑封装成一个独立的函数。
封装邮件发送函数
# -*- coding:utf-8 -*-
import yagmail
def send(user, password, receiver):
yag = yagmail.SMTP( user=user,
password=password,
host='smtp.qq.com')
"""
user: 发送的邮箱
password: 授权码
"""
# 邮箱正文
contents = ['测试发送邮件']
# 附件
attachments = "D:\\code\\0906\\api_test009\\report\\report.html"
# 发送邮件
try:
yag.send(to=receiver,
subject='subject',
contents = contents,
attachments=attachments)
except Exception as e :
print("Error: 抱歉!发送邮件失败。", e)
"""
to : 接收者
subject : 邮件主题
contents: 正文
attachments: 附件
"""
yag.close()
if __name__ == '__main__':
send("123456@qq.com", "kayzilfyziulbhbb1", "45678910@qq.com")
至此,关于Python使用yagmail发送邮件的介绍已完成。如需了解更多相关内容,建议搜索本站历史文章或继续阅读后续教程,感谢支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









