将现有邮件项目导出到本地文件夹

时间:2019-12-19 22:26:33

标签: vba outlook

我已成功使用以下宏代码将Outlook中名为“子文件夹”的子文件夹中的邮件失败项目导出/提取到笔记本电脑上的本地文件夹中,并在Outlook中执行:

Private Sub DBC1()

Set inbox = Session.GetDefaultFolder(6).Folders("Subfolder")

For Each m In inbox.Items
    intCount = m.Attachments.Count
    If intCount > 0 Then
        For i = 1 To intCount
            m.Attachments.Item(i).SaveAsFile "C:\info\" & _
                m.Attachments.Item(i).FileName
        Next
    End If
    Next

End Sub

但是,导出这些邮件时,我需要更改发件人地址。有人知道如何更改“发件人”值吗?

1 个答案:

答案 0 :(得分:0)

即使您可以使用Namespace.OpenSharedItem打开MSG文件,Outlook对象模型也不允许您使用MailItem.PropertyAccessor.SetProperty修改与发件人相关的属性(它就像是最了解的老大哥)。

如果可以选择使用Redemption,则可以使用RDOSessionGetMessageFromMsgFile打开MSG文件(返回RDOMail对象),然后清除发送者设置RDOMail.Sender / SentOnBehalfOf设置为Nothing(空)或将它们设置为有效的RDOAddressEntry对象。