代码之家  ›  专栏  ›  技术社区  ›  Robert Williams

如何确定Exchange邮件项目是否为自动回复邮件?

  •  3
  • Robert Williams  · 技术社区  · 14 年前

    我有一个.NET应用程序,它按计划轮询Exchange电子邮件邮箱中的新邮件。当在电子邮件邮箱中发现新邮件时,会进行进一步的处理。我在邮箱中收到自动回复邮件时遇到处理问题[例如,自动回复规则或外出邮件]。

    我需要一个C#解决方案来确定Exchange邮件项目是否为自动回复邮件。邮件项目上是否有一个属性指示邮件是否为自动响应邮件?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Myrddin Emrys    9 年前

    查找是否存在标头:

    X-Auto-Response-Suppress
    

    specific flags that can be set ,但在我的情况下,无论设置了哪个标志,我都不发送回复。

        2
  •  0
  •   Riaan    14 年前

    我个人使用第三方组件来协助解析电子邮件。它被称为 ListNanny .

    如果我使用ListNanny返回一个“未知”类型,那么我假设它是一个正确的电子邮件

    希望这有帮助

    编辑:

    从那里你可以手动查看邮件的标题,找到任何可能表明它是自动回复邮件的条目(在普通邮件中不会出现),然后编写你自己的电子邮件解析器,以确定邮件是否包含这些自动回复“签名”,然后将其标记为自动回复。

    我只能告诉你,当你开始的时候,你很可能会有很多假阳性,或是假阳性的电子邮件,但这会在一段时间后变得更好,在你处理了更多的电子邮件并完善了你的签名之后。

    抱歉,我无法提供更多的帮助,以提供代码样本或其他想法你。

        3
  •  0
  •   Robert Williams    14 年前

    在与这个问题斗争了一段时间之后,我决定尽可能使用最简单的方法。

    我很确定附加属性是邮件项目头中的“Return Path:”值,但我还没有找到一种简单的方法来获取该属性。据我所知,如果“返回路径”有一个“<&燃气轮机值,则它是自动回复邮件,否则它将具有有效的电子邮件地址。

        4
  •  0
  •   Chad H    6 年前

    它还指示它是OofTemplate还是NDR(bounce)。下面列出了一些类:

    https://docs.microsoft.com/en-us/office/vba/outlook/Concepts/Forms/item-types-and-message-classes

    所以基本的想法是检查。。。

    if(item.ItemClass != "IPM.Note")