Python实现邮件发送功能的方法详解_第1页
Python实现邮件发送功能的方法详解_第2页
Python实现邮件发送功能的方法详解_第3页
Python实现邮件发送功能的方法详解_第4页
Python实现邮件发送功能的方法详解_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Python实现邮件发送功能的方法详解目录利用python发送普通邮件认识发送邮件流程认识邮件协议smtplib模块email包发送邮件小案例发送邮件的避坑总结邮件自动化篇章所需的新模块:

smtplib邮件协议与发送模块

email内容定义模块

schedule定时模块

smtplib与email模块可以帮助我们正常的发送邮件;schedule模块可以帮助我们定时发送邮件,比如工资邮件等需要固定时间发送的邮件

利用python发送普通邮件

认识发送邮件流程

这里简单描述下发邮件的过程(说实话,这一步我有点不想写)

第一步:登录邮箱

第二步:书写邮件接受者的邮箱

第三步:书写邮件标题与内容(有的时候还需要添加附件)

第四步:发送邮件

认识邮件协议

smtp:邮件发送的协议pop3:邮件接收的协议

什么是协议?

协议就是一种规则,其已经被底层网络封装好。无需关心它的具体规则是什么,直接使用上层工具即可。

比如发送邮件这个场景,当我们使用smtp协议发送邮件时。网络发现是smtp协议,它就知道这是一封要发送出去的邮件;同样pop3也是一样的,当网络发现这是pop3协议就知道这是一封要接收的邮件。

smtplib模块

smtplib模块是python中发送邮件的很重要的模块之一。

创建协议对象:

smptObj=smptlib.SMTP()通过smptlib.SMTP()生成smpt协议对象

创建链接:

smptObj.connect(smpt服务器地址,25)通过connect(服务器IP地址,端口号),smpt服务默认端口号为25

登录验证:

smptObj.login(mail_user,mail_password)通过login(mail_user,mail_password)传入邮箱名称、登录密码,完成验证。(注意:部分邮箱服务器这里传入的是口令而不是登录密码[也叫做授权码],在邮箱的设置里面查看)

发送邮件:

smptObj.sendmail(sender,receivers,message)通过sendmail(sender,receivers,message)传入发送者的邮箱、接收者的邮箱、邮件内容即可完成发送邮件的动作。

PS:这里可以看到接收者的邮箱是receivers复数,所以接收者邮箱是一个数组、列表,可以发送给多个人;消息内容的message是消息对象的加密字符串

email包

email包有两个比较常用的函数:

函数名参数说明MIMEText邮件内容、邮件类型、编码格式定义邮件发送内容的对象Header各类信息、编码格式将各类信息定义成对象,比如标题等。

PS:上文提到的message是消息对象的加密字符串就是通过MIMEText加密生成的

发送邮件小案例

代码示例如下:

#coding:utf-8

importsmtplib

fromemail.mime.textimportMIMEText

fromemail.headerimportHeader

第三方的smpt[脚本中涉及的邮箱地址都是假的,请使用自己的真实邮箱地址进行测试]

mail_host=""#设置邮箱服务器

mail_user="conan868242"#设置自己的邮箱

mail_pass="cb997b01a87232b2"#这里就是邮箱的口令,也就是授权码;不是密码。

sender="conan868242@"#定义发送者邮箱(其实就是自己)

receivers=["3241716373@"]#定义接受者邮箱(可以是多个接收者)

message=MIMEText("这是一封测试邮件O(∩_∩)O哈哈~","plain","utf-8")#定义邮件内容;"plain"是格式,表示是普通的文件内容

message["From"]=Header(sender)#在message内定义发送信息--发送者

message["Subject"]=Header("Python测试邮件发送","utf-8")#在message内定义发送信息的标题

print("加密后的发送内容\n",message.as_string())#打印输出加密后的发送内容

try:#捕获发送邮件的异常

smtpObj=smtplib.SMTP()#实例化SMTP协议对象

smtpObj.connect(mail_host,25)#链接SMTP服务器

smtpObj.login(mail_user,mail_pass)#登录邮箱验证

smtpObj.sendmail(sender,receivers,message.as_string())#发送邮件;"message"通过"as_string()"进行发送内容字符串的加密

exceptsmtplib.SMTPExceptionaserror:

print("error:{}".format(error))

PS:不要尝试用这个源码运行了,我已经将授权码改了。

运行结果如下:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论