python邮箱发送,使用python发送邮件
点击上面的蓝色小字,关注“隐形的钻石聊Python”
重干货,第一时间送达
用Python发邮件相信我们每个人都用过电子邮件。虽然其他的社交聊天软件已经非常普及,而且这些社交软件大多都有文件发送的功能,但是我们还是离不开电子邮件。
这是因为使用社交软件发送文件往往需要添加对方,而使用电子邮件则不用担心这个问题。同时,邮箱具有群发功能,支持HTML页面,更加方便。而如果我们使用不同的操作系统,使用社交软件发送文件并不是很有效。
这篇文章教你如何使用Python发送电子邮件。
电子邮件流程如果使用Windows没有问题,我们经常通过以下步骤给别人发邮件。
首先登录邮箱,这肯定是第一步。
然后,确定我们发邮件的账号,确定是群发还是单发。
添加我们要发送的内容,一般包括对方的信息、标题、文字、附件等等。
添加发送的内容后,往往需要再次确认信息。
点击发送,发送成功就大功告成了。
如果没有问题,经过这些步骤就可以成功发送邮件了。
流程条件准备:打开邮箱的SMTP功能。以我用的163邮箱为例。登录邮箱后,找到如图所示的POP3/SMTP/IMAP栏:
点击进入以下页面:
请注意图中的前两列:
IMAP/SMTP服务
POP3/SMTP服务
我的邮件显示这两个服务是开放的,不出意外的话你的应该是关闭的。然后打开这两项服务。
需要注意的是,在开启IMAP/SMTP服务之后后给你一个密匙,这个密匙只展示一次,所以一定要记住那个键。我们发送电子邮件时需要它。
两个服务都开了,我们的条件就准备好了。
模块介绍Python中与邮件发送相关的主要有两个模块,即:
Smtplib:这个模块是关于SMTP(简单邮件传输协议)的操作模块。在发送邮件的过程中,使用此模块与您的发送帐户的服务器建立通信。
邮件:该模块用于编辑和添加各种需要发送的内容,如编辑正文、添加附件等。
实施步骤导入模块导入所需模块:
importtplibfrommail . mime . textimportmimetextfromail . mime . multipartimportmimeeultimartfromail . mime . ImageImportMimeimage已经介绍了第一个smtplib模块。
MIMEText是一个用于处理文本内容的模块。比如我们的文字一般都是文字内容,也上传文字附件等。他们可以用它来处理。
MIMEImage是一个用来处理图片内容的模块,比如我们有时候会上传图片附件等。
MIMEMultipart是一个类,表示我们要发送的邮件对象。因为它是邮件对象,我们知道邮件包含各种部分,如正文、附件等。我们可以把MIMEMultipart理解为一个容器,容器中包含了其他模块如MIMEText和MIMEImage。
我们发邮件,可以简单理解为先生成一个容器(邮件),然后是其他东西(文本、附件等。)都放进去,然后把集装箱发出去。
初始化信息可能有以下信息需要初始化:
要与之建立通信关系的服务器:比如我们要用163邮箱向其他邮箱发送信息,我们需要给163邮箱下达指令,让它按照我们的想法去做事,所以我们需要和163邮箱的服务器建立通信关系。
登录用户名和密钥:这是毫无疑问的。当然,如果你想发送邮件,你必须登录,但这里登录使用的密码不再是你的邮箱密码,而是你开启IMAP/SMTP服务时给你的那串密匙。
接收电子邮件的目标电子邮件地址:这可以是单个电子邮件地址或电子邮件地址列表,也就是说,单个电子邮件或群组电子邮件。
这部分代码如下:
#设置服务器信息email_host=stmp.163.com#设置登录的用户名和密钥email_user=您的用户名 email_pass=您的密钥 # sender=您的电子邮件帐户 #这实际上是您的用户名@163.com#邮箱帐户receivers=[邮箱帐户1 ,邮箱帐户2]#这是邮箱的列表,您可以为一个或多个mail对象创建一个MIMEMultipart对象#,这相当于mail message=MIMEMultipart()#设置发件人消息[发件人]]。join(receivers)#设置邮件主题,也就是标题,是一个字符串消息[Subject]=我喜欢你。邮件正文设置首先,对于正文,你可以选择两种格式:
文本格式或HTML格式
文本实现如下:
# text form content=你好,我是goldsunC,这是我寄给你的情书。Part 1=mimetext (content, plain , utf-8) # html format #因为HTML格式一般比较长,所以我们使用了用open (goldsunc.html , r )读取文件的方法ASF:content=f . read()Part 1=mime text(content,HTML , utf-8 )以上是两个文本的实现方法,对应的Part 1就是我们准备放入“容器”的内容。
附件可以以txt文件、图片文件、压缩包文件等多种形式添加。不管是什么样的文件,都是文件。哈哈,是不是有点拗口?因为这是一份文件,我们需要把它读进去。
例子如下:
#添加带有open (text.txt , r )的txt附件ASF:content 1=f . read()part 1=mime text(content 1, plain , utf-8) #设置其附件类型以便于发送part 1[ content-type ]= application/octet。Filename=text.txt #添加图片附件WithOpen (picture.jpg , Rb )ASF:content 2=f . read()part 2=mime image(content 2)# Set附件类型part 2[ content-type ]= application/octet-stream part 2 Filename= picture . jpg 其他附件的发送方式也差不多,基本上只是改变文件名。既然你已经准备好了要放入容器的东西,现在就把它们放进去:
message . attach(part 1)message . attach(part 2)message . attach(part 3)把准备好的东西放进容器只需要一个attach方法。
这个时候,一切都准备好了。现在我们需要与服务器建立通信并发出指令。
发送电子邮件时,由于各种异常情况,发送电子邮件可能会失败,例如,邮箱将您的电子邮件视为垃圾邮件。所以我们需要准备好捕捉这些异常:
#与服务器建立通信并发送邮件try:receivers=receivers[sender]email _ stmp=smtplib . SMTP()email _ stmp . connect(Mail _ host,25) #请求连接服务器email_stmp.login(mail_user,Mail _ pass)# log in email _ stmp . sendmail(sender,receivers,message.as _ string ()) # send!Print (success )除了smtplib . smtpexception:print( error ,e)注意这段代码中有一行:
接收者=接收者[发送者]
这不是把邮件接收者加到了发送者上吗?为什么要给自己发一份?
原因是如果你不加,163邮箱会把你的邮件当成垃圾邮件,但是你发的时候给自己发一个就没事了。别问我怎么知道的,哈哈哈。
•end•
今天给你推荐一本机器学习和深度学习的书的人,应该都听说过一本经典教材:《Pattern Recognition and Machine Learning》,中文翻译为《模式识别与机器学习》,简称PRML。微软剑桥研究院实验室主任克里斯托弗毕晓普。对,就是豆瓣评分9.5的那本书。
小编整理这本书了英文pdf,而且还有中文pdf,配套官方Matlab 版本和Python版本代码,下载地址如下:
资料获取方法
1. 扫描下方二维码
2. 后台回复关键词:PRML
?长按上方二维码2秒,回复“PRML”获取信息。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。