python发邮件脚本详解_Python发送邮件脚本
在一些场景中经常需要发送邮件, 像是持续集成和运维报警等. 而使用Python脚本能够很快捷方便得实现发送各种邮件的需求.这里就通过Python基于SMTP(Simple Mail Transfer Protocol)实现一套可以群发,Html内容和附件的脚本。
既然是要发送各种类型的邮件, 首先需要有一个邮箱.这里就以腾讯企业邮箱为例.做完一下三个准备工作之后就可以开始写脚本了。
准备
在设置中开启所有SMTP相关服务.
记录发送邮件服务器地址, 连接方式和端口
新增一个授权密码并记录起来.
连接邮件服务器并登陆
Python中有smtplib模块可供使用, 将它导入进来. 在发送邮件服务器地址信息那里可以看到连接有两种方式, 一种是普通连接, 一种是经过加密的连接. 在脚本中就根据需求去构建两种不同的链接对象. 通过邮件服务器地址这里的server_host也就是smtp.exmail.qq.com和默认的服务器端口(SMTP方式默认使用25端口而SMTP_SSL就是默认使用465端口, 通常邮件服务器都是可以使用默认端口的)建立与邮件服务器之间的连接. 并通过邮箱账户和上面第三步中设置的授权密码登录邮箱服务器. 没有异常信息的话就连接邮件服务器并登录成功了.
发送文本邮件
发送邮件之前先验证一下当前是否已经登录到邮件服务器. 再通过email模块中的MIMEText构建出包含发件人, 收件人列表, 邮件标题和邮件内容的消息体.因为这里是发送文本内容的邮件, 所以content_type是plain.
构建完消息体之后就可以直接调用SMTP的sendmail方法, 将消息体从发件方发送到收件列表中的收件邮箱中去.
发送Html邮件
如果发送普通文本邮件成功了, 那么想要发送html内容的邮件就很简单了, 稍微改一下上面的代码给content_type多一种html的选择就可以了. 通过外部的参数控制构建消息体是纯文件内容还是html内容. 这样就可以使用一些html模板来发送固定格式的邮件.
发送附件
首先从email模块中引入MIMEMultipart. 从这个MIME扩展类的名字也可以看出它的作用是可以构建多个MIME的消息体, 并将它们装配起来.继续修改前面的代码. 根据发件人, 收件人列表和邮箱标题构建出多MIME实例.
接着根据参数决定构建纯文本还是Html内容的消息体, 将该包含邮件内容的消息体装载进上面初始化过的multi_msg中. 完成邮件内容部分的填充.
完成代码改造之后就要加入对附件的支持, 遍历外部传入的文件列表, 并根据文件构建出包含附件的消息体, 将其依次装载进multi_msg中.
打开遍历文件列表时拿到附件, 将其初始化为MIME消息体, 并且设置附件的文件属性和附件的名字.
汇总
功能代码完成之后再通过getopt构建出来外部参数指令, 方便外部调用脚本.
执行脚本
收到群发带附件的邮件
【编辑推荐】
【责任编辑:枯木 TEL:(010)68476606】
点赞 0
python发邮件脚本详解_Python发送邮件脚本相关推荐
- python发邮件有什么意思_python发邮件要装什么
在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...
- python发邮件附件带变量_Python 第17关——邮件还能这样发(QQ邮箱)!
完成一个项目的流程 1.明确项目目标 2.分解过程.拆解项目 3.逐步执行.代码实现 目标:Python群发邮件 目标:学会学习新模块 掌握[学习模块的方式]→掌握学习新知识的方式 版本1.0:学习模 ...
- python使用kafka原理详解_Python操作Kafka原理及使用详解
Python操作Kafka原理及使用详解 一.什么是Kafka Kafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish或者subscribe消息,分布式提供了容错性,并发处理 ...
- python发邮件给女朋友代码_python代码实现发邮件
代码实现发邮件 Python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. 这里以QQ邮箱为例,首先要拿到授权码,这里登录你的QQ邮箱,在设置中,选择账号选项, ...
- python中logging模块详解_python logging日志模块详解
logging 日志模块详解 用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这 ...
- Java发邮件(详解+源代码)
Java发送邮件 一.邮件概述 (1)收发邮件 发邮件大家都会吧!发邮件是从客户端把邮件发送到邮件服务器,收邮件是把邮件服务器的邮件下载到客户端. 我们在163.126.QQ等网站注册的Email账户 ...
- python发邮件给女朋友代码_Python群发邮件实例代码
直接上代码了 import smtplib msg = MIMEMultipart() #构造附件1 att1 = MIMEText(open('/home/a2bgeek/develop/pytho ...
- python 发邮件 无需密码_Django实现发送邮件找回密码功能
在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能. 找回密码流程 功能流程: 1.首先在用户登录界面,添加 ...
- python接口测试之requests详解_Python接口测试-requests库
一.requests库 Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量 ...
最新文章
- [15]APUE:pipe / FIFO
- Jenkins持续集成输出html测试报告
- leetcode算法题--验证二叉树的前序序列化
- 中奖福利事宜 和 跪求意见
- SVG 教程 (一)
- xx信息管理系统设计
- “21天好习惯”第一期-13
- 最新 eclipse 安装SVN插件
- 久其报表大厅_久其报表是什么?
- 系统更新win10服务器出错,Win10系统Windows Update更新出现0x80080005错误代码怎么办...
- 计算机会计课程设计范文,会计课程设计心得体会范文
- 【影像配准】配准之棋盘网格图(镶嵌图像)(附有 C++ 代码)
- python和excel的区别-对比Excel,轻松学习Python数据分析
- 三十二、http与www服务介绍
- python常用re正则表达式大全,查找指定内容
- H5兄弟连web前端
- 汕头c语言培训班,汕头c语言编程学习,汕头学c语言编程哪个好,汕头学c语言编程需要报培训班吗...
- [翻译] LaTeX Error: Environment XXX undefined
- OSX:App Store下载到哪里去了?
- 蓬莱阁的“八仙传说”,八仙指哪八仙?
热门文章
- 一文看懂async和“await”关键词是如何简化了C#中多线程的开发过程
- 将终结点图添加到你的ASP.NET Core应用程序中
- 如何在ASP.NET Core中使用SignalR构建与Angular通信的实时通信应用程序
- 基于Jenkins的持续交付全流程设计与实践
- 2020年你应该学习 .Net Core
- 你知道怎么使用DebugView查看调试信息吗?
- 微软开源微服务运行时Dapr,赋能云原生应用开发
- 使用.NET Core创建Windows服务(二) - 使用Topshelf方式
- 2019年9月中国编程语言排行榜,C#排第三
- 迫于误解压力,RMS从自由软件基金会与MIT离职