使用 imap-tools 时如何访问电子邮件的原始消息数据? 具体来说就是可以将其加载到 email.message_from_bytes() 函数中进行转发?
from imap_tools import MailBox, AND
with MailBox('imap.gmail.com').login('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b4d5c7d0d2f4d3d9d5ddd89ad7dbd9" rel="noreferrer noopener nofollow">[email protected]</a>', '123456', 'INBOX') as mailbox:
# get unseen emails from INBOX folder
for msg in mailbox.fetch(AND(seen=False), mark_seen=False):
pass # get the raw data from msg
最佳答案
根据消息来源,msg.obj
属性似乎包含运行 message_from_bytes
后的值。
class MailMessage:
"""The email message"""
def __init__(self, fetch_data: list):
raw_message_data, raw_uid_data, raw_flag_data = self._get_message_data_parts(fetch_data)
self._raw_uid_data = raw_uid_data
self._raw_flag_data = raw_flag_data
self.obj = email.message_from_bytes(raw_message_data)
所以msg.obj
可以直接使用。
关于python - imap-tools 访问原始消息数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77083986/