我是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)
我看到你使用的是 pyzmail
第三方库,但你是否知道有一个广泛的 email
标准库中的模块?
具体来说,我认为解析器是你提取时间戳所需要的。
你使用的库是IMAP协议。在IMAP中,没有所谓的 "收到消息的时间"。有一个时间戳,当该消息是在 "存储到邮箱中的(INTERNALDATE
)"但在一般的情况下,那是另一回事。
你也可以尝试解析 Received
头文件可能(或可能不)包含你正在寻找的信息。