热门标签 | 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/



推荐阅读
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
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社区 版权所有