【问题标题】:Working with ".msg" Items in local folder使用本地文件夹中的“.msg”项目
【发布时间】:2019-06-11 16:36:02
【问题描述】:

我想从存储在本地文件夹中的电子邮件中获取一些属性。我知道如何处理Outlook.folder 中的电子邮件,但我想在这种情况下方法不一样。

我找不到一种方法来处理 .msg 项目,就像它们是电子邮件一样。

我没有尝试任何东西,因为我知道问题来自对象类不兼容,但我不知道该使用什么。另外,我找不到“.msg”项目的指南,可能有用

Private Sub email_listing()
    On Error GoTo ErrHandler

    ' SET Outlook APPLICATION OBJECT.
    Dim objOutlook As Object
    Set objOutlook = CreateObject("Outlook.Application")

    ' CREATE AND SET A NameSpace OBJECT.
    Dim objNSpace As Object
    ' THE GetNameSpace() METHOD WILL REPRESENT A SPECIFIED NAMESPACE.
    Set objNSpace = objOutlook.GetNamespace("MAPI")

    ' CREATE A FOLDER OBJECT.
    Dim myFolder, fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set myFolder = fs.GetFolder("C:\Users\boris\Desktop\Mail Test\")

    Dim Item As Object
    Dim iRows, iCols As Integer
    iRows = 2

    ' LOOP THROUGH EACH ITEM IN THE FOLDER.
    For Each Item In myFolder.Files
        If Item.Type = "Outlook Item" Then

            Dim objMail As Outlook.MailItem
            Set objMail = Item 'THE BUG

            Cells(iRows, 1) = objMail.SenderEmailAddress
            Cells(iRows, 2) = objMail.To
            Cells(iRows, 3) = objMail.Subject
            Cells(iRows, 4) = objMail.ReceivedTime
            Cells(iRows, 5) = objMail.Body
        End If

        iRows = iRows + 1
    Next
    Set objMail = Nothing

    ' RELEASE.
    Set objOutlook = Nothing
    Set objNSpace = Nothing
    Set myFolder = Nothing
ErrHandler:
    Debug.Print Err.Description
End Sub

我希望电子表格中包含每封邮件的属性。

到目前为止,代码停在第 27 行

【问题讨论】:

标签: vba outlook


【解决方案1】:

使用 Namespace.OpenSharedItem 打开独立的 MSG 文件。

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多