Я пишу сценарий в Outlook VBA для записи каждого письма в базе данных Access, когда они входят в мой почтовый ящик. В коде у меня триггеры без проблем. Он обращается к базе данных Access без проблем. Он копирует тему без проблем. Затем он добирается до тела и ничего не копирует. Я пробовал такие вещи, как .HTMLbody, а не просто. Боди, но это снова показывает пустое тело. Мой код выглядит следующим образом:VBA Outlook 2010 получил почту .Body is empty
Option Explicit
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim objNS As Outlook.NameSpace
Dim objEmail As Outlook.MailItem
Dim strIDs() As String
Dim intX As Integer
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim sDb As String
Dim sSQL As String
Dim qdf As QueryDef
strIDs = Split(EntryIDCollection, ",")
For intX = 0 To UBound(strIDs)
Set objNS = Application.GetNamespace("MAPI")
Set objEmail = objNS.GetItemFromID(strIDs(intX))
sDb = "C:\Users\######\Documents\EmailDatabase.accdb"
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(sDb)
sSQL = "INSERT INTO AllEmails (Subject,Message) Values ('" & objEmail.Subject & "','" & objEmail.HTMLBody & "')"
Set qdf = db.CreateQueryDef("", sSQL)
qdf.Execute dbFailOnErro
MsgBox objEmail.HTMLBody
Next
Set objEmail = Nothing
End Sub
Если кто-нибудь знает, что я делаю неправильно, пожалуйста, дайте мне знать. Кажется, что три часа работы в Google не отсортировали его!
Является ли ваше окно сообщений также ничего не возвращающим? – Jordan
Да @Jordan открывается окно сообщения (поэтому не было отказано), но ничего в нем не было. – codeacker
Пройдите через свой код (F8) и просмотрите 'objEmail' в окне локалей после того, как он назначен. Посмотрите, есть ли даже свойство 'body', когда вы расширяете переменную. Удивительно, если 'GetItemFromID' на самом деле возвращает' MailItem' –