返回已发送电子邮件的时间和日期 - IMAP

问题描述 投票:0回答:1

我是python新手,我一直想创建一个程序来返回特定邮件的接收时间,但在任何地方都找不到这样做的函数。(到目前为止,我已经检查了reddit、Stack Overflow和Automate the Boring stuff)我已经能够用下面的内容返回邮件的正文,但找不到任何关于是否可以只从邮件中提取时间的内容。任何关于这是否可能以及如何做到这一点的帮助将非常感激。谢谢你的帮助

password = input('Enter your password')
import imapclient
server = imapclient.IMAPClient('imap-mail.outlook.com', ssl=True)
server.login('[email protected]',password)
import pprint
pprint.pprint(server.list_folders())
server.select_folder('Inbox')
rawMessage = server.fetch(40111, ['BODY[]'])
import pyzmail
message = pyzmail.PyzMessage.factory(rawMessage[40111][b'BODY[]'])
messagebodyTEXT = message.text_part.get_payload().decode(message.text_part.charset)
print(messagebodyTEXT)
python imap
1个回答
0
投票

我看到你使用的是 pyzmail 第三方库,但你是否知道有一个广泛的 email 标准库中的模块?

具体来说,我认为解析器是你提取时间戳所需要的。


0
投票

你使用的库是IMAP协议。在IMAP中,没有所谓的 "收到消息的时间"。有一个时间戳,当该消息是在 "存储到邮箱中的(INTERNALDATE)"但在一般的情况下,那是另一回事。

你也可以尝试解析 Received 头文件可能(或可能不)包含你正在寻找的信息。

© www.soinside.com 2019 - 2024. All rights reserved.