「下面的代碼將能夠從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