阅读邮件时没有附件(无法保存附件)
No attachments when reading messages (cannot save attachments)
我正在使用 python 和 O365 库访问 MS O365 邮件帐户,无法access/save 邮件的文件附件
我已经使用普通 IMAP 等完成了此操作,但现在,因为我们必须使用 oauth2 和所有这些 - 我必须通过 MS-Graph 或其他方式访问邮箱。
我选择了 python-O365 库,它可以让我做我需要的事情。
我可以获得文件夹和消息(名称、正文等),但是当我尝试使用 message.attachments 方法时 - 我收到的消息是附件数量未知。
我知道这封邮件有两个 XLSX 附件,因为我自己发送了这封邮件,而且我可以确认我正在阅读正确的邮件,因为我可以阅读邮件正文。
我搜索了保存附件的示例(使用 O365 库),但它们没有解决问题(它们遍历附件集合 - 但我没有任何附件)。
我了解到附件与邮件是分开存储的,并且需要单独获取附件,但这似乎不对?
下面的代码说明了这个问题...
for message in inbox.get_messages(5):
print(message.subject)
if message.subject == 'test':
print('here')
for att in message.attachments:
print('also here')
print(att.attachment_name)
print(att.attachment_type)
att.save()
从上面我打印了文本 'here' - 所以我知道正在使用正确的消息。我没有收到我应该收到的文本 'also here',因为消息中有两个文件。
那么 - 有什么办法可以保存我的附件吗?
它只是表明一点时间,一个清晨和一些好咖啡可以带来什么......
我找到了答案。它被埋在 github 上 O365 库的问题跟踪器中。
以下代码可以正常工作:
for message in inbox.get_messages(limit=10, download_attachments=True):
if message.subject == 'test with file':
print('here')
if message.has_attachments:
print('also here')
print(message.attachments)
for att in message.attachments:
print(att)
att.save()
将其与原始代码进行比较,您会发现我需要将 get_messages 指示为 download_attachments=True 并且访问附件的机制也发生了变化。
无论如何 - 它现在可以工作了:)
我正在使用 python 和 O365 库访问 MS O365 邮件帐户,无法access/save 邮件的文件附件
我已经使用普通 IMAP 等完成了此操作,但现在,因为我们必须使用 oauth2 和所有这些 - 我必须通过 MS-Graph 或其他方式访问邮箱。
我选择了 python-O365 库,它可以让我做我需要的事情。
我可以获得文件夹和消息(名称、正文等),但是当我尝试使用 message.attachments 方法时 - 我收到的消息是附件数量未知。
我知道这封邮件有两个 XLSX 附件,因为我自己发送了这封邮件,而且我可以确认我正在阅读正确的邮件,因为我可以阅读邮件正文。
我搜索了保存附件的示例(使用 O365 库),但它们没有解决问题(它们遍历附件集合 - 但我没有任何附件)。
我了解到附件与邮件是分开存储的,并且需要单独获取附件,但这似乎不对?
下面的代码说明了这个问题...
for message in inbox.get_messages(5):
print(message.subject)
if message.subject == 'test':
print('here')
for att in message.attachments:
print('also here')
print(att.attachment_name)
print(att.attachment_type)
att.save()
从上面我打印了文本 'here' - 所以我知道正在使用正确的消息。我没有收到我应该收到的文本 'also here',因为消息中有两个文件。
那么 - 有什么办法可以保存我的附件吗?
它只是表明一点时间,一个清晨和一些好咖啡可以带来什么......
我找到了答案。它被埋在 github 上 O365 库的问题跟踪器中。
以下代码可以正常工作:
for message in inbox.get_messages(limit=10, download_attachments=True):
if message.subject == 'test with file':
print('here')
if message.has_attachments:
print('also here')
print(message.attachments)
for att in message.attachments:
print(att)
att.save()
将其与原始代码进行比较,您会发现我需要将 get_messages 指示为 download_attachments=True 并且访问附件的机制也发生了变化。
无论如何 - 它现在可以工作了:)