Outlook通过Pastel发送之前截取电子邮件

时间:2017-05-10 07:42:28

标签: vba email outlook outlook-vba outlook-2013

Sage Pastel Evolution无法以HTML格式发送电子邮件,因此我尝试在发送电子邮件之前拦截该电子邮件,以HTML格式向主题和正文添加必要信息,然后将其发送出去。

这是我第一次尝试这样做,所以我将以下简单代码放在ThisOutlookSession模块中:

Option Explicit

Public WithEvents myOlApp As Outlook.Application

Public Sub Initialize_Handler()
  Set myOlApp = Outlook.Application
End Sub

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
  Dim sPrompt As String

  sPrompt = "Are you sure you want to send " & Item.Subject & "?"
  If MsgBox(sPrompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
    Cancel = True
  End If
End Sub

不幸的是,当我通过Evolution或Outlook发送电子邮件时似乎没有发生任何事情。我错过了什么?

2 个答案:

答案 0 :(得分:1)

删除所有内容并尝试以下代码,确保在测试前重新启动Outlook

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

    prompt = "Are you sure you want to send " & Item.subject & "?"

    If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
        Cancel = True
    End If
End Sub

答案 1 :(得分:0)

如果使用此格式,则必须运行Initialize_Handler。

如果您愿意,可以在Outlook启动时执行此操作,而不是手动运行。

在ThisOutlookSession模块中。

Private Sub Application_Startup
    Initialize_Handler
End Sub