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

🍭总结


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

相关推荐
锐策几秒前
〔 MySQL 〕数据类型
数据库·mysql
zhanghaisong_20159 分钟前
Caused by: org.attoparser.ParseException:
前端·javascript·html·thymeleaf
weixin_4786897617 分钟前
【回溯法】——组合总数
数据结构·python·算法
天天要nx21 分钟前
D68【python 接口自动化学习】- python基础之数据库
数据库·python
Allen Bright24 分钟前
Redis安装
数据库·redis·缓存
山山而川 潺潺如镜25 分钟前
杰控通过 OPCproxy 获取数据发送到服务器
python
门牙咬脆骨30 分钟前
【MYSQL】数据库日志 (了解即可)
数据库·mysql
ModelBulider31 分钟前
十三、注解配置SpringMVC
java·开发语言·数据库·sql·mysql
V搜xhliang024640 分钟前
基于深度学习的地物类型的提取
开发语言·人工智能·python·深度学习·神经网络·学习·conda
豆 腐41 分钟前
MySQL【四】
android·数据库·笔记·mysql