“下面的代码将能够从Outlook几乎所有邮件的工作, ”除了和我不知道为什么,如果你是如 的Exchange服务器上生成的消息的工作“邮件传送系统”。它看起来好像不是 '真正的信息在这一点上。如果尝试读取它,对象“olItem”为 '始终为空。但是,如果您收到此警报“邮件传递系统”并将 '转发给您自己,然后尝试阅读它,它确实工作正常。不要问我 '为什么因为我不知道。我只是认为这个“邮件传递系统” '第一次是一个警报,而不是一个消息,图标也改变了,它不是一个信封图标,而是一个成功或不成功的交付图标。如果您有任何想法如何处理它,请致电
Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
Set olInbox = olNamespace.GetDefaultFolder(olFolderInbox).Folders("mFolder")
On Error Resume Next
i = 5
cont1 = 0
Sheet2.Cells(4, 1) = "Sender"
Sheet2.Cells(4, 2) = "Subject"
Sheet2.Cells(4, 3) = "Received"
Sheet2.Cells(4, 4) = "Recepient"
Sheet2.Cells(4, 5) = "Unread?"
Sheet2.Cells(4, 6) = "Link to Report"
For Each olItem In olInbox.Items
myText = olItem.Subject
myTokens = Split(myText, ")", 5)
myText = Mid(myTokens(0), 38, Len(myTokens(0)))
myText = RTrim(myText)
myText = LTrim(myText)
myText = myText & ")"
myLink = ""
myArray = Split(olItem.Body, vbCrLf)
For a = LBound(myArray) To UBound(myArray)
If a = 4 Then
myLink = myArray(a)
myLink = Mid(myLink, 7, Len(myLink))
End If
Next a
Sheet2.Cells(i, 1) = olItem.SenderName
Sheet2.Cells(i, 2) = myText
Sheet2.Cells(i, 3) = Format(olItem.ReceivedTime, "Short Date")
Sheet2.Cells(i, 4) = olItem.ReceivedByName
Sheet2.Cells(i, 5) = olItem.UnRead
Sheet2.Cells(i, 6) = myLink
olItem.UnRead = False
i = i + 1
Next