написали функцию обработки сообщений в Visual Basic для Outlook (мы используем Outlook 2003 и Exchange Server), чтобы помочь мне разобраться с входящей электронной почтой. У меня это работает, за исключением того, что иногда правило не работает, и Outlook деактивирует его. Затем я снова включаю правило и вручную запускаю его в папке «Входящие», чтобы наверстать упущенное. Правило самопроизвольно дает сбой и деактивируется несколько раз в день. Я хотел бы исправить это раз и навсегда.
Вот код, лишенный функциональности, но дающий вам представление о том, как он выглядит:
Public WithEvents myOlItems As Outlook.Items
Public Sub Application_Startup()
' Reference the items in the Inbox. Because myOlItems is declared
' "WithEvents" the ItemAdd event will fire below.
' Set myOlItems = Outlook.Session.GetDefaultFolder(olFolderInbox).Items
Set myOlItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub myOlItems_ItemAdd(ByVal Item As Object)
On Error Resume Next
If TypeName(Item) = "MailItem" Then
MyMessageHandler Item
End If
End Sub
Public Sub MyMessageHandler(ByRef Item As MailItem)
Dim strSender As String
Dim strSubject As String
If TypeName(Item) <> "MailItem" Then
Exit Sub
End If
strSender = LCase(Item.SenderEmailAddress)
strSubject = Item.Subject
rem do stuff
rem do stuff
rem do stuff
End Sub
Одна ошибка, которую я получаю, - это «Несоответствие типов», вызывающее MyMessageHandler, где VB жалуется, что Item не является MailItem. Хорошо, но TypeName(Item) возвращает «MailItem», так почему Item не является MailItem?
Еще один, который я получаю, это когда приходит электронное письмо с пустой темой. Линия
strSubject = Item.Subject
дает мне ошибку. Я знаю, что Item.Subject должен быть пустым, но почему это ошибка?
Спасибо.
person
Community
schedule
17.09.2008