我的問題是將電子郵件分配到檔案夾。當我按主題分配時(參見下面的代碼),它作業正常。
example_mail = [message for message in inbox.Items if 'example' in message.Subject]
for message in example_mail:
if message.UnRead == True:
message.Move(example_folder)
但是,當我使用相同的方法通過電子郵件地址進行分配時(請參見下面的代碼),它要么只移動幾封電子郵件(并且交付的數量需要很長時間),要么似乎根本沒有執行而沒有錯誤。
example_mail1 = [message for message in inbox.Items if '[email protected]' in message.SenderEmailAddress]
for message in example_mail1:
if message.UnRead == True:
message.Move(example_folder1)
兩種方法在代碼和方法方面都是相同的,盡管由于某種原因結果完全不同。我正在使用:win32、共享電子郵件收件箱(作業)和公司筆記本電腦。
我還嘗試了更高數量的主題腳本,以查看問題是否在于使用電子郵件地址腳本時發現的電子郵件數量,但即使電子郵件數量非常少,我仍然會遇到同樣的問題。
有什么建議么?
uj5u.com熱心網友回復:
如果 message.SenderEmailAddress 中的“發件人@example.com”
可能有多種因素,例如區分大小寫等。此外,遍歷檔案夾中的所有專案并不是一個好主意:
example_mail1 = [message for message in inbox.Items if '[email protected]' in message.SenderEmailAddress]
另外,在該代碼之后,您檢查UnRead
效率不高的屬性。
相反,我建議使用Outlook 物件模型中的類的Find
/FindNext
或Restrict
方法。Items
因此,您將僅獲得符合您的條件的專案。
在以下文章中閱讀有關這些方法的更多資訊:
- 如何:使用 Find 和 FindNext 方法從檔案夾中檢索 Outlook 郵件專案(C#、VB.NET)
- 如何:使用限制方法從檔案夾中檢索 Outlook 郵件專案
例如,您可以設定以下搜索條件:
Filter = "@SQL=" & "urn:schemas:httpmail:senderemail Like '%[email protected]%'"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/485985.html
標籤:Python 温纳皮 外表 pywin32 办公自动化