簡體   English   中英

Python:如何點擊打開的 outlook email (win32)

[英]Python: how to click on an opened outlook email (win32)

我需要點擊一個打開的 outlook email,一個特定的批准鏈接,上面寫着“批准請求”。

我正確打開了通緝的email,但是無法點擊具體鏈接。 這是代碼:

import win32com.client

outlook=win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox=outlook.GetDefaultFolder(6)

messages = inbox.Items
messages.Sort("[ReceivedTime]", Descending=True)

for i in range(100):
    message = messages.GetNext()
    print(""+message.Subject, str(message.ReceivedTime))
    if message.Subject == "Mail to approve request":
        message.Display(False)

    else:
        pass

您將需要解析MailItem.HTMLBody屬性,提取相關鏈接,使用該鏈接啟動瀏覽器。

此外,永遠不要遍歷文件夾中的所有項目,使用Items.Find/FindNextItems.Restrict查詢"[Subject]='Mail to approve request'"

在 Python 中有幾種方法可以通過編程方式打開超鏈接。 How to open a URL in python頁面說明了可能的情況。 例如:

import os
os.system("start \"\" https://example.com")

使用HTMLBody屬性,該屬性返回表示指定項目的 HTML 正文的字符串。 因此,您可以通過解析消息正文並以編程方式執行它,以編程方式找到所需的 URL。

最后,要查找符合您的條件的項目,請使用Items class 的Find / FindNextRestrict方法。 在以下文章中閱讀有關它們的更多信息:

請參閱使用查詢關鍵字過濾項目以正確構建搜索條件字符串。

此外,您可能會發現應用程序 class 的AdvancedSearch方法很有幫助。 在 Outlook 中使用AdvancedSearch方法的主要好處是:

  • 搜索在另一個線程中執行。 您不需要手動運行另一個線程,因為AdvancedSearch方法會在后台自動運行它。
  • 可以在任何位置搜索任何項目類型:郵件、約會、日歷、便箋等,即超出某個文件夾的 scope。 RestrictFind / FindNext方法可以應用於特定的Items集合(請參閱 Outlook 中Folder class 的Items屬性)。
  • 完全支持 DASL 查詢(自定義屬性也可用於搜索)。 您可以在 MSDN 中的過濾文章中閱讀有關此內容的更多信息。 為了提高搜索性能,如果為商店啟用了即時搜索,則可以使用即時搜索關鍵字(請參閱Store類的IsInstantSearchEnabled屬性)。
  • 您可以隨時使用Search class 的Stop方法停止搜索過程。

在 Outlook 的高級搜索中以編程方式閱讀有關此方法的更多信息:C#、VB.NET文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM