Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Outlook2007 замена тэга перед обработкой письма

Автор: VaVaKo
Дата сообщения: 21.07.2016 08:19
Доброго дня всем!

Приходит письмо, где в тэге ТО имеется список порядка 50 адресов, в котором один адрес кривой (для Outlook 2007). Outlook при обработке пихает все письмо включая тэги в тело и добавляет 1 строкой "Сообщение не обработано, так как оно содержит недопустимого получателя.", поле ТО очищает. В помощью VBA хотел (варианты) 1) удалить кривой адрес в поле ТО 2) удалить всех получателей кроме себя.

Проблема в следующем: События NewMail и NewMailEx отрабатывают уже после обработки, соответственно Recipients пустой, а изменения в теле письма делать толку нет. Пробовал через ItemLoad, не смог достучаться до свойств Item в отладчике, но по всем признакам обработка уже прошла.

Нужен совет - возможно ли вообще изменить тэги в письме до обработки с помощью VBA в самом Outlook? Если да - подскажите куда копать. Заранее спасибо.
Автор: panix1111
Дата сообщения: 15.08.2016 16:09
Как вам повезло. Я как раз неделю ковырял Оутлук именно по обработке сообщений.
Короче, в ThisOutlookSession добавляете

Код:
Public WithEvents myOlItems As Outlook.Items
Private WithEvents olInboxItems As Items
Private WithEvents olSentItems As Items
Private WithEvents olDeletedItems As Items
Dim SavedPath As String
Private Const BUSINESS_FOLDER = "clients"
' Bugfix #9
Dim objNameSpace As Outlook.NameSpace
Dim objStore As Outlook.Store

' Some basic variables
Dim strFolderName As String
Dim strHits As String

' Register our event hooks.
Public Sub Application_Startup()
' Reference the items in the Inbox. Because myOlItems is declared
' "WithEvents" the ItemAdd event will fire below.
Dim olApp As Outlook.Application
Dim olNs As Outlook.NameSpace
Dim olParentFolder As Outlook.MAPIFolder
Dim olSentFolder As Outlook.MAPIFolder
Dim olFolderA As Outlook.MAPIFolder
Dim olFolderB As Outlook.MAPIFolder
Dim EmailBoxName As String

Dim NS As Outlook.NameSpace

Set NS = Application.GetNamespace("MAPI")

Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).Items
Set olSentItems = Session.GetDefaultFolder(olFolderSentMail).Items
'Set olDeletedItems = NS.GetDefaultFolder(olFolderDeletedItems).Items

Set NS = Nothing
End Sub


' This section manages incoming emails.
Private Sub olInboxItems_ItemAdd(ByVal Item As Object)

' If the item type is a mailitem (email)
If TypeOf Item Is MailItem Then
' Validate the email
' ТУТ ПИШИТЕ ВАШ КОД
End If

End Sub

Страницы: 1

Предыдущая тема: Как создать параметр реестра REG_BINARY для цвета ?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.