从Outlook发送电子邮件时的调用方法?
问题描述:
有一个叫做MailItemClass
的VBA类,它有一个event用于在Outlook中发送电子邮件。我无法在VB.NET中找到它。我查看了documentation,但我无法在MAPI
中找到它。从Outlook发送电子邮件时的调用方法?
(我可以从VB.NET中调用VBA吗?)
答
您是否正在制作Outlook加载项?有一个事件名为Application.ItemSend,在项目发送之前引发。我刚刚启动了VS2010,创建了一个类型为Outlook 2007加载项的新项目,其中包含下面的代码,并且当我单击从Outlook发送时,按预期激活了我的Application_ItemSend
。
Public Class ThisAddIn
Private Sub ThisAddIn_Startup() Handles Me.Startup
End Sub
Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
End Sub
Private Sub Application_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend
System.Windows.Forms.MessageBox.Show("Hi")
End Sub
End Class
编辑
如果你让你用同样的方法WinForms应用程序,但你“看到”不同了一点。可能有点令人困惑的是,该事件是在应用程序级而不是从邮件项目本身提出的。
Public Class Form1
''//Holds a reference to our mail application
Private WithEvents OA As Microsoft.Office.Interop.Outlook.Application
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
''//Either launches Outlook or snaps to the current running one
OA = New Microsoft.Office.Interop.Outlook.Application()
End Sub
Private Sub OA_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles OA.ItemSend
MessageBox.Show("Hello")
End Sub
End Class
不,我没有创建Outlook加载项,也许我应该?我有一个Windows Forms项目,我需要在创建(通过MAPI)电子邮件发送后更新数据库。 – Zolomon 2011-01-11 14:35:33