当前位置:嗨网首页>书籍在线阅读

17-用IMAP获取和删除电子邮件

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

18.5 用IMAP获取和删除电子邮件

在Python中,查找和获取电子邮件是一个多步骤的过程,需要使用第三方模块 imapclientpyzmail 。作为概述,这里有一个完整的例子,包括登录到IMAP服务器、搜索电子邮件、获取它们,然后从中提取电子邮件的文本:

>>> import imapclient
>>> imapObj = imapclient.IMAPClient('imap. ', ssl=True)
>>> imapObj.login('[email protected]', 'MY_SECRET_PASSWORD')
'[email protected] Jane Doe authenticated (Success)'
>>> imapObj.select_folder('INBOX', readonly=True)
>>> UIDs = imapObj.search(['SINCE 05-Jul-2019'])
>>> UIDs
[40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, 40041]
>>> rawMessages = imapObj.fetch([40041], ['BODY[]', 'FLAGS'])
>>> import pyzmail
>>> message = pyzmail.PyzMessage.factory(rawMessages[40041][b'BODY[]'])
>>> message.get_subject()
'Hello!'
>>> message.get_addresses('from')
[('Edward Snowden', '[email protected]')]
>>> message.get_addresses('to')
[('Jane Doe', '[email protected]')]
>>> message.get_addresses('cc')
[]
>>> message.get_addresses('bcc')
[]
>>> message.text_part != None
True
>>> message.text_part.get_payload().decode(message.text_part.charset)
'Follow the money.\r\n\r\n-Ed\r\n'
>>> message.html_part != None
True
>>> message.html_part.get_payload().decode(message.html_part.charset)
'<div dir="ltr"><div>So long, and thanks for all the fish!<br><br></div>-
Al<br></div>\r\n'
>>> imapObj.logout()

你不必记住这些步骤。在详细介绍每一步之后,你可以回来看这个概述,加强记忆。