Вызов метода при отправке электронной почты из Outlook? - PullRequest
0 голосов
/ 11 января 2011

Существует класс VBA с именем MailItemClass, в котором есть событие , когда электронное письмо отправлено в Outlook. Я не могу найти это для VB.NET. Я просмотрел документацию , но просто не могу найти ее в MAPI.

(Могу ли я позвонить в VBA из VB.NET?)

Ответы [ 2 ]

2 голосов
/ 11 января 2011

Вы делаете надстройку для Outlook?Есть событие с именем Application.ItemSend , которое вызывается перед отправкой элемента.Я только что запустил VS2010, создал новый проект надстройки типа Outlook 2007, который содержит только приведенный ниже код и мой Application_ItemSend запущен, как и ожидалось, когда я нажал кнопку Отправить из Outlook.

Если вы создаете приложение 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
0 голосов
/ 18 февраля 2011

Как VBA, так и VB.NET используют "объектную модель Outlook". Странно, что событие отправки опущено. Тем не менее, у вас все еще есть это событие .

Я не большой поклонник VB, но, поскольку MAPI ориентирован на C ++, использование его из VB.net не очень рационально, но MailItem примерно соответствует LPMESSAGE. Разные фреймворки надстроек Outlook имеют довольно хорошие системы уведомлений. Если вам нужно использовать только MAPI, проверьте события MAPI , ... но это не так просто.

...