我正在嘗試使用 python 和 python 中的 win32com.client 自動化 Outlook。
我已經有一個宏,可以為我創建一封電子郵件,其中包含所有主題和附件。
問題是,當我嘗試使用 Python 將其自動化時,我不知道如何選擇宏打開包含所有資訊的視窗,并輸入我要發送的地址。示例:我想將附件中編號為“1234”的所有電子郵件發送給“Albert”。
另外,我得到錯誤" AttributeError: 'NoneType' object has no attribute 'To' "
outlook = win32.dynamic.Dispatch('Outlook.Application')
namespace = outlook.GetNameSpace('MAPI')
mail = outlook.ActiveWindow().Display()
print(type(mail))
mail. To = "[email protected]"
mail. Send()
VBA 的代碼是:(我洗掉了一些不重要的細節)'生成 MailID
strMailID = GenerateMailID
'生成xls檔案
strFileName =Environ$("temp") & "/file directory"
'創建郵件并附加xls檔案
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Subject = "DETAILS FROM EXCEL "
.HTMLBody = "DETAIILS "
.Attachments.Add strFileName
.UserProperties.Add "MailID", 1, False, 1
.UserProperties("MailID") = strMailID
.Display
uj5u.com熱心網友回復:
首先,Application.ActiveWindow
將回傳一個Explorer
或Inspector
物件,而您只想要后者。當前檢查器由Application.ActiveInspector
.
一旦你有了一個Inspector
物件,就可以使用它Inspector.CurrentItem
來檢索正在撰寫的訊息。
第三,如果您已經擁有創建訊息的代碼,為什么不簡單地呼叫MailItem.Display
以將其顯示給用戶呢?如果訊息顯示在檢查器中,為什么您需要呼叫MailItem.Send
而不是讓用戶在準備好時單擊“發送”按鈕?您確實需要發布創建訊息的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/504298.html