gpt4 book ai didi

vba - 如何在 VBA 中的 Outlook-2007 中的 "Sent Items"文件夹中获取消息 ID 或标题

转载 作者:行者123 更新时间:2023-12-04 19:24:31 24 4
gpt4 key购买 nike

这是这个 main 的子问题题

我可以使用以下函数循环获取其他文件夹的 Internet header

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

编辑 如果无法实现,我可以在电子邮件中密件抄送。

最佳答案

PR_TRANSPORT_MESSAGE_HEADERS 仅适用于从 POP3 帐户接收的邮件。它永远不会在传出消息上设置。
此外,绝对没有理由遍历所有文件夹 - 使用 Application.Session.GetDefaultFolder(olFolderSentMail) - 即使“已发送邮件”文件夹名称已本地化,它也会工作。
其次,你真的需要处理吗?全部 文件夹中的项目?

检查是否设置了 PR_INTERNET_MESSAGE_ID(DASL 名称 schemas.microsoft.com/mapi/proptag/0x1035001F)属性。

关于vba - 如何在 VBA 中的 Outlook-2007 中的 "Sent Items"文件夹中获取消息 ID 或标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com