O365 2.0.16版本导入MailBox报错 无法导入名称问题求助
问题根因
你使用的O365 2.0.16属于2.x版本,该版本不再将MailBox类作为顶层导出对象,你参考的教程大概率是适配1.x旧版本的内容,才会出现导入失败的问题。MailBox不需要单独导入,它是Account实例调用mailbox()方法后返回的对象。
修复步骤
- 修正导入语句,删除
MailBox的导入项 - 修正代码中获取邮箱实例的逻辑,删除注释中错误的赋值写法,直接通过
account.mailbox()获取实例 - 额外注意:O365的
credentials参数接收的是(客户端ID, 客户端密钥)对,不是你填写的账号密码,后续认证时需要调整为你在Azure后台申请的应用凭证。
修正后可运行代码
from O365 import Account, Message scopes=['basic', 'message_all'] # 此处后续需要替换为你申请的Azure应用客户端ID、客户端密钥 credentials=('your_client_id', 'your_client_secret') account = Account(credentials = credentials) if not account.is_authenticated: # 检查token是否存在且未过期 account.authenticate(scopes=scopes) # 正确获取MailBox实例 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)
内容的提问来源于stack exchange,提问作者Texia Plazaola
相关产品推荐
相关产品推荐

