Python 三行代码实现邮件发送:yagmail 库详解

陈默
陈默
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何使用Python的yagmail库简化邮件发送流程。通过对比传统smtplib的复杂配置,展示yagmail仅需三行代码即可实现邮件发送。重点解析SMTP初始化参数及send方法中的收件人、主题、正文和附件设置,并详细说明邮箱授权码的获取方式,帮助开发者高效完成自动化邮件任务。

Python 发送邮件

在以往使用Python实现自动化邮件功能时,通常需要编写较为繁琐的代码。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 发送邮箱服务器
smtpserver = 'smtp.sina.com'
# 发送邮箱用户/密码
user = 'username@sina.com'
password = '123456'
# 发送邮箱
sender = 'username@sina.com'
# 接收邮箱
receiver = 'receive@126.com'
# 发送邮件主题
subject = 'Python email test'

# 编写HTML类型的邮件正文
msg = MIMEText('<html><h1>你好!</h1></html>','html','utf-8')
msg['Subject'] = Header(subject, 'utf-8')

# 连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

这段代码虽然逻辑清晰,但要求开发者理解邮箱发送的基本要素。以下是配置过程中必须考虑的关键点:

  • 登录邮箱的账号与密码
  • 接收方的邮箱地址
  • 邮件的具体内容,包括标题、正文以及附件
  • 邮箱服务器地址(如 SMTP 或 POP3 域名)

网络上关于Python发送邮件的教程大多基于 smtplib 库。尽管该库功能完备且并不复杂,但其配置步骤相对繁琐,远不如本文即将介绍的方法简洁高效。

本文的核心推荐对象是 yagmail 库。

GitHub 项目地址:https://github.com/kootenpv/yagmail(支持本地下载)

接下来直接通过示例进行演示:

 import yagmail
 yag = yagmail.SMTP(user='user@163.com',password='1234',host='smtp.163.com')
 contents = ['这里是内容']
 yag.send('target@qq.com','主题:这是一个主题',contents)


运行效果如下所示。

下面对代码进行简要解析。

yagmail.SMTP() 参数说明

yagmail.SMTP() 函数中包含几个关键参数。其中 user 和 password 分别对应用户邮箱账号和密码。这里需要特别注意:许多邮箱在登录时需要输入验证码,但 yagmail 使用的并非登录密码,而是“授权码”。授权码是专门用于第三方应用或机器登录的凭证。用户需在邮箱设置中找到 POP3/SMTP/IMAP 相关选项,开启服务后即可生成或设置授权码。

send() 参数说明

yag.send(to=args.to,subject=args.subject,contents=args.contents,attachments=args.attachments)

args.to 指定收件人邮箱地址。若需向多个目标发送邮件,只需将邮箱地址放入列表中即可。

args.subject 用于设定邮件主题。

args.contents 用于定义邮件正文内容。

args.attachments 用于指定附件,传入文件路径即可。

总结

以上即为本文的全部内容。希望本文的介绍能为您的学习或工作提供参考价值。如有任何疑问,欢迎留言交流,感谢对本站的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。