【问题标题】:Outlook drag-and-drop: how to get 'Internet Headers' from messageOutlook 拖放:如何从邮件中获取“Internet 标头”
【发布时间】:2016-08-19 12:11:25
【问题描述】:

即使经过任何良好的垃圾邮件/病毒过滤器,也会经常收到不受欢迎的邮件。

作为辅助墙,我们建议我们的用户检查可疑邮件属性(“互联网标头”)以验证真实来源。这个动作,对于非技术人员来说并不容易。

我写了一个简单的应用程序,将消息拖入其中并分析标头定位IP地址和来源:显然,如果消息来自您的母亲,您就知道她不在中国......

我们如何从邮件中获取“互联网标头”?那里有什么隐藏的财产吗?

Private Sub MainForm_DragDrop(sender As Object, e As DragEventArgs) Handles Me.DragDrop
    Dim myOlApp As New Outlook.Application
    Dim myExp As Outlook.Explorer = myOlApp.ActiveExplorer
    Dim myMailItem As Outlook.MailItem = DirectCast(myExp.Selection.Item(1), Outlook.MailItem)
    Dim x = myMailItem.Body
    myExp = Nothing
    myMailItem = Nothing
    myOlApp = Nothing
End Sub

这可以很好地获取正文和其他数据,例如 To、From 等,但是没有属性公开“Internet Headers”。

【问题讨论】:

标签: c# vba vb.net outlook exchange-server


【解决方案1】:

您需要阅读PR_TRANSPORT_MESSAGE_HEADERS MAPI 属性:

Dim headers As String = myMailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001F")

【讨论】:

  • 某些内部到内部的消息永远不会发送到 Internet,因此没有 Internet 标头。
  • 是的,但是 OP 专门要求提供 Internet (MIME) 标头。
  • 即使有 Internet 标头,如果您订阅了 Office 365 托管交换,您实际上也无法追溯到任何有意义的 IP,因为它们都属于 Microsoft Azure 内部。由于这个原因,我无法将任何垃圾邮件发送到我们的工作电子邮件中,我无法将其提交给像 spamcop 这样的实时黑名单。答案是正确的,但在实践中有很多情况下它是不可用的。
  • Office 365 并未被垃圾邮件发送者广泛使用 - 它不是免费的,用户必须提供可以追溯到他们的身份验证信息,例如电话号码。
  • 不,我只是说那些没有被微软阻止的垃圾邮件不能被直接作为垃圾邮件报告给实时黑名单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 1970-01-01
  • 2015-12-18
  • 2017-04-14
  • 2011-06-13
相关资源
最近更新 更多