Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Outlook2007 замена тэга перед обработкой письма

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

VaVaKo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня всем!
 
Приходит письмо, где в тэге ТО имеется список порядка 50 адресов, в котором один адрес кривой (для Outlook 2007). Outlook при обработке пихает все письмо включая тэги в тело и добавляет 1 строкой "Сообщение не обработано, так как оно содержит недопустимого получателя.", поле ТО очищает. В помощью VBA хотел (варианты) 1) удалить кривой адрес в поле ТО 2) удалить всех получателей кроме себя.
 
Проблема в следующем: События NewMail и NewMailEx отрабатывают уже после обработки, соответственно Recipients пустой, а изменения в теле письма делать толку нет. Пробовал через ItemLoad, не смог достучаться до свойств Item в отладчике, но по всем признакам обработка уже прошла.
 
Нужен совет - возможно ли вообще изменить тэги в письме до обработки с помощью VBA в самом Outlook? Если да - подскажите куда копать. Заранее спасибо.

Всего записей: 2 | Зарегистр. 06-03-2009 | Отправлено: 08:19 21-07-2016
panix1111



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как вам повезло. Я как раз неделю ковырял Оутлук именно по обработке сообщений.
Короче, в 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
 

Этот код для вас может быть избыточен, можете почистить под себя.
Идея такая - после старта Аутлука он реагирует на событие "Добавлен элемент" в папке "Входящие". это событие всегда происходит при получении письма.
Дальше в месте ТУТ ПИШИТЕ ВАШ КОД - пишите ваше все что хотите
.

Всего записей: 31 | Зарегистр. 14-09-2013 | Отправлено: 16:09 15-08-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Outlook2007 замена тэга перед обработкой письма


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru