这是main问题的一个子问题。
我可以使用以下函数循环获取其他文件夹的internet头
Sub testing()
Dim ns As Outlook.NameSpace
Dim folder As MAPIFolder
Dim item As MailItem
Set ns = Session.Application.GetNamespace("MAPI")
Set folder = ns.GetDefaultFolder(olFolderInbox)
For Each item In folder.Items
If (item.Class = olMail) Then
GetInetHeaders item
End If
Next item
End Sub
Function GetInetHeaders(olkMsg As MailItem) As String
' Purpose: Returns the internet headers of a message.'
' Written: 4/28/2009'
' Author: BlueDevilFan'
' Outlook: 2007'
Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001E"
Dim olkPA As Outlook.PropertyAccessor
Set olkPA = olkMsg.PropertyAccessor
GetInetHeaders = olkPA.GetProperty(PR_INTERNET_MESSAGE_ID)
Debug.Print olkMsg.Subject
Debug.Print GetInetHeaders
Set olkPA = Nothing
End Function但没有工作的“发送的项目”文件夹,谁有经验或参考这一点?
失败属性什么也不返回
Sub testing2()
Dim item As MailItem
Set Store = Application.GetNamespace("MAPI").Folders
For Each StoreFolder In Store
For i = 1 To StoreFolder.Folders.Count
If StoreFolder.Folders(i).Name = "Sent Items" Then
For Each item In StoreFolder.Folders(i).Items
If (item.Class = olMail) Then
GetInetHeaders item
End If
Next item
Exit For
End If
Next
Exit For
Next
End Sub编辑,如果它是无法实现的,我可以自己在电子邮件中密件。
发布于 2013-01-28 18:02:00
PR_TRANSPORT_MESSAGE_HEADERS仅可用于从POP3帐户接收的邮件。它从未设置在传出的消息上。此外,绝对没有理由循环遍历所有文件夹--使用Application.Session.GetDefaultFolder(olFolderSentMail) --即使“发送的项目”文件夹名称是本地化的,它也能工作。其次,您真的需要处理文件夹中的所有项吗?
检查是否设置了schemas.microsoft.com/mapi/proptag/0x1035001F) ( PR_INTERNET_MESSAGE_ID名称)属性。
https://stackoverflow.com/questions/14556829
复制相似问题