Python分享-email.message如何构建你的邮件消息

简介: Python分享-email.message如何构建你的邮件消息

我最近在做发送邮件相关的一些任务,由于一些原因呢,不打算仅仅为了一个邮件功能就去申请第三方包的使用权限,所以还是决定使用python自带的snmplib来做啊,也很好用。但是第三方包有些做了进一步的封装和更加人性化的优化啊。减少了我们去配置一些麻烦的内容。

email.message.EmailMessage()

EmailMessage()这个类就是email提供的主要内容了,通过它我们可以设置邮件消息的头部,主体内容,还能添加附件。

我们的邮件由header和payload组成,header可以理解为,平时我们收到邮件上方的发件人,收件人,主题,抄送这部分,然后payload就是我们的邮件主体,包括文字性的邮件内容,以及附件。

EmailMessage()这个类是一个dict like的类,也就是说我们可以通过一些类字典的接口来操作,但是注意的是,与一般的字典不同,字典是无序的,EmailMessage()的键是有序的,可以看下面的那个例子,我们设置消息头的时候,是按照顺序来的,键还可以重复,python提供了额外的方法来处理包含重复键的header。

直观的用例

代码用例,下方的代码包含了消息主体的构建,以及通过email.message.EmailMessage()这个类,我们还可以添加附件,非常的方便。依稀记得以前要用一个MIME的包,真的很难用。

message = email.message.EmailMessage()
# 邮件头部
message["From"] = "***@gmail.com"
message["To"] = ["****@gmail.com", ]
message["cc"] = ["****@gmail.com",]
message["Bcc"] = ["****@yahoo.in", ]
# 主题
message["Subject"] =  "Mail with attachments"
# 消息主体
body = '''
Hello All,
Please find the attached file.
Regards,
Alex
'''
message.set_content(body)
# 比如我们附加一个excel文件
with open("report.xlsx", mode="rb") as fp:
    excel_content = fp.read()
    message.add_attachment(excel_content, maintype="application", subtype="excel", filename="do


相关文章
|
1月前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
13天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
13天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
39 3
|
15天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
27 4
|
1月前
|
弹性计算 数据管理 数据库
从零开始构建员工管理系统:Python与SQLite3的完美结合
本文介绍如何使用Python和Tkinter构建一个图形界面的员工管理系统(EMS)。系统包括数据库设计、核心功能实现和图形用户界面创建。主要功能有查询、添加、删除员工信息及统计员工数量。通过本文,你将学会如何结合SQLite数据库进行数据管理,并使用Tkinter创建友好的用户界面。
55 2
从零开始构建员工管理系统:Python与SQLite3的完美结合
|
20天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
26天前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
55 9
|
25天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
25天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
25天前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务