热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python发送邮件库_drymail:Python电子邮件发送库

说明Python教程正在编写中,欢迎大家加微信sinbam提供意见、建议、纠错、催更。drymail是一个邮件发送库,封装了Python的smtplib

说明

Python 教程正在编写中,欢迎大家加微信 sinbam 提供意见、建议、纠错、催更。

drymail 是一个邮件发送库,封装了 Python 的 smtplib 和 email 库,让发送更加简单。它非常简洁,只有一个文件。

安装

pip install drymail

特性

主要的特性包括:

支持创建包含HTML内容和/或纯文本内容的电子邮件

支持以 'John Doe' 格式提及联系人

支持CC,BCC,Reply-To 和 Authors 等标准标头

支持注入自定义标题

支持添加附件

最重要的是,该库极简,它不会像某些最先进的电子邮件框架那样以任何方式限制您。

用法

在发送邮件之前需要去你使用的 QQ邮件、163 邮件等配置发件服务 SMTPMailer,可以去官方帮助文档中查看,再用 Message 对象构建邮件内容,Message.attach 可以构造附件,最后 SMTPMailer.send 将邮件内容发出。

from drymail import SMTPMailer, Message

# 配置发件服务

client = SMTPMailer(host='smtp.email.com', # 发件箱

user='johndoe',

password='password',

tls=True)

# 构造邮件

message = Message(subject='Congrats on the new job!', # 邮件主题

sender=('John Doe', 'john@email.com'), # 发件人

receivers=[('Jane Doe', 'jane@message.com'), # 收件人

'jane.doe@mail.io'],

cc=[('Jane Doe', 'jane@message.com')], # 抄送

bcc=['jane.doe@mail.io'], # 密送

text='When is the party? ;)', # 纯文本

html='

Hello', # html 优先

)

# 构造附件

with open('congrats.pdf', 'rb') as pdf_file:

message.attach(filename='congrats.pdf',

data=pdf_file.read(),

mimetype='application/pdf')

# 发出邮件

client.send(message)

邮件正文的构造

邮件正文纯文本是兼容最好的,但有时候我们需要显示富文本的内容,富文本是基于 html 代码制作,但需要注意以下两点:

CSS 样式内联式

CSS 样式内联式的兼容性是最好的,CSS 与 HTML 分离有些邮局不兼容,会失去样式。premailer 模块可以将分享和 CSS 与 html 内联式:

pip install premailer

使用时:

from premailer import transform

html = transform(html, remove_classes=True)

图片 base64 编码

在邮件中不能直接引用图片,可使用以下方法使用图片的 base64 编码,再用 html 引用:

import base64

f = open('john-lennon.jpg', 'rb')

bs64 = base64.b64encode(f.read()).decode()

img_by_html = f""

# 在 notebook 中查看测试

from IPython.core.display import display, HTML

display(HTML(img_by_html))

img_by_html 是最终生成的显示图片的 html 代码,可以和其他正文 html 组合展示。

链接

https://pypi.org/project/drymail/

https://github.com/SkullTech/drymail

https://drymail.readthedocs.io/



推荐阅读
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍了如何在ECharts中使用线性渐变色,通过echarts.graphic.LinearGradient方法实现。文章不仅提供了完整的代码示例,还解释了各个参数的具体含义及其应用场景。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 射频系统中IM3、IIP3、OIP3、增益和P1dB的关系解析
    本文探讨了噪声系数与非线性失真对射频系统性能的影响,详细分析了IM3、IIP3、OIP3、增益(G)和1dB压缩点(P1dB)之间的关系,并提供了相关公式和图表解释。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
author-avatar
xjoliemonicane_934
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有