Lar*_*rry 4 outlook vba outlook-2007
这是这个主要问题的一个子问题
我可以使用以下功能循环获取其他文件夹的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
Run Code Online (Sandbox Code Playgroud)
但是,如果没有在“已发送邮件”文件夹上工作,是否有人对此有经验或参考?
失败 ,物业一无所获
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
Run Code Online (Sandbox Code Playgroud)
编辑如果无法实现,我可以在电子邮件中进行密件抄送。
PR_TRANSPORT_MESSAGE_HEADERS仅在从POP3帐户收到的邮件上可用。永远不会在传出消息上设置它。另外,绝对没有理由遍历所有文件夹-使用Application.Session.GetDefaultFolder(olFolderSentMail)-即使“已发送邮件”文件夹名称已本地化,它也将起作用。其次,您是否真的需要处理文件夹中的所有项目?
检查是否设置了PR_INTERNET_MESSAGE_ID(DASL名称为schemas.microsoft.com/mapi/proptag/0x1035001F)属性。