AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.06.2008, 17:28   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Чем не очень удобен Outlook в плане программирования, так это тем, что пустяшную тестовую задачку там запустишь не сразу. Пока разберешься со всеми этими фолдерами, инспекторами и эксплорерами...

Приведенная по ссылке процедура заимствована из очень полезной книги Сью Мошер (есть русское издание: http://www.books.ru/shop/books/205770, которое я имел удовольствие почитывать). Я подправил процедуру так, чтобы ее можно было запускать в Outlook и смотреть на результаты (чтобы потом проще воплощалось в X++).

Для запуска надо скопировать текст в модуль VBA (находясь в Outlook, нажать Alt+F11). Далее следует открыть любое письмо, затем перейти в редактор VBA и, стоя на тексте процедуры, нажать F5. Процедура последовательно вернет имя отправителя, тело письма и, наконец, желаемый адрес.

Код:
'код - VBA для тестового запуска внутри Outlook

Sub GetFromAddress()
    
    Dim myInspector As Inspector
    Dim myItem As MailItem
    
    Dim objSession As Object
    Dim strEntryID As String
    Dim strStoreID As String
    Dim objCDOMsg As Object
    Dim strAddress As String
    
    Set myItem = Application.ActiveInspector.CurrentItem

  ' start CDO session
    Set objSession = CreateObject("MAPI.Session")
    objSession.Logon "", "", False, False

  ' pass message to CDO
    strEntryID = myItem.EntryID
    strStoreID = myItem.Parent.StoreID
    Set objCDOMsg = objSession.GetMessage(strEntryID, strStoreID)

  ' get sender address
    On Error Resume Next
    strAddress = objCDOMsg.Sender.Address
    If Err = &H80070005 Then
    'handle possible security patch error
    MsgBox "The Outlook E-mail and CDO Security Patches are " & _
           "apparently installed on this machine. " & _
           "You must response Yes to the prompt about " & _
           "accessing e-mail addresses if you want to " & _
           "get the From address.", vbExclamation, _
           "GetFromAddress"
    End If

    MsgBox myItem.SenderName
    MsgBox myItem.Body

    MsgBox strAddress
  
    Set objCDOMsg = Nothing
    objSession.Logoff
    Set objSession = Nothing

End Sub
Теги
документация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить указатель на отчёт когда пользователь выбрал Печать на принтер в просмотрщике, в форму SysPrintForm? rkorchagin DAX: Программирование 10 17.04.2008 11:59
Юридический и фактический адрес в счете на оплату madproger DAX: Программирование 2 26.01.2007 12:55
Адрес клиента Pegiy DAX: Функционал 4 29.07.2004 11:19
Можно ли в одном select`e получить maxof и minof по одному полю? ArturK DAX: Программирование 2 28.04.2004 12:28
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:19.