python接收邮件,如何用python发送邮件

  python接收邮件,如何用python发送邮件

  之前给大家介绍过python,但是有朋友提出了疑问。既然能发,那能看吗?如果能用python实现,那将是一件非常有趣的事情,所以边肖也去打听了一下。下面给大家看看。大家看看吧~以下是具体的实施内容,很全面。请仔细阅读。

  关于读取邮件:

  

  邮件收集使用POP3协议;

  邮件解析:你需要将收到的邮件转换成Email.message.Message对象,然后使用email模块解析内容。

  读取邮件的实例·

  1、·获取某封邮件的对象·

  Importpoplibfrommail。parserimportparser pop pop host= pop . exmail . QQ.com user ADR= xx @ xx . cn user pwd=的服务器信息xxxxx

  创建POP3对象并添加用户名和密码 pop 3 server=poplib . pop 3(pop host)pop 3 server . user(user ADR)pop 3 server . pass _(user pwd)

  获取邮件的数量和空间 邮件计数,邮箱大小=pop3server.stat。

  获取邮件请求的返回状态代码,每条消息的字节大小(b 第一条消息的字节大小),响应,msgnum octets,octets=pop3server.list。

  获取任意消息的邮件对象[第一条消息的编号为1,不是0] msgIndex=random.randint (1,消息计数)print (msgindex) #获取第一条msgIndex

  封邮件的信息response,msgLines,octets=pop3Server.retr(msgIndex)#msgLines中为该邮件的每行数据,先将内容连接成字符串,再转化为email.message.Message对象msgLinesToStr=b"\r\n".join(msgLines).decode("utf8","ignore")messageObject=Parser.parsestr(msgLinesToStr)print(messageObject)

  """终止POP3服务"""pop3Server.quit

2、解析邮件对象

  

3、获取邮件日期

  

msgDate=messageObject["date"]print(msgDate)

4、获取邮件发件人实名、邮箱地址

  

获取邮件实名时,名称一般是加密的,此时就需要对头文件进行解码才可获取它的实际内容

  

fromemail.headerimportdecode_headerdefdecodeMsgHeader(header):"""解码头文件:paramheader:需解码的内容:return:"""value,charset=decode_header(header)[0]ifcharset:value=value.decode(charset)returnvalue

  

  fromemail.utilsimportparseaddrsenderContent=messageObject["From"]#parseaddr函数返回的是一个元组(realname,emailAddress)senderRealName,senderAdr=parseaddr(senderContent)#将加密的名称进行解码senderRealName=decodeMsgHeader(senderRealName)print(senderRealName)print(senderAdr)

5、获取邮件主题

  

获取的邮件的主题也是加密的,此时就需要对头文件进行解码才可获取它的实际内容

  

msgHeader=messageObject["Subject"]#对头文件进行解码msgHeader=decodeMsgHeader(msgHeader)print(msgHeader)

6、获取邮件正文

  

一封邮件的正文内容,可能是由几部分构成,每部分的格式不同。

  

"""获取邮件正文内容"""msgBodyContents=ifmessageObject.is_multipart:#判断邮件是否由多个部分构成messageParts=messageObject.get_payload#获取邮件附载部分formessagePartinmessageParts:bodyContent=decodeBody(messagePart)ifbodyContent:msgBodyContents.append(bodyContent)else:bodyContent=decodeBody(messageObject)ifbodyContent:messageBodyContents.append(bodyContent)print(msgBodyContents)

  

  defdecodeBody(msgPart):"""解码内容:parammsgPart:邮件某部分"""contentType=msgPart.get_content_type#判断邮件内容的类型,text/htmltextContent=""ifcontentType=='text/plain'orcontentType=='text/html':content=msgPart.get_payload(decode=True)charset=msgPart.get_charsetifcharsetisNone:contentType=msgPart.get('Content-Type','').lowerposition=contentType.find('charset=')ifposition>=0:charset=contentType[position+8:].stripifcharset:textContent=content.decode(charset)returntextContent

以上就是关于python邮件获取内容了,如需了解更多python实用知识,点击进入PyThon学习网教学中心

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: