2015-07-29 2 views
0

Я пытаюсь получить тело и голову электронной почты после получения его в Outlook. Я использую обработчик NewMailEx событий, чтобы управлять все письма, которые приходят вНет тела в Outlook Email

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) 

Dim olApp As Outlook.Application 
Dim oNS   As NameSpace 
Dim oFolder  As MAPIFolder 
Dim oNewMail As MailItem 
Set olApp = Outlook.Application 
Set oNS = GetNamespace("MAPI") 
Set oFolder = oNS.GetDefaultFolder(olFolderInbox) 
Set oNewMail = oFolder.Items.GetFirst 

Set Msg = oNS.GetItemFromID(EntryIDCollection) 
MsgBox Msg.Body 

End Sub 

Эта функция вызывается успешно, и я могу получить заголовок сообщения электронной почты с помощью:.

MsgBox Msg 

Но когда я пытаюсь использовать Msg.Body, ничего не отображается в MsgBox. Кроме того, когда я использую Msg.HTMLBody, я могу видеть html в MsgBox, но все же в теге ничего нет.

Любые предложения о том, что я делаю неправильно здесь?

+0

Что показывает в окне местных жителей для Msg? Этот код отлично подходит для меня. Кроме того, просто комментарий, но переменная olApp здесь не нужна. Что ты имеешь в виду, ничего нет на вкладке? – OpiesDad

+0

Он выглядит пустым, но я на самом деле просто понял, что проблема была второй раз. Я отправлю свой ответ. –

ответ

2

Я закончил тем, что понял это сам.

Поскольку электронное письмо, с которым я работаю, является IMAP, только строка темы загружается с сервера, пока не будет нажата электронная почта, а затем загрузите тело.

Я был в состоянии получить доступ к телу сообщения электронной почты при первом обращении к строке темы beforehande так:

Set Msg = oNS.GetItemFromID(EntryIDCollection) 
MsgBox Msg 
MsgBox Msg.Body 
Смежные вопросы