我刚刚开始使用Python,我正在尝试完成一项手动任务,而我听说这是使用python完成的简单过程。我的公司将Office 365用于他们的电子邮件,我想检索电子邮件附件并将其存储在本地,以便节省时间。到目前为止,已经建立了如何发送简单电子邮件,在我的帐户中调用文件夹名称的方法,但是我仍无法弄清楚如何阅读任何特定的电子邮件。
我的想法有点像这样,
from O365 import Account, message,mailbox
credentials = ('username', 'given password')
account = Account(credentials)
mailbox = account.mailbox()
mail_folder = mailbox.inbox_folder()
mail_folder = mailbox.get_folder(folder_name='Inbox')
print(mail_folder)
#_init__(*,parent= Inbox, con=None,**kwargs)
Message_body = message.body()
message.get_subject('email subject here!')
print(Message.body)
现在我迷路了,尝试在O365文档页面中进行任何操作,但是消息模块没有根据我的使用方式提供属性主题。任何指导将不胜感激
答案 0 :(得分:1)
从您的示例开始-尚不清楚您是否已通过身份验证...
如果这样,您将可以列出邮箱文件夹。在以下情况下-您可以访问收件箱,然后列出子文件夹:
from O365 import Account, Connection, MSGraphProtocol, Message, MailBox, oauth_authentication_flow
scopes=['basic', 'message_all']
credentials=(<secret>, <another secret>)
account = Account(credentials = credentials)
if not account.is_authenticated: # will check if there is a token and has not expired
account.authenticate(scopes=scopes)
account.connection.refresh_token()mailbox = account.mailbox()
inbox = mailbox.get_folder(folder_name='Inbox')
child_folders = inbox.get_folders(25)
for folder in child_folders:
print(folder.name, folder.parent_id)
此部分将允许您列出文件夹(以及消息)。
如果我查看您的代码-好像您正在尝试同时执行这两项操作?
尝试执行以下操作,以使收件箱中的页面无法显示:
for message in inbox.get_messages(5):
if message.subject == 'test':
print(message.body)
请注意,我正在浏览收件箱中的前5条消息,以查找主题为“ test”的消息。如果找到消息,则会打印正文。
希望这会有所启发。