Python学习笔记第二十三天(HTML格式的邮件)

简介: Python学习笔记第二十三天讲解Python发送HTML格式的邮件、Python发送带附件的邮件、HTML文本中添加图片的用法。

Python发送HTML格式的邮件

Python发送HTML格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html。

# 实例 1
import smtplib 
from email.mime.text import MIMEText 
from email.header import Header 
sender = 'from@XX.com' 
receivers = ['XXXXXX@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 
mail_msg = """ <p>Python 邮件发送测试...</p> <p><a href="http://www.baidu.com">这是一个链接</a></p> """ 
message = MIMEText(mail_msg, 'html', 'utf-8') 
message['From'] = Header("baidu", 'utf-8')
message['To'] = Header("测试", 'utf-8') 
subject = 'Python SMTP 邮件测试' 
message['Subject'] = Header(subject, 'utf-8') 
try: 
    smtpObj = smtplib.SMTP('localhost') 
    smtpObj.sendmail(sender, receivers, message.as_string()) 
    print("邮件发送成功")
except smtplib.SMTPException:
    print("Error: 无法发送邮件")

Python发送带附件的邮件

发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。

# 实例 2
import smtplib 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart
from email.header import Header 
sender = 'from@XX.com' 
receivers = ['XXXXXX@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 
#创建一个带附件的实例 
message = MIMEMultipart() 
message['From'] = Header("百度", 'utf-8')
message['To'] = Header("测试", 'utf-8') 
subject = 'Python SMTP 邮件测试' 
message['Subject'] = Header(subject, 'utf-8')
#邮件正文内容 
message.attach(MIMEText('这是Python 邮件发送测试……', 'plain', 'utf-8'))
# 构造附件1,传送当前目录下的 test.txt 文件 
att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8') 
att1["Content-Type"] = 'application/octet-stream' 
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字 
att1["Content-Disposition"] = 'attachment; filename="test.txt"' 
message.attach(att1) 
# 构造附件2,传送当前目录下的 baidu.txt 文件 
att2 = MIMEText(open('runoob.txt', 'rb').read(), 'base64', 'utf-8') 
att2["Content-Type"] = 'application/octet-stream' 
att2["Content-Disposition"] = 'attachment; filename="baidu.txt"' 
message.attach(att2) 
try: 
    smtpObj = smtplib.SMTP('localhost') 
    smtpObj.sendmail(sender, receivers, message.as_string()) 
    print("邮件发送成功" )
except smtplib.SMTPException:
    print("Error: 无法发送邮件")

HTML文本中添加图片

邮件的 HTML 文本中一般邮件服务商添加外链是无效的,正确添加图片

import smtplib 
from email.mime.image import MIMEImage 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 
from email.header import Header 
sender = 'from@XX.com' 
receivers = ['XXXXXX@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 
msgRoot = MIMEMultipart('related')
msgRoot['From'] = Header("百度", 'utf-8') 
msgRoot['To'] = Header("测试", 'utf-8') 
subject = 'Python SMTP 邮件测试' 
msgRoot['Subject'] = Header(subject, 'utf-8') 
msgAlternative = MIMEMultipart('alternative') 
msgRoot.attach(msgAlternative)
mail_msg = """ <p>Python 邮件发送测试...</p> <p><a href="http://www.runoob.com">菜鸟教程链接</a></p> <p>图片演示:</p> <p><img src="cid:image1"></p> """ 
msgAlternative.attach(MIMEText(mail_msg, 'html', 'utf-8')) # 指定图片为当前目录 
fp = open('test.png', 'rb')
msgImage = MIMEImage(fp.read()) fp.close() # 定义图片 ID,在 HTML 文本中引用 msgImage.add_header('Content-ID', '<image1>') 
msgRoot.attach(msgImage) 
try: 
    smtpObj = smtplib.SMTP('localhost') 
    smtpObj.sendmail(sender, receivers, msgRoot.as_string()) 
    print("邮件发送成功" except) 
smtplib.SMTPException: 
    print("Error: 无法发送邮件")

今天学习的是Python发送邮件学会了吗。 今天学习内容总结一下:

  1. Python发送HTML格式的邮件
  2. Python发送带附件的邮件
  3. HTML文本中添加图片
相关文章
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
349 5
|
前端开发 JavaScript API
Webview+Python:用HTML打造跨平台桌面应用的创新方案
本文系统介绍了使用PyWebView库结合HTML/CSS/JavaScript开发跨平台桌面应用的方法。相比传统方案(如PyQt、Tkinter),PyWebView具备开发效率高、界面美观、资源占用低等优势。文章从技术原理、环境搭建、核心功能实现到性能优化与实战案例全面展开,涵盖窗口管理、双向通信、系统集成等功能,并通过“智能文件管理器”案例展示实际应用。适合希望快速构建跨平台桌面应用的Python开发者参考学习。
1806 1
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
501 7
|
Python
Python格式
Python格式
199 5
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
837 1
|
XML 前端开发 数据格式
Beautiful Soup 解析html | python小知识
在数据驱动的时代,网页数据是非常宝贵的资源。很多时候我们需要从网页上提取数据,进行分析和处理。Beautiful Soup 是一个非常流行的 Python 库,可以帮助我们轻松地解析和提取网页中的数据。本文将详细介绍 Beautiful Soup 的基础知识和常用操作,帮助初学者快速入门和精通这一强大的工具。【10月更文挑战第11天】
400 2
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
287 1
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
720 1
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
890 0
|
数据采集 自然语言处理 BI
❤️学会Python等于拥有整个世界!快速优雅HTML报表开发想不到吧!❤️
之前学委写了一篇热榜长榜单爬虫截屏的文章。
396 0
❤️学会Python等于拥有整个世界!快速优雅HTML报表开发想不到吧!❤️

推荐镜像

更多