首页 前端知识 用Python发送HTML格式邮件——从入门到精通

用Python发送HTML格式邮件——从入门到精通

2025-03-23 11:03:41 前端知识 前端哥 991 322 我要收藏

前言

在互联网时代,邮件营销和通知已经成为了企业和个人沟通的重要手段。如果你是一名初学者,想通过Python发送邮件,那今天的这篇文章正适合你!在这篇博客中,我们将一步一步教你如何用Python发送一封HTML格式的邮件,甚至可以发送带有按钮、图片和链接的精美邮件。


为什么选择Python发送邮件?

Python是一门强大的编程语言,它拥有丰富的库和模块,可以帮助我们快速实现邮件发送功能。通过Python的 smtplib 库,我们可以轻松地发送邮件;通过 email 库,我们可以方便地构建HTML邮件内容,让邮件看起来更加美观和专业。


步骤1:开启邮箱的SMTP服务

在开始编写代码之前,首先你需要确保你有一个支持SMTP的邮箱,并且开启了SMTP服务。

QQ邮箱为例,步骤如下:

  1. 登录你的QQ邮箱。
  2. 进入【设置】 -> 【账户】。
  3. 开启【POP3/SMTP服务】。
  4. 获取授权码。这个授权码将作为你的密码用于SMTP登录。

注意:你必须使用授权码而非QQ邮箱的密码来登录SMTP服务。


步骤2:安装必要的Python库

我们将使用Python内置的 smtplibemail 库来发送邮件,不需要安装任何额外的包。这两个库是Python标准库的一部分,所以我们不需要执行 pip install 命令。


步骤3:准备HTML邮件内容

HTML邮件让邮件内容更加丰富和美观。我们可以在邮件中添加链接、按钮、图片等内容,这样可以更好地吸引用户的注意力。

下面是一个简单的HTML邮件模板,包含了一个按钮和链接。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML邮件</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f9f9f9;
color: #333;
padding: 20px;
}
.button {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
text-decoration: none;
border-radius: 5px;
}
</style>
</head>
<body>
<h2>这是HTML格式的邮件</h2>
<p>这封邮件包含了HTML格式的内容。</p>
<a href="http://example.com" class="button">点击这里访问</a>
</body>
</html>
复制

这个HTML邮件包括一个绿色按钮,用户点击后会跳转到指定的链接。


步骤4:编写Python代码发送HTML邮件

接下来,我们开始编写Python代码来发送这封HTML格式的邮件。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
# 邮箱服务器配置
mailserver = "smtp.qq.com"
username_send = '1643626326@qq.com' # 发送者邮箱
password = 'fvoecikuthkmehjh' # QQ邮箱的授权码
username_recv = '1643626326@qq.com' # 接收者邮箱
# 创建邮件内容
subject = 'HTML邮件测试'
html_body = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML邮件</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f9f9f9;
color: #333;
padding: 20px;
}
.button {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
text-decoration: none;
border-radius: 5px;
}
</style>
</head>
<body>
<h2>这是HTML格式的邮件</h2>
<p>这封邮件包含了HTML格式的内容。</p>
<a href="http://example.com" class="button">点击这里访问</a>
</body>
</html>
"""
# 创建MIMEMultipart对象,支持发送多部分内容(纯文本+HTML)
msg = MIMEMultipart('alternative')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = username_send
msg['To'] = username_recv
# 将HTML和纯文本都添加到邮件中
part1 = MIMEText('这是一个HTML格式的邮件', 'plain', 'utf-8') # 备用纯文本
part2 = MIMEText(html_body, 'html', 'utf-8') # HTML内容
msg.attach(part1)
msg.attach(part2)
# 使用 SSL 连接端口 465
smtp = smtplib.SMTP_SSL(mailserver, 465)
# 登录并发送邮件
try:
smtp.login(username_send, password)
smtp.sendmail(username_send, username_recv, msg.as_string()) # 发送邮件
smtp.quit()
print('邮件发送成功')
except smtplib.SMTPException as e:
print(f'邮件发送失败: {e}')
复制

代码解析
  1. SMTP_SSL:我们使用 SMTP_SSL 来通过SSL连接SMTP服务器,端口是465。
  2. 创建MIMEMultipart对象MIMEMultipart 允许我们创建带有多个部分的邮件(如纯文本和HTML)。邮件内容包含纯文本和HTML两部分,如果接收方的邮件客户端不支持HTML,则会显示纯文本。
  3. 发送邮件:使用 smtp.sendmail() 方法发送邮件。

步骤5:运行代码

运行上面的代码后,你将收到一封带有HTML内容的邮件。邮件中会有一个漂亮的按钮,点击它即可访问指定的链接。


总结

通过Python发送HTML格式邮件,不仅可以发送纯文本内容,还能加入更丰富的交互元素,比如链接和按钮,提升用户体验。你可以根据这个示例邮件模板,自定义自己的邮件内容,发送个性化的邮件给你的用户。

在实际项目中,你可以根据需求设置邮件主题、内容和接收者,同时还能增加附件、图片等内容,使用Python发送邮件真的非常方便。如果你遇到任何问题,欢迎在评论区留言,我们一起探讨!


相关链接
  • Python官方文档:smtplib模块
  • QQ邮箱设置SMTP

转载请注明出处或者链接地址:https://www.qianduange.cn//article/24247.html
标签
评论
发布的文章

【Linux笔记】基础IO(上)

2025-03-27 13:03:40

大家推荐的文章
会员中心 联系我 留言建议 回顶部
浏览器升级提示:您的浏览器版本较低,建议您立即升级为知了极速浏览器,极速、安全、简约,上网速度更快!立即下载
复制成功!