Python 使用 zmail 库发送电子邮件完整指南
本文介绍如何使用 Python 的 zmail 库简化邮件发送流程。涵盖库的安装、QQ邮箱等常见服务商的 SMTP 配置(重点说明授权码与密码的区别)、纯文本邮件发送、添加附件以及向多个收件人发送的方法。
为什么选择 zmail 库
在 Python 中发送邮件通常需要使用标准的 smtplib 和 email 模块,这往往涉及繁琐的头信息构造和协议配置。zmail 库通过封装这些底层细节,提供了更简洁的 API。其核心优势包括:
- 自动填充头信息:自动处理 From、To 等标准邮件头。
- 字典映射:使用 Python 字典直接构建邮件内容,逻辑直观。
- 自动协议识别:自动寻找并适配邮件服务商的端口号及协议。
- 轻量级依赖:仅依赖 Python 3,易于嵌入各类项目中。
前置准备
在开始编码前,需完成以下两项准备工作:
- 安装 zmail 库:通过 pip 进行安装。
pip install zmail- 开启 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 配置的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









