使用Python发送HTML格式的邮件

使用Python发送HTML格式的邮件

😇博主简介:我是一名正在攻读研究生学位的人工智能专业学生,我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑,欢迎随时来交流哦!😄

✨座右铭:宝剑锋从磨砺出,梅花香自苦寒来。

⛪️个人主页:点击进入博客主页

🚀欢迎大家浏览博主的文章!在阅读过程中,如果发现需要纠正的地方,请不吝指出,愿能与诸君共同进步!

文章目录


正文

🍭使用Python发送HTML格式的邮件

在现代通信中,电子邮件是一种常见的沟通方式。通过Python编程语言,您可以使用内置的库来发送邮件,并在邮件中嵌入HTML内容和图片。上一篇博客中介绍了如何开通QQ邮箱的SMTP服务,以及如何发送文本邮件。本篇博客将介绍如何使用Python发送带有HTML格式内容,以及涉及的步骤和代码示例。
如何开启QQ邮件的SMTP服务以及如何使用Python发送邮件

设置邮件信息和内容

首先,我们需要设置邮件的基本信息,如发件人、收件人、主题等。您可以使用emailsmtplib库来完成这一任务。

邮件信息

python 复制代码
sender_email = "your_email@example.com"
receiver_email = "recipient@example.com"
subject = "HTML邮件示例"

构建HTML内容

在邮件的HTML内容中,您可以编写任何格式和样式的内容。在这个示例中,我们构建了一个简单的HTML页面。

HTML内容

python 复制代码
html_content = """
<html>
<head></head>
<body>
  <h1>这是一个HTML邮件示例</h1>
  <p>这是一封使用Python发送的带有HTML内容的邮件。</p>
</body>
</html>
"""

嵌入图片

如果您想在邮件中嵌入图片,需要按以下步骤操作:

  1. 通过二进制模式打开图片文件。
  2. 读取图片的二进制数据。
  3. 创建一个MIMEImage对象,将图片数据附加到该对象上,并设置Content-ID
  4. 通过msg.attach()方法将图片添加到邮件内容中。

嵌入图片代码

python 复制代码
from email.mime.image import MIMEImage

with open("path_to_your_image.png", "rb") as image_file:
    image_data = image_file.read()
    image = MIMEImage(image_data)
    image.add_header("Content-ID", "<image1>")
    msg.attach(image)

发送邮件

使用SMTP协议发送邮件需要配置SMTP服务器的信息,以及发件人的用户名和密码。在本例中,我们使用了QQ邮箱的SMTP服务器。

发送邮件代码,(未加入图片)

python 复制代码
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# 邮件信息
sender_email = "350728668@qq.com"
receiver_email = "1443004194@qq.com"
subject = "HTML邮件示例"
html_content = """
<html>
<head></head>
<body>
  <h1>这是一个HTML邮件示例</h1>
  <p>这是一封使用Python发送的带有HTML内容的邮件。</p>
</body>
</html>
"""

# 设置邮件内容
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = subject
msg.attach(MIMEText(html_content, "html"))

# 连接到SMTP服务器并发送邮件
smtp_server = "smtp.qq.com"
smtp_port = 465  # 使用SSL加密连接的端口
smtp_username = "350728668@qq.com"
smtp_password = "gxsdasdasdafcbag"
#smtp_password为授权码,上边的为随机生成不能正常使用。
server = None  # 初始化server变量

try:
    server = smtplib.SMTP_SSL(smtp_server, smtp_port)  # 使用SMTP_SSL来建立SSL加密连接
    server.login(smtp_username, smtp_password)
    server.sendmail(sender_email, receiver_email, msg.as_string())
    print("邮件发送成功!")
except Exception as e:
    print("邮件发送失败:", str(e))
finally:
    if server:
        server.quit()

运行代码:

邮件发送成功!目标邮箱已经接收到文本邮件。

结论

这篇博客介绍了如何使用Python发送带有HTML内容的邮件。我们了解了设置邮件信息、构建HTML内容、嵌入图片和发送邮件的基本步骤和示例代码。希望这篇博客能够帮助您更好地理解如何在Python中发送带有图片的网页邮件。通过详细的步骤和示例代码,您可以更轻松地在自己的项目中应用这些概念。

🍭总结


感谢浏览!
如果这篇文章对您有帮助,请点个小赞吧,愿能与诸君共同进步!

相关推荐
HenryLin5 分钟前
美股量化分析系统 - 模块调用流程文档
python
跟橙姐学代码7 分钟前
一文读懂 Python 的 JSON 模块:从零到高手的进阶之路
前端·python
躺不平的小刘22 分钟前
从YOLOv5到RKNN:零冲突转换YOLOv5模型至RK3588 NPU全指南
linux·python·嵌入式硬件·yolo·conda·pyqt·pip
smilejingwei23 分钟前
数据分析编程第二步: 最简单的数据分析尝试
数据库·算法·数据分析·esprocspl
文火冰糖的硅基工坊1 小时前
[激光原理与应用-317]:光学设计 - Solidworks - 草图
开发语言·python·信息可视化·系统架构
bing.shao1 小时前
gRPC 选型 etcd 的核心优势分析
数据库·微服务·云原生·golang·etcd
高级测试工程师欧阳1 小时前
python中selenium怎么使用
python·pandas
BertieHuang2 小时前
(一)深入源码,从 0 到 1 实现 Cursor
人工智能·python·程序员
以泪为证2 小时前
WebSocket 任务分发系统代码深度分析与应用
python
TDengine (老段)2 小时前
TDengine IDMP 应用场景:微电网监控
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据