Python3使用SMTP发送HTML格式邮件

周予安
周予安
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何使用Python3通过SMTP协议发送HTML格式邮件。主要步骤包括开启邮箱SMTP服务并获取授权码,利用smtplib和email模块构建邮件对象。文中提供了基于Python 3.6.3和PyCharm 2017.3的完整代码示例,涵盖读取本地HTML文件、设置邮件头及发送逻辑,并提示了邮件可能被归入垃圾邮件的情况。

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

关于如何开启SMTP服务及获取授权码的具体步骤,可参考前文《Python3使用SMTP发送简单文本邮件》的第一部分,此处不再重复说明。

二、利用Python3发送HTML格式邮件

0.运行环境说明:

Python 3.6.3 (64bit) PyCharm 2017.3 (64bit)

1.核心实现代码:

import smtplib 
from email.header import Header 
from email.mime.text import MIMEText 
 
 
# 发件人和收件人 
sender = 'XXXXX@163.com' 
receiver = 'XXXXX@qq.com' 
 
# 所使用的用来发送邮件的SMTP服务器 
smtpserver = 'smtp.163.com' 
 
# 发送邮箱的用户名和授权码(不是登录邮箱的密码) 
username = 'XXXXX' 
password = 'XXXXX' 
 
# 邮件主题 
mail_title = '主题:测试报告3' 
 
# 读取html文件内容 
f = open('report_test.html', 'rb') # HTML文件默认和当前文件在同一路径下,若不在同一路径下,需要指定要发送的HTML文件的路径 
mail_body = f.read() 
f.close() 
 
# 邮件内容, 格式, 编码 
message = MIMEText(mail_body, 'html', 'utf-8') 
message['From'] = sender 
message['To'] = receiver 
message['Subject'] = Header(mail_title, 'utf-8') 
 
 
try: 
  smtp = smtplib.SMTP() 
  smtp.connect('smtp.163.com') 
  smtp.login(username, password) 
  smtp.sendmail(sender, receiver, message.as_string()) 
  print("发送邮件成功!!!") 
  smtp.quit() 
except smtplib.SMTPException: 
  print("发送邮件失败!!!") 

2.邮件发送成功后,若收件人未收到邮件,可能是因为被邮箱系统判定为垃圾邮件而拦截,建议检查垃圾邮件文件夹或拦截记录。

以上内容为本文全部介绍,希望能对读者的学习起到辅助作用,同时也欢迎大家继续支持本站。

相关标签:

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

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