Python3使用smtplib通过QQ邮箱发送邮件的完整指南

月亮慢半拍
月亮慢半拍
发布时间:2026-10-13| 1人浏览过
原创

本文详解Python3如何利用smtplib模块通过QQ邮箱发送电子邮件。内容涵盖开启QQ邮箱POP3/SMTP服务、获取授权码、配置SMTP服务器地址及端口,并提供完整的Python代码示例。文章还说明了发送成功与失败的判断逻辑,以及如何处理退信和垃圾邮件情况,适合Python初学者参考。

前言

本文主要介绍如何在Python3中使用smtplib模块通过QQ邮箱发送邮件。smtplib模块实现了SMTP(简单邮件传输协议)客户端功能。为了增强邮件的通用性和丰富性,在发送包含附件或图片的邮件时,通常会结合email.mime模块来构建邮件内容。

详细代码参考说明:Python3 SMTP发送邮件

0.了解qq邮箱的SMTP

QQ邮箱的POP3和SMTP服务器地址设置如下:

邮箱 POP3服务器(端口995) SMTP服务器(端口465或587)
qq.com pop.qq.com smtp.qq.com

SMTP服务器连接需要进行身份验证。

1.开启qq邮箱的smtp服务

如何打开POP3/SMTP/IMAP功能?

为了保障用户邮箱的安全,QQ邮箱默认关闭了POP3/SMTP/IMAP功能开关。当用户需要使用这些功能时,必须手动“开启”。首先,登录邮箱,进入“设置”-“帐户”页面;


然后,在“帐户”设置中找到相关设置项并进行配置,如下图所示:


最后,保存设置,即可成功开启相应的服务。

2.代码

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

my_sender='XXXXXXX@qq.com' # 发件人邮箱账号
my_pass = 'xxxxxxxxxxxx'    # 发件人邮箱密码(当时申请smtp给的口令)
my_user='xxxxxx@xx.com'  # 收件人邮箱账号,我这边发送给自己
def mail():
 ret=True
 try:
  msg=MIMEText('填写邮件内容','plain','utf-8')
  msg['From']=formataddr(["发件人昵称",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
  msg['To']=formataddr(["收件人昵称",my_user])    # 括号里的对应收件人邮箱昵称、收件人邮箱账号
  msg['Subject']="邮件主题-测试"    # 邮件的主题,也可以说是标题

  server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465
  server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
  server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
  server.quit()# 关闭连接
 except Exception:# 如果 try 中的语句没有执行,则会执行下面的 ret=False
  ret=False
 return ret

ret=mail()
if ret:
 print("邮件发送成功")
else:
 print("邮件发送失败")

注意:如果收件人地址错误,代码执行时仍可能提示“邮件发送成功”。若地址有误,发件人会在QQ邮箱中收到“来自qq.com的退信”。

3.效果

发送成功

发送

如果在收件箱中未看到邮件,请检查垃圾邮件文件夹。

接收

总结

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对本站的支持。

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

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