i have some code that prints to the immediate window the exchange header if found. that works great for in-house messages. but if the email is from another source, then it error's out (Im trapping that) with error 5. how can i get the headers of anyone's email with VBA (if possible)?
Function GetSender() As String Dim Exp As Outlook.Explorer Dim ItemCrnt As MailItem Dim PropAccess As Outlook.PropertyAccessor Dim arr As Variant Dim x, y As Double, z Dim a, b, c, e, f Set Exp = Outlook.Application.ActiveExplorer Dim count As Long On Error GoTo errhandler If Exp.Selection.count = 0 Then Debug.Print "No emails selected" Else For Each ItemCrnt In Exp.Selection With ItemCrnt Set PropAccess = .PropertyAccessor arr = PropAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E") y = InStr(arr, "From:") z = InStr(arr, "To:") a = Mid(arr, y, z - y) b = InStr(a, "<") e = InStr(a, ">") c = Mid(a, b + 1, e - b - 1) 'Stop GetSender = c Debug.Print arr End With Next End If errhandler: If Err.Number = 5 Then Debug.Print "Not an exchange server email" Else If Err.Number <> 0 Then Debug.Print Err.Number & " " & Err.Description End If End Function





Reply With Quote