Python自动化发送邮件实战:从构建到SMTP配置详解

凌晨两点半
凌晨两点半
发布时间:2026-10-14 | 6人浏览过
原创

本文详解Python中利用smtplib和email模块实现邮件自动化的完整流程。涵盖纯文本、HTML及带附件邮件的构建方法,包括MIMEText与MIMEMultipart的使用。以QQ邮箱为例,演示开启SMTP、生成授权码及发送代码,并介绍基于磁盘监控的自动化场景,帮助开发者快速掌握邮件发送技术。

Python邮件自动化核心模块介绍

在Python环境中,实现邮件自动化操作主要依赖两个核心模块。

  1. smtplib
  2. email

smtplib模块封装了SMTP协议,专门负责邮件的发送传输;而email模块则用于构建邮件内容,支持生成三种类型的邮件格式。

  1. 纯文本邮件
  2. HTML格式邮件
  3. 包含附件的邮件

邮件内容构建方法:纯文本、HTML与附件

构建邮件时,需明确指定发件人、收件人、主题及正文等关键信息。以最基础的纯文本邮件为例,其构建逻辑如下。


>>> from email.mime.text import MIMEText
>>> from email.header import Header
>>> subject = '主题'
>>> message = MIMEText('正文', 'plain', 'utf-8')
>>> message['From'] = Header("发件人", 'utf-8')
>>> message['To'] = Header("收件人", 'utf-8')
>>> message['Subject'] = Header(subject, 'utf-8')

使用MIMEText方法创建邮件对象,第一个参数传入邮件正文内容,第二个参数指定格式为'plain'表示纯文本,第三个参数设定编码方式为utf-8。随后,通过设置From、To和Subject属性,分别定义发件人、收件人地址及邮件主题。

若需发送HTML格式邮件,仅需将MIMEText的第二个参数改为'html',具体用法参考以下示例。


>>> msg = '<p>正文</p>'
>>> message = MIMEText(msg, 'html', 'utf-8')

对于需要携带附件的邮件,应使用MIMEMultipart类来创建邮件对象,具体实现方式如下。


>>> from email.mime.multipart import MIMEMultipart
>>> message = MIMEMultipart()
>>> message.attach(MIMEText('正文', 'plain', 'utf-8'))
>>> attach = MIMEText(open('input.txt', 'rb').read(), 'base64', 'utf-8')
>>> attach["Content-Type"] = 'application/octet-stream'
>>> attach["Content-Disposition"] = 'attachment; filename="test.txt"'
>>> message.attach(attach)

基于QQ邮箱的SMTP发送配置与实战

邮件构建完成后,即可通过SMTP协议进行发送。此处以QQ邮箱为例,操作前需先在QQ邮箱设置中开启SMTP服务,并生成相应的授权码,具体步骤如图所示。

使用QQ邮箱发送电子邮件的具体代码实现如下。


>>> import smtplib
>>> from email.mime.text import MIMEText
>>> from email.header import Header
>>> message = MIMEText('正文', 'plain', 'utf-8')
>>> message['From'] = Header("发件人", 'utf-8')
>>> message['To'] = Header("收件人", 'utf-8')
>>> message['Subject'] = Header('主题', 'utf-8')
>>> server=smtplib.SMTP_SSL("smtp.qq.com", 465)
>>> server.login('xxxxxxxx@qq.com', 'dvyybvbwpnnbbdaj')
>>> server.sendmail('xxxxxxxx@qq.com', 'xxxxxxxx@qq.com' , message.as_string())

自动化场景应用:磁盘监控与告警

针对内容固定且需定期发送的邮件,利用自动化脚本可显著降低人工成本。例如,通过Python监控磁盘空间,当使用率超过80%时,自动向运维人员发送提醒邮件,提示进行数据备份或磁盘清理。

以上就是关于Python自动化发送邮件的完整实例讲解,更多相关技术内容可查阅本站往期文章或继续浏览后续教程,感谢大家的支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表