Python Outlook如何处理召回邮件
Python Outlook how to handle recall email
我的项目处理收件箱中的电子邮件。当进程收到“召回”电子邮件时,它会崩溃。召回电子邮件没有主题属性。我想写一些错误处理。我找不到将电子邮件移动到另一个文件夹或从 Outlook 中删除此类电子邮件的方法。
目前我的代码使用 GetPrevious() 方法跳过了这些项目,但电子邮件仍在收件箱中
您有什么想法可以让 'recall' 电子邮件从收件箱文件夹中消失吗?
obj_emails = obj_inbox.Items
obj_email = obj_emails.GetLast()
if obj_email.MessageClass == 'IPM.Outlook.Recall':
obj_email = obj_emails.GetPrevious()
Outlook 对象模型不提供任何用于处理或生成撤回项目的功能。您可以考虑使用 Outlook 所基于的 low-level API - Extended MAPI。您也可以考虑使用 thied-party 组件,即围绕 low-level API 的包装器,例如 Redemption。
尝试 MFCMAPI 以确保可以轻松处理(移动或移除)召回物品。
检查 Class
属性 - 所有 OOM 对象都公开它。对于 MailItem
,它将是 43 (OlObjectClass.olMail
)。对于 ReportItem
- 46 (OlObjectClass.olReport
)
感谢您的建议。
我不想使代码复杂化,所以我使用 MessageClass 属性 来捕获召回电子邮件。接下来的信息将发送给团队以删除此类电子邮件。
if obj_email.MessageClass == 'IPM.Outlook.Recall':
raise Exception(f"There is a recall email in mailbox. Please remove it from inbox.")
我的项目处理收件箱中的电子邮件。当进程收到“召回”电子邮件时,它会崩溃。召回电子邮件没有主题属性。我想写一些错误处理。我找不到将电子邮件移动到另一个文件夹或从 Outlook 中删除此类电子邮件的方法。
目前我的代码使用 GetPrevious() 方法跳过了这些项目,但电子邮件仍在收件箱中 您有什么想法可以让 'recall' 电子邮件从收件箱文件夹中消失吗?
obj_emails = obj_inbox.Items
obj_email = obj_emails.GetLast()
if obj_email.MessageClass == 'IPM.Outlook.Recall':
obj_email = obj_emails.GetPrevious()
Outlook 对象模型不提供任何用于处理或生成撤回项目的功能。您可以考虑使用 Outlook 所基于的 low-level API - Extended MAPI。您也可以考虑使用 thied-party 组件,即围绕 low-level API 的包装器,例如 Redemption。
尝试 MFCMAPI 以确保可以轻松处理(移动或移除)召回物品。
检查 Class
属性 - 所有 OOM 对象都公开它。对于 MailItem
,它将是 43 (OlObjectClass.olMail
)。对于 ReportItem
- 46 (OlObjectClass.olReport
)
感谢您的建议。 我不想使代码复杂化,所以我使用 MessageClass 属性 来捕获召回电子邮件。接下来的信息将发送给团队以删除此类电子邮件。
if obj_email.MessageClass == 'IPM.Outlook.Recall':
raise Exception(f"There is a recall email in mailbox. Please remove it from inbox.")