编辑触发ItemSend事件的电子邮件正文



我发送的每封电子邮件都会附加一个页脚。这很好,直到我们在一封电子邮件的末尾得到十几个相同页脚的实例。所以我一直在运行以下代码

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim currMail As MailItem
Dim msgStr As String
Dim endStr As String
Dim endStrStart As Long

On Error GoTo Error_CalItem
Set currMail = ActiveInspector.CurrentItem
endStr = "CONFIDENTIALITY NOTICE: This e-mail message"

msgStr = currMail.HTMLBody
endStrStart = InStr(msgStr, endStr)

If endStrStart > 0 Then
currMail.HTMLBody = Left(msgStr, endStrStart - 1)
End If
Error_CalItem:
'Nothing
End Sub

自从我们切换到Office 365后,这就不再有效了。

问题是ActiveInspector什么都不是。确认方式:

Set oInspector = Application.ActiveInspector
If oInspector Is Nothing Then
MsgBox "No active inspector"

您需要使用作为参数传递的实例:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim currMail As MailItem
Dim msgStr As String
Dim endStr As String
Dim endStrStart As Long
On Error GoTo Error_CalItem
' check the item type first
If TypeOf Item Is MailItem Then
Set currMail = Item
endStr = "CONFIDENTIALITY NOTICE: This e-mail message"
msgStr = currMail.HTMLBody
endStrStart = InStr(msgStr, endStr)
If endStrStart > 0 Then
currMail.HTMLBody = Left(msgStr, endStrStart - 1)
End If
End If 
Error_CalItem:
'Nothing
End Sub

最新更新