如何使用VBA从PR_TRANSPORT_MESSAGE_HEADERS获取电子邮件地址

埃里奥·费尔南德斯

如何使用VBAPR_TRANSPORT_MESSAGE_HEADERS获取电子邮件地址

我一直在尝试一些正则表达式,但从未使用过它,并且遇到了一些问题。

我需要从“收件人:”,“发件人”和“抄送:”中检索电子邮件地址

托尼·达利摩(Tony Dallimore)

每当我要调查新的邮件项目属性时,下面的宏都会变大。我添加一个或多个新属性,注释掉我今天不需要的那些属性,选择一些相关的电子邮件并运行宏。然后,我可以在闲暇时检查桌面文件“ DemoExplorer.txt”。

我添加了所有与您的需求相关的“非标准”属性。多数似乎与“标准特性”重复。似乎唯一有用的是PR_TRANSPORT_MESSAGE_HEADERS的“ To:”行。电子邮件地址已从标准的“收件人”属性中删除,但它们显示在“收件人:”行中。

希望这可以帮助。

Public Sub DemoExplorer()

  ' Outputs selected properties of selected emails to a file.

  ' ???????  No record of when originally coded
  ' 22Oct16  Output to desktop file rather than Immediate Window.
  ' Various  New properties added as necessary

  ' Technique for locating desktop from answer by Kyle:
  ' http://stackoverflow.com/a/17551579/973283

  ' Source of PropertyAccessor information:
  ' https://www.slipstick.com/developer/read-mapi-properties-exposed-outlooks-object-model/

  ' Needs reference to Microsoft Scripting Runtime if "TextStream"
  ' and "FileSystemObject" are to be recognised

  Dim AttachCount As Long
  Dim AttachType As Long
  Dim FileOut As TextStream
  Dim Fso As FileSystemObject
  Dim Exp As Outlook.Explorer
  Dim InxA As Long
  Dim InxR As Long
  Dim ItemCrnt As MailItem
  Dim NumSelected As Long
  Dim Path As String
  Dim PropAccess As Outlook.propertyAccessor

  Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")

  Set Fso = CreateObject("Scripting.FileSystemObject")
  Set FileOut = Fso.CreateTextFile(Path & "\DemoExplorer.txt", True)

  Set Exp = Outlook.Application.ActiveExplorer

  NumSelected = Exp.Selection.Count

  If NumSelected = 0 Then
    Debug.Print "No emails selected"
  Else
    For Each ItemCrnt In Exp.Selection
      With ItemCrnt
        FileOut.WriteLine "--------------------------"
        FileOut.WriteLine "From (Sender): " & .Sender
        FileOut.WriteLine "From (Sender name): " & .SenderName
        FileOut.WriteLine "From (Sender email address): " & .SenderEmailAddress
        FileOut.WriteLine "Subject: " & CStr(.Subject)
        FileOut.WriteLine "Received: " & Format(.ReceivedTime, "dMMMyy h:mm:ss")
        FileOut.WriteLine "To: " & .To
        FileOut.WriteLine "CC: " & .CC
        FileOut.WriteLine "Recipients: " & .Recipients(1)
        For InxR = 2 To .Recipients.Count
          FileOut.WriteLine Space(12) & .Recipients(InxR)
        Next
        'FileOut.WriteLine "Text: " & Replace(Replace(Replace(.Body, vbLf, "{lf}"), vbCr, "{cr}"), vbTab, "{tb}")
        'FileOut.WriteLine "Html: " & Replace(Replace(Replace(.HtmlBody, vbLf, "{lf}"), vbCr, "{cr}"), vbTab, "{tb}")
        'AttachCount = .Attachments.Count
        'FileOut.WriteLine "Number of attachments: " & AttachCount
        'For InxA = 1 To AttachCount
        '  AttachType = .Attachments(InxA).Type
        '  FileOut.WriteLine "Attachment " & InxA
        '  FileOut.Write "  Attachment type: "
        '  Select Case AttachType
        '    Case olByValue
        '      FileOut.WriteLine "By value"
        '    Case olEmbeddeditem
        '      FileOut.WriteLine "Embedded item"
        '    Case olByReference
        '      FileOut.WriteLine "By reference"
        '    Case olOLE
        '      FileOut.WriteLine "OLE"
        '    Case Else
        '      FileOut.WriteLine "Unknown " & AttachType
        '  End Select
        '  ' I recall PathName giving an error for some types
        '  On Error Resume Next
        '  FileOut.WriteLine "  Path: " & .Attachments(InxA).PathName
        '  On Error GoTo 0
        '  FileOut.WriteLine "  File name: " & .Attachments(InxA).FileName
        '  FileOut.WriteLine "  Display name: " & .Attachments(InxA).DisplayName
        '  ' I do not recall every seeing a parent but it is listed as a property
        '  ' but for some attachment types it gives an error
        '  On Error Resume Next
        '  FileOut.WriteLine "  Parent: " & .Attachments(InxA).Parent
        '  On Error GoTo 0
        '  FileOut.WriteLine "  Position: " & .Attachments(InxA).Position
        'Next

        Set PropAccess = .propertyAccessor

        FileOut.WriteLine "PR_RECEIVED_BY_NAME: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0040001E")
        FileOut.WriteLine "PR_SENT_REPRESENTING_NAME: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0042001E")
        FileOut.WriteLine "PR_REPLY_RECIPIENT_NAMES: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0050001E")
        FileOut.WriteLine "PR_SENT_REPRESENTING_EMAIL_ADDRESS: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0065001E")
        FileOut.WriteLine "PR_RECEIVED_BY_EMAIL_ADDRESS: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0076001E")
        FileOut.WriteLine "PR_TRANSPORT_MESSAGE_HEADERS:" & vbLf & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E")
        FileOut.WriteLine "PR_SENDER_NAME: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0C1A001E")
        FileOut.WriteLine "PR_SENDER_EMAIL_ADDRESS: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0C1F001E")
        FileOut.WriteLine "PR_DISPLAY_BCC: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0E02001E")
        FileOut.WriteLine "PR_DISPLAY_CC: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0E03001E")
        FileOut.WriteLine "PR_DISPLAY_TO: " & _
                           PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0E04001E")

        Set PropAccess = Nothing
      End With
    Next
  End If

  FileOut.Close

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

来自分类Dev

使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

来自分类Dev

如何从推特获取电子邮件地址

来自分类Dev

如何从vk.api获取电子邮件地址?

来自分类Dev

Outlook 帐户 - 如何获取 Exchange 电子邮件地址?

来自分类Dev

使用Excel VBA获取发件人的电子邮件地址

来自分类Dev

使用ContactsApp获取电子邮件地址

来自分类Dev

VBA函数解析电子邮件正文以获取电子邮件地址,并写入Excel

来自分类Dev

如何使用VBA将文本引用到相应的电子邮件地址

来自分类Dev

如何使用Firebase电子邮件地址验证

来自分类Dev

如何使用Express / Node确认电子邮件地址?

来自分类Dev

如何使用vuelidate验证电子邮件地址?

来自分类Dev

如何使用Python解码编码的电子邮件地址?

来自分类Dev

如何使用Selenium Python打印电子邮件地址

来自分类Dev

如何使用GnuPG管理多个电子邮件地址?

来自分类Dev

如何使用jQuery验证电子邮件地址?

来自分类Dev

如何使用Python MAPI从Outlook获取“收件人”名称和电子邮件地址

来自分类Dev

如何使用Google Oauth .NET库获取用户的电子邮件地址

来自分类Dev

如何使用 Microsoft 的 EWS API 2.0 获取联系人的电子邮件地址?

来自分类Dev

如何隐藏电子邮件地址

来自分类Dev

如何隐藏电子邮件地址?

来自分类Dev

如何处理:使用相同的电子邮件地址获取所有行,对ID进行操作,然后通过电子邮件发送一次

来自分类Dev

我如何从python电子邮件对象获取实际的电子邮件地址作为字符串

来自分类Dev

如何从python电子邮件对象获取实际的电子邮件地址作为字符串

来自分类Dev

如何使用C#和客户端对象模型从PeoplePicker字段获取电子邮件地址

来自分类Dev

如何使用访问令牌获取电子邮件地址和Facebook用户的一些基本信息

来自分类Dev

如何使用API 3.0从MailChimp列表中获取按电子邮件地址过滤的单个记录

来自分类Dev

如何使用 SSAS 表格模型中的 DAX 公式从电子邮件地址获取用户名

来自分类Dev

如何使用 Microsoft Graph sdk 通过电子邮件地址从 Active Directory 获取用户信息

Related 相关文章

  1. 1

    使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

  2. 2

    使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

  3. 3

    如何从推特获取电子邮件地址

  4. 4

    如何从vk.api获取电子邮件地址?

  5. 5

    Outlook 帐户 - 如何获取 Exchange 电子邮件地址?

  6. 6

    使用Excel VBA获取发件人的电子邮件地址

  7. 7

    使用ContactsApp获取电子邮件地址

  8. 8

    VBA函数解析电子邮件正文以获取电子邮件地址,并写入Excel

  9. 9

    如何使用VBA将文本引用到相应的电子邮件地址

  10. 10

    如何使用Firebase电子邮件地址验证

  11. 11

    如何使用Express / Node确认电子邮件地址?

  12. 12

    如何使用vuelidate验证电子邮件地址?

  13. 13

    如何使用Python解码编码的电子邮件地址?

  14. 14

    如何使用Selenium Python打印电子邮件地址

  15. 15

    如何使用GnuPG管理多个电子邮件地址?

  16. 16

    如何使用jQuery验证电子邮件地址?

  17. 17

    如何使用Python MAPI从Outlook获取“收件人”名称和电子邮件地址

  18. 18

    如何使用Google Oauth .NET库获取用户的电子邮件地址

  19. 19

    如何使用 Microsoft 的 EWS API 2.0 获取联系人的电子邮件地址?

  20. 20

    如何隐藏电子邮件地址

  21. 21

    如何隐藏电子邮件地址?

  22. 22

    如何处理:使用相同的电子邮件地址获取所有行,对ID进行操作,然后通过电子邮件发送一次

  23. 23

    我如何从python电子邮件对象获取实际的电子邮件地址作为字符串

  24. 24

    如何从python电子邮件对象获取实际的电子邮件地址作为字符串

  25. 25

    如何使用C#和客户端对象模型从PeoplePicker字段获取电子邮件地址

  26. 26

    如何使用访问令牌获取电子邮件地址和Facebook用户的一些基本信息

  27. 27

    如何使用API 3.0从MailChimp列表中获取按电子邮件地址过滤的单个记录

  28. 28

    如何使用 SSAS 表格模型中的 DAX 公式从电子邮件地址获取用户名

  29. 29

    如何使用 Microsoft Graph sdk 通过电子邮件地址从 Active Directory 获取用户信息

热门标签

归档