如何使用Python发送HTML格式的邮件

使用Python发送HTML格式的邮件可以让邮件内容更加丰富和美观。Python提供了smtplib和email库,可以轻松地发送HTML格式的邮件。以下是详细讲解如何使用Python发送HTML格式的邮件,包含两个示例。

示例1:发送简单的HTML邮件

以下是一个示例,可以使用Python发送简单的HTML邮件:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 邮件内容
message = MIMEText('<h1>Hello, World!</h1>', 'html', 'utf-8')
message['From'] = Header('sender@example.com', 'utf-8')
message['To'] = Header('recipient@example.com', 'utf-8')
message['Subject'] = Header('HTML邮件示例', 'utf-8')

# 发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'sender@example.com'
smtp_password = 'password'
smtp_conn = smtplib.SMTP(smtp_server, smtp_port)
smtp_conn.starttls()
smtp_conn.login(smtp_username, smtp_password)
smtp_conn.sendmail(smtp_username, ['recipient@example.com'], message.as_string())
smtp_conn.quit()

在上面的示例中,我们首先定义邮件内容,使用MIMEText类指定邮件内容为HTML格式。然后,我们设置发件人、收件人和主题,并使用Header类指定编码方式。最后,我们使用smtplib库连接SMTP服务器,登录发件人账号,并使用sendmail方法发送邮件。

示例2:发送带附件的HTML邮件

以下是一个示例,可以使用Python发送带附件的HTML邮件:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.header import Header

# 邮件内容
message = MIMEMultipart()
message.attach(MIMEText('<h1>Hello, World!</h1>', 'html', 'utf-8'))
with open('image.png', 'rb') as f:
    image = MIMEImage(f.read())
    image.add_header('Content-Disposition', 'attachment', filename='image.png')
    message.attach(image)
message['From'] = Header('sender@example.com', 'utf-8')
message['To'] = Header('recipient@example.com', 'utf-8')
message['Subject'] = Header('带附件的HTML邮件示例', 'utf-8')

# 发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'sender@example.com'
smtp_password = 'password'
smtp_conn = smtplib.SMTP(smtp_server, smtp_port)
smtp_conn.starttls()
smtp_conn.login(smtp_username, smtp_password)
smtp_conn.sendmail(smtp_username, ['recipient@example.com'], message.as_string())
smtp_conn.quit()

在上面的示例中,我们首先定义邮件内容,使用MIMEMultipart类指定邮件内容为多部分。我们使用MIMEText类指定邮件正文为HTML格式,并使用MIMEImage类指定邮件附件为图片。然后,我们设置发件人、收件人和主题,并使用Header类指定编码方式。最后,我们使用smtplib库连接SMTP服务器,登录发件人账号,并使用sendmail方法发送邮件。

总结

使用Python发送HTML格式的邮件可以让邮件内容更加丰富和美观。Python提供了smtplib和email库,可以轻松地发送HTML格式的邮件。使用MIMEText类可以指定邮件内容为HTML格式,使用MIMEMultipart类可以指定邮件内容为多部分,并可以添加附件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用Python发送HTML格式的邮件 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 盈透证券 Python 数据请求

    【问题标题】:Interactive Brokers Python Data Request盈透证券 Python 数据请求 【发布时间】:2023-04-04 17:33:01 【问题描述】: 我正在运行以下代码,但我获取快照价格的请求在 python 控制台上没有返回任何内容。我需要打印方法吗?抱歉,我不熟悉愚蠢的 oop,只做程序和功能。 谢谢 fro…

    Python开发 2023年4月6日
    00
  • Python中使用wxPython开发的一个简易笔记本程序实例

    下面是“Python中使用wxPython开发的一个简易笔记本程序实例”的完整攻略。 简介 wxPython 是一个基于 wxWidgets 二次开发的 Python 图形界面开发库,拥有丰富的组件、优秀的跨平台性、优秀的文档和强大的社区支持,能够快速构建界面友好、功能强大的交互式应用程序。 本文将介绍如何使用 wxPython 开发一个简易笔记本程序,实现…

    python 2023年5月31日
    00
  • python简单获取本机计算机名和IP地址的方法

    获取本机计算机名和IP地址是Python程序的常见需求,以下是Python简单获取本机计算机名和IP地址的方法: 获取本机计算机名 我们可以使用Python内置的socket库来获取本机计算机名,其具体代码如下所示: import socket hostname = socket.gethostname() print("本机计算机名为:&quot…

    python 2023年5月23日
    00
  • 单个特征的多个分类值如何使用python将它们转换为二进制

    【问题标题】:Multiple Categorical values for a single feature how to convert them to binary using python单个特征的多个分类值如何使用python将它们转换为二进制 【发布时间】:2023-04-03 21:02:01 【问题描述】: 我有一个包含 28 列的电影数据集…

    Python开发 2023年4月8日
    00
  • python 一个figure上显示多个图像的实例

    接下来我将为您详细讲解“Python 一个figure上显示多个图像的实例”的攻略。 在 Matplotlib 中,使用 Figure 和 Axes 对象创建并显示图像。其中,Figure 对象表示整张图像,可以包含多个 Axes 对象;而 Axes 对象则表示具体的绘图区域,也就是我们常说的子图。 下面是一些示例,让我们看看如何在一个 Figure 上显示…

    python 2023年5月19日
    00
  • python for和else语句趣谈

    下面我会为大家讲解关于“Python for和else语句”的完整攻略。 标准语法 for 变量名 in 迭代器: 循环体 else: 循环结束后的处理 其中,变量名 用来循环迭代器中的元素,迭代器 可以是列表、元组、字典等可迭代对象,循环体 中写代码块, else 用来描述在循环迭代器中的数据都处理完之后的操作。 示例1 让我们先来看一下一个简单的示例。这…

    python 2023年6月5日
    00
  • Python filter()接收或舍弃数据

    下面是Python filter()函数的详细讲解。 一、简介 Python中filter()函数是内置的高阶函数,用于筛选序列中符合条件的元素,返回一个迭代器对象。 filter()函数的语法格式如下: filter(function, iterable) function:表示一个函数,用于判断iterable中的元素是否符合条件,需要返回一个Boole…

    python-answer 2023年3月25日
    00
  • python如何在循环引用中管理内存

    循环引用是指对象之间互相引用,形成一个环状结构,导致内存泄露。Python提供了垃圾回收机制来解决这个问题。本文将详细讲解Python如何在循环引用中管理内存。 引用计数机制 Python的内存管理是通过引用计数机制实现的。每个对象都有一个引用计数,当对象被引用时,计数器加一;当对象不再被引用时,计数器减一。当计数器为0时,对象被删除。 但是,循环引用会导致…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部