這個帖子討論使用 Outlook 規則取代傳入電子郵件中的文字的 VBA 解決方案。
我使用相同的方法從我收到的電子郵件頂部刪除“外部訊息”文本(實際上是雇主插入的兩行文本,真的很煩人)。但是,當 VBA 進行替換時,產生的電子郵件也會變更電子郵件的格式。文字按預期被替換(太棒了!),但電子郵件中的所有超連結都被展開,並且所有其他 html 格式都丟失了(不好)。看起來它已經被轉換為純文字了。有沒有辦法在不遺失 HTML 格式的情況下替換 Outlook 中傳入郵件的文字?
這是我正在運行的程式碼:
Sub RemoveExternalText(MyMail As MailItem)
Dim body As String, re As Object, match As Variant
body = MyMail.body
Set re = CreateObject("vbscript.regexp")
re.Pattern = "External Message"
For Each match In re.Execute(body)
body = Replace(body, match.Value, "")
Next
MyMail.body = body
MyMail.Save
End Sub
答案1
在閱讀有關使用 VBA 建立 HTML 電子郵件的資訊時,我發現他們不使用“MyMail.body”,而是使用“MyMail.HTMLbody”。
使用該語法更改程式碼解決了問題!
Sub RemoveExternalText(MyMail As MailItem)
Dim body As String, re As Object, match As Variant
body = MyMail.HTMLBody
Set re = CreateObject("vbscript.regexp")
re.Pattern = "External Message"
For Each match In re.Execute(body)
body = Replace(body, match.Value, "")
Next
MyMail.HTMLBody = body
MyMail.Save
End Sub