使用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中发送带有图片的网页邮件。通过详细的步骤和示例代码,您可以更轻松地在自己的项目中应用这些概念。

🍭总结


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

相关推荐
axban2 分钟前
QT M/V架构开发实战:QStandardItemModel介绍
开发语言·数据库·qt
没学上了4 分钟前
数据库建立库-Qt
数据库
I'm a winner22 分钟前
第五章:Python 数据结构:列表、元组与字典(一)
开发语言·数据结构·python
我是zxb35 分钟前
EasyExcel:快速读写Excel的工具类
数据库·oracle·excel
番薯大佬41 分钟前
Python学习-day9 字典Dictionary
网络·python·学习
代码不停44 分钟前
MySQL联合查询
java·数据库·mysql
nightunderblackcat1 小时前
新手向:C语言、Java、Python 的选择与未来指南
java·c语言·python
沐浴露z1 小时前
Redis内存回收:过期策略与淘汰策略
数据库·redis·缓存
宴之敖者、1 小时前
MySQL——数据库基础
数据库·mysql
张3蜂1 小时前
MongoDB BI Connector 详细介绍与使用指南(手动安装方式,CentOS 7 + MongoDB 5.0.5)
数据库·mongodb·centos