VBA Outlook Mailitem - не отображаются все элементы

Приведенный ниже код не отвечает на все мои письма в папке "Входящие".

Первый элемент в моем списке - это электронное письмо от вчерашнего и последнего 22.04.2014 - хотя мой почтовый ящик содержит ОЧЕНЬ больше.

Sub CheckEmail()

On Error Resume Next

Dim outApp As Outlook.Application
Dim outNs As Outlook.Namespace
Dim outFldr As Outlook.MAPIFolder
Dim outEmail As Outlook.MailItem

Dim p As Integer
p = 0

Set outApp = CreateObject("Outlook.Application")
Set outNs = outApp.GetNamespace("MAPI")
Set outFldr = outNs.GetDefaultFolder(olFolderInbox)

Dim searcht As String

'find search string

' do search

        For Each outEmail In outFldr.Items

            With fmShowsInboxEmails.ListBox1
                .AddItem outEmail.EntryID
                .List(p, 1) = outEmail.ReceivedTime
                .List(p, 2) = outEmail.Subject
                .List(p, 3) = outEmail.SenderEmailAddress
                .List(p, 4) = outEmail.Attachments.Count
            End With

            p = p + 1

        Next outEmail

On Error GoTo 0

Set outApp = Nothing
Set outNs = Nothing
Set outFldr = Nothing
Set outEmail = Nothing

fmShowsInboxEmails.Show

End Sub

2 ответа

"несоответствие типов в следующей электронной почте"

Элементы в папке "Входящие" не обязательно должны быть элементами почты.

Если у вас есть Dim outEmail As Variant, проверьте, что outEmail является почтовым элементом перед добавлением в список.

Я думаю, что Outlook считает только элементы, хранящиеся локально в автономной папке, поэтому сообщения, хранящиеся на сервере, не будут частью outFldr.Items.

Другие вопросы по тегам