Python 使用 zmail 库发送电子邮件完整指南

沿途有光
沿途有光
发布时间:2026-10-11| 3人浏览过
原创

本文介绍如何使用 Python 的 zmail 库简化邮件发送流程。涵盖库的安装、QQ邮箱等常见服务商的 SMTP 配置(重点说明授权码与密码的区别)、纯文本邮件发送、添加附件以及向多个收件人发送的方法。

为什么选择 zmail 库

在 Python 中发送邮件通常需要使用标准的 smtplib 和 email 模块,这往往涉及繁琐的头信息构造和协议配置。zmail 库通过封装这些底层细节,提供了更简洁的 API。其核心优势包括:

  • 自动填充头信息:自动处理 From、To 等标准邮件头。
  • 字典映射:使用 Python 字典直接构建邮件内容,逻辑直观。
  • 自动协议识别:自动寻找并适配邮件服务商的端口号及协议。
  • 轻量级依赖:仅依赖 Python 3,易于嵌入各类项目中。

前置准备

在开始编码前,需完成以下两项准备工作:

  1. 安装 zmail 库:通过 pip 进行安装。
pip install zmail
  1. 开启 SMTP 服务:发送邮箱必须开启 SMTP 服务。以 QQ 邮箱为例,需在“账户设置”中开启 POP3/SMTP 和 IMAP/SMTP 服务。

基础发送流程

发送一封简单的纯文本邮件,主要包含定义邮件内容和初始化服务器两个步骤。

1. 定义邮件内容

使用字典定义邮件的主题(subject)和内容(content):

import zmail

mail_content = {
  'subject':'Success',#主题
  'content':'This is a content',#邮件内容
}

2. 初始化服务器并发送

使用 zmail.server() 初始化服务器对象。注意第二个参数:QQ 邮箱必须使用十六位授权码(而非登录密码),其他邮箱通常可使用登录密码。

#使用哪个邮箱发送邮件
server = zmail.server('243681093@qq.com','tkccftyagtkobghh')
#发送给哪个邮件
server.send_mail('wangjian@yidian-mall.com',mail_content)

进阶操作:附件与多收件人

添加附件

若需发送附件,需在邮件内容字典中添加 attachments 字段。建议始终使用文件的绝对路径,以避免因相对路径导致的文件未找到错误。

mail_content = {
  'subject': 'Success!', #主题
  'content': 'This message from zmail!', #邮件内容
  'attachments': '/Users/zyh/Documents/example.zip', # 附件内容(最好使用绝对路径,若你电脑没有这个文件会造成错误)
}

发送给多个收件人

向多个邮箱发送时,只需将 send_mail() 方法的第一个参数改为收件人邮箱列表即可。

# 发送邮件
server.send_mail(['555555@qq.com','6666qq.com'], mail_content)

常见问题与注意事项

  • 授权码问题:使用 QQ 邮箱发送时,若报错,请检查是否使用了十六位授权码。QQ 邮箱强制要求开启 SMTP 服务后使用授权码,而非登录密码。
  • 其他邮箱:部分其他邮箱服务商可能仍支持使用登录密码,具体视服务商安全策略而定。
  • 附件路径:务必确保附件路径正确,推荐使用绝对路径。

以上就是 Python 利用 zmail 库发送邮件的详细内容,更多关于 Python 邮件开发、zmail 高级用法及 SMTP 配置的资料请关注本站其它相关文章!

相关标签:

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

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 算法库。