Python3通过SMTP发送纯文本邮件的完整指南

南乔
南乔
发布时间:2026-10-13| 4人浏览过
原创

本文详解如何使用Python3通过SMTP协议发送纯文本邮件。内容涵盖在163等邮箱中开启POP3/SMTP服务并获取客户端授权码的步骤,以及基于Python 3.6.3环境的完整代码实现。文章提供了发送成功与失败的判断逻辑,并简要提及HTML正文及附件发送的可能性,帮助开发者快速掌握基础邮件发送功能。

一、配置SMTP服务与获取授权码

若需利用第三方邮件服务器的SMTP服务发送邮件,首要步骤是在邮箱设置中启用POP3、SMTP或IMAP服务。此处以163邮箱为例,其他主流邮箱的操作流程基本一致。

163邮箱对应的SMTP服务器地址为:smtp.163.com

QQ邮箱对应的SMTP服务器地址为:smtp.qq.com

具体操作步骤如下:首先登录个人邮箱账户,进入【设置】菜单,找到【POP3/SMTP/IMAP】选项,并开启相关服务。

接着,开启服务后需获取客户端授权码。请注意,此授权码并非邮箱登录密码,而是专门用于第三方邮件服务访问的凭证。

二、利用Python3实现邮件发送

本教程使用的运行环境如下: Python 3.6.3 (64位) PyCharm 2017.3 (64位)

核心实现代码如下:

import smtplib 
from email.header import Header     # 用来设置邮件头和邮件主题 
from email.mime.text import MIMEText    # 发送正文只包含简单文本的邮件,引入MIMEText即可 
 
# 发件人和收件人 
sender = 'XXXXXXXXXXX@163.com' 
receiver = 'XXXXXXXXX@qq.com' 
 
# 所使用的用来发送邮件的SMTP服务器 
smtpServer = 'smtp.163.com' 
 
# 发送邮箱的用户名和授权码(不是登录邮箱的密码) 
username = 'XXXXXXXXXXX' 
password = 'XXXXXXXX' 
 
mail_title = '这里是邮件的主题' 
mail_body = '这里是邮件的正文' 
 
# 创建一个实例 
message = MIMEText(mail_body, 'plain', 'utf-8') # 邮件正文 
message['From'] = sender       # 邮件上显示的发件人 
message['To'] = receiver       # 邮件上显示的收件人 
message['Subject'] = Header(mail_title, 'utf-8') # 邮件主题 
 
try: 
 smtp = smtplib.SMTP()       # 创建一个连接 
 smtp.connect(smtpServer)      # 连接发送邮件的服务器 
 smtp.login(username, password)    # 登录服务器 
 smtp.sendmail(sender, receiver, message.as_string()) # 填入邮件的相关信息并发送 
 print("邮件发送成功!!!") 
 smtp.quit() 
except smtplib.SMTPException: 
 print("邮件发送失败!!!") 

邮件发送成功后,若收件人未收到邮件,可能被系统误判为垃圾邮件。建议检查收件箱的垃圾邮件拦截记录。以下是发送方视角的邮件状态:

接收方视角收到的邮件效果如下:

上述示例仅演示了最基础的纯文本格式邮件发送,正文部分仅包含普通文本内容。

此外,Python还支持发送更复杂的邮件类型,例如: 正文为HTML格式的邮件 包含附件的邮件(附件类型可涵盖HTML网页、TXT文本、JPG图片,以及音频、视频文件等) 相关高级功能将在后续章节继续讲解。

以上就是本文的全部内容,希望能为您的学习提供有益帮助,也欢迎大家继续支持本站。

相关标签:

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

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