[英]Modify HTMLBody of Outlook Email, based on Template, from Excel
我正在嘗試基於模板從 Excel VBA 修改 Outlook 電子郵件的 HTML 正文。
我的代碼是:
Sub Email_Button()
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItemFromTemplate("S:\some\path\to\file\Email.oft")
With OutMail
.Importance = olImportanceHigh
.Subject = "Subject " & Date
.Attachments.Add Application.ActiveWorkbook.FullName
.HTMLBody = WorksheetFunction.Substitute(OutMail.HTMLBody, "%target%", "replacement")
.Display
End With
' *** TIDY UP ***
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
問題與此非常相似。
我得到
運行時錯誤 287。應用程序定義或對象定義的錯誤
在 .HTMLBody 修改行上。
如果我刪除此行,則會顯示電子郵件供用戶在點擊發送之前檢查。
我參考了 Microsoft Outlook 15 對象庫。
我補充說:
With OutMail
.bodyFormat = olFormatHTML
但是在 Substitute 行上遇到了同樣的錯誤,所以我將替換更改為:
.HTMLBody = "<HTML><BODY>Some HTML text here</BODY></HTML>"
並且電子郵件的正文已更新。
因此,錯誤僅在嘗試使用替代品或其與經常有關時才會出現。
從調試器看來,沒有 HTML 正文:
我已經確認以編程方式將正文類型設置為 HTML:
並通過打開經常消息並檢查:
問題的原因可能與Substitute
方法有關,因此我建議運行以下代碼以確保一切正常:
Sub CreateHTMLMail()
Dim OutApp As Outlook.Application
Set OutApp = CreateObject("Outlook.Application")
'Creates a new email item and modifies its properties.
Dim objMail As Outlook.MailItem
'Create email item
Set objMail = OutApp.CreateItemFromTemplate("S:\some\path\to\file\Email.oft")
With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML><BODY>Enter the message text here. </BODY></HTML>"
.Display
End With
End Sub
另一個方面是 Outlook 安全提示。 在 Outlook文章中的“程序正試圖代表您發送電子郵件”警告中閱讀有關此內容的更多信息。
最可能的原因是 Outlook 安全。
出於安全目的,HTMLBody、HTMLEditor、Body 和 WordEditor 屬性都受地址信息安全提示的約束,因為郵件正文通常包含發件人或其他人的電子郵件地址。
您可以在 HKCU\\Software\\Policies\\Microsoft\\office\\16.0\\outlook\\security\\ 中找到安全配置(將 16.0 更改為您的辦公室版本)
您可以檢查兩個值, promptoomaddressbookaccess 和 promptoomaddressinformationaccess
將它們更改為 2(或詢問您的系統管理員),重新啟動 Outlook 並重試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.