【私人订制Python模块库】Pyemail:更方便快捷地发送电子邮件
文章目录
- 一、前言背景
- 二、个人首秀模块
- 三、如何打包模块
- 四、实际运用例子
一、前言背景
前几天学习了smtplib和email模块,Get了新技能——如何用Python发送电子邮件,还能发送超文本、图片以及附件。
简直太赞了!
同时也写了一篇总结文章【Python军火库】smtplib+email:一起来用Python发送电子邮件吧!
欢迎跳转收看。
在写关于smtplib和email的总结文章的时候,我突发奇想,感觉每次写个发送电子邮件的代码要导入这么多模块,还得构造这么些对象,也挺麻烦的。
要是在smtplib和email基础上,自己写个新的模块,通过简单的方法完成登录三方SMTP服务器,构造正文、图片、附件对象以及发送邮件功能,那就方便多了。
而且新的模块还能直接提供给别人安装使用。
那简直太棒了!
但是要是实现这个想法,对于目前还知识浅薄的我来说,还面临着两大难题:
- 如何写一个模块,能够供其他Python程序进行调用相关属性和方法
- 如何打包一个模块,能够在其他电脑上安装并使用
二、个人首秀模块
首先解决第一问题:
如何写一个模块,能够供其他Python程序进行调用相关属性和方法
虽然我隐约知道这件事应该需要用到类的知识,但是由于之前的学习中并没有过多接触和应用关于的类的知识,也趁着这次初步学习了下。
最终个人首秀模块Pyemail诞生了
下面简单介绍一下Pyemail
模块名:Pyemail
包含类:PyEmail()
实例化:mail = PyEmail('mixed')
。参数有:alternative,related,mixed(来自于email模块)
登录三方SMTP:mail.enter(mail_host=, port=, mail_user, mail_pass=)
- 第一参数是第三方SMTP地址
- 第二参数是对应端口
- 第三参数是邮箱账号
- 第四参数是授权码
发送邮件:mail.sendemail(sender=, receivers=)
- 第一参数是发送者邮箱地址(字符串格式)
- 第二参数是接收者邮箱地址(字符串的列表)
构造头部信息:mail.header_info(from_= ; to_= ; subject= )
- 第一参数是发件人(字符串格式)
- 第二参数是收件人(字符串格式)
- 第三参数是主题信息(字符串格式)
构造纯文本内容:mail.Text(text=)
- 唯一参数text,纯文本内容(字符串格式)
构造超文本内容:mail.Html(hype_text=)
- 唯一参数hype_text,超文本内容(字符串格式)
构造图片内容:mail.Image(pic_address=, pic_cid)
- 第一参数是图片地址(字符串格式)
- 第二参数是图片id(字符串格式),与超文本中cid保持一致
构造附件内容:mail.Enc(enc_address=. enc_name=)
- 第一参数是附件地址(字符串格式)
- 第二参数是附件名称(字符串格式),在邮件中显示的名称
以上就是整个Pyemail模块中拥有的所有内容。
三、如何打包模块
接下来解决第二个问题:
如何打包一个模块,能够在其他电脑上安装并使用
当然简单搜索下,CSDN上就有很多教程文章,在这里自己也进行复盘总结下。
第一步:创建setup.py
注意setup.py
文件要和包放在同一个文件夹
from distutils.core import setupsetup(name='Pyemail', # 需要打包的名字version='v1.0', # 版本py_modules=['Pyemail'], # 需要打包的模块author='nilvya', # 作者author_email='lt.nilvyaya@qq.com' # 作者邮箱
)
第二步:构建模块
打开命令提示符,cd命令进入到模块所在的文件夹,再执行
Python setup.py build
成功后就会发现该文件夹多了一个【build】文件夹
第三步:生成压缩包
同样在该文件夹下执行命令
Python setup.py sdist
OK!之后就可以通过我们基操的:pip install Pyemail
来安装模块了。
四、实际运用例子
用实际的代码来演示下
from Pyemail import PyEmail# 实例化
mail = PyEmail('mixed')# 登录QQ邮箱的SMTP服务器
mail_host = 'smtp.qq.com' # QQ邮箱SMTP服务器地址
mail_user = 'lt.nilvya@qq.com' # 邮箱账号
mail_pass = 'aaabbbbccc' # 邮箱授权码
mail.enter(mail_host, 587, mail_user, mail_pass)# 构造邮件头部信息
mail.header_info('nilvya', 'ltxxx', '发送测试')# 构造纯文本内容
mail.Text('这是一个来自Python的发送邮件测试')# 构造超文本内容
html_text = """<p>CSDN首页</p><p><a href="https://www.csdn.net/">欢迎进入CSDN</a></p> <p>图片演示1:</p><p><img src="cid:image1"></p><p>图片演示2:</p><p><img src="cid:image2"></p>
"""
mail.Html(html_text)# 构造图片内容
mail.Image('开启QQ邮箱的SMTP服务.png','image1')
mail.Image('随机截图.png','image2')# 构造附件内容
mail.Enc('test.txt', '测试文本.txt')# 发送邮件
sender = 'lt.nilvya@qq.com' # 发件人邮箱地址
receivers = ['*********@qq.com'] # 收件人邮箱地址
mail.sendemail(sender, receivers)
最后运行程序,窗口显示
自己的QQ邮箱中也会马上收到相应邮件。
大功告成!
(PS:关于Pyemail模块我也已经上传,有需要的伙伴可以下载)
【私人订制Python模块库】Pyemail:更方便快捷地发送电子邮件相关推荐
- python中库是什么意思,python中的库、包、模块和脚本是什么意思
它们的意思基本上是一样的,一个或一组包含python代码的文件,python使它们之间的区别变得透明,因此不那么重要.但它们的含义略有不同.在 "脚本"是主要用于执行的.py文件, ...
- Python使用技巧(十一):图像处理skimage模块库的安装与使用
一.介绍 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能.它是由pytho ...
- 在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录
简介 Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等 ...
- 使用Python发送电子邮件
by Arjun Krishna Babu 通过Arjun Krishna Babu 如何使用Python发送电子邮件 (How to send emails using Python) As a l ...
- 500个Python模块(库)的详细分类介绍
常用模块 Chardet-------------字符编码探测器,可以自动检测文本.网页.xml的编码.colorama------------主要用来给文本添加各种颜色,并且非常简单易用.Prett ...
- python标准库模块
06/07 20:10:08 编译 0.1. 关于本书 0.2. 代码约定 0.3. 关于例子 0.4. 如何联系我们 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. ...
- Python标准库asyncio模块基本原理浅析
Python标准库asyncio模块基本原理浅析 本文环境python3.7.0 asyncio模块的实现思路 当前编程语言都开始在语言层面上,开始简化对异步程序的编程过程,其中Python中也开始了 ...
- python常用模块大全总结-Python模块汇总(常用第三方库)
模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性 ...
- python第三方库排行-Python模块汇总(常用第三方库)
模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性 ...
最新文章
- 为什么大型互联网都需要网关服务?
- keystone v2 to v3
- 自我评价中专计算机600作文,自我评价作文600字
- 一起学nRF51xx 4 - int
- 如何删除一个员工编号及其全部主数据和事务数据?
- gpgga格式读取MATLAB,GPS编码格式及读取.doc
- python3.6.5+cuda9+cudnn7.1+win10+tensorflow-gpu1.9.0下载配置
- 第三季-第9课-库函数方式文件编程
- 如何PDF转Word文档?快把这些方法收好
- CentOS之vim操作
- The Monster
- 母牛的故事 (C++描述)
- html+css瞬间黑暗模式
- VIVADO 设计流程介绍
- android 多线程 js,JS多线程(web work)
- 【2020年牛客暑假第九场】E题 Groundhog Chasing Death
- P(NIPAM-co-AdMA)/PtBMA-b-PNIPAM聚(甲基)丙烯酸叔丁酯-b-聚(N-异丙基丙烯酰胺)
- Nginx 端口转发实现!
- Sanitizable signatures(净化签名) 和 Redactable signatures(可修订签名)
- AD CS证书服务中继攻击