检测 Outlook 自动回复/外出电子邮件
Posted
技术标签:
【中文标题】检测 Outlook 自动回复/外出电子邮件【英文标题】:Detecting Outlook autoreply/out-of-office emails 【发布时间】:2010-11-04 20:55:22 【问题描述】:一直在谷歌上搜索并没有找到任何东西......
有没有人知道如果给定一个 Outlook 电子邮件项目,是否有办法检测它是否是由“外出助理”发送的? Outlook 是否在对象上设置了任何属性或任何标头信息来标识电子邮件?我希望不必解析“外出”等主题行。
如果有一些标准那就太好了,这样其他电子邮件服务(如 Gmail)的自动回复也可以被检测到,但对我来说 Outlook 是最高优先级。
【问题讨论】:
这是我遇到的最佳答案***.com/questions/154718/precedence-header-in-email/…。如果您与自动回复人连接到同一个交换服务器,您可能可以使用交换项目上的属性,如 social.technet.microsoft.com/Forums/office/en-US/… 【参考方案1】:该问题询问有关检测自动回复/外出电子邮件的问题,此处的许多答案都参考了X-Auto-Response
标头,该标头指示 Microsoft Exchange 如何处理带有自动响应的传入邮件。 这是错误的方向;键入此标头无助于检测自动响应消息。(尽管理论上自动响应会使用它来防止自动响应的无限交换。)
其他答案中有很多死链接。看来微软的文档链接不持久。
[MS-OXCMAIL]:RFC 2822 和 MIME 到电子邮件对象转换算法§2.1.3.2.20 Auto Response Suppress (archive link) 似乎是此标头的当前权威文档(尽管 RFC 2822 是2008 年被RFC 5322 淘汰)。
X-Auto-Response-Suppress 标头值:
Header | Meaning |
---|---|
None | (No meaning given, but this should be self-explanatory) |
All | (No meaning given, but this should be self-explanatory) |
DR | Suppress delivery reports from transport. |
NDR | Suppress non-delivery reports from transport. |
RN | Suppress read notifications from receiving client. |
NRN | Suppress non-read notifications from receiving client. |
OOF | Suppress Out of Office (OOF) notifications. |
AutoReply | Suppress auto-reply messages other than OOF notifications. |
示例标题:
X-Auto-Response-Suppress: RN, NRN
顺序无关紧要。
我个人觉得NDR
很奇怪,因为它是退回邮件的另一个名称,通常不会观察邮件内容(即标题)。这是 SMTP 级别 (RFC 821/2821/5321) 而不是 .eml 级别 (RFC 822/2822/5322)。
在大约百万封电子邮件的样本中,我观察到此标头最常见的值是:
All
DR, OOF, AutoReply
DR, RN, NRN, OOF, AutoReply
OOF
DR, RN, OOF, AutoReply
OOF, AutoReply
【讨论】:
【参考方案2】:我查看了 Outlook 自动回复电子邮件的标题,但没有发现任何特别之处。 您可以在这里尝试一个小技巧 - 只需跟踪您的邮件服务器向用户发送邮件的时间。如果邮件服务器在几秒钟内(比如不到 10 秒)收到回复邮件,它可能是自动回复。将此与主题解析结合起来,以更好地检测自动回复邮件。它不是一个具体的方法,但我想它会起作用。
【讨论】:
【参考方案3】:根据Exchange Server 2007 Out of Office (OOF)1 - Exchange Team Blog,Exchange 外出回复的权威标志是
X-Auto-Response-Suppress:OOF
1“OOF”表示“设施外”,a rudiment from Xenix(!) that M$ used for mail in the past。
【讨论】:
【参考方案4】:查找这些标题:
x-自动回复 precedence 或 x-precedence,值为“auto_reply”、“bulk”或“junk” 自动提交,值为“自动回复” x-auto-response-suppress(并非总是如此,请参阅下面的答案)主题以:
开头 自动: 自动回复 Autosvar Automatisk svar Automatisch antwoord Abwesenheitsnotiz Risposta 非计算机 Automatisch antwoord 自动回复 自动回复 福里赛德 不在办公室 弗朗瓦罗 自动响应【讨论】:
通过检查标题,是否还需要检查主题行? 我见过没有为外出回复设置任何标题的情况 - 不知道为什么。所以,为了 100% 确定,我还要检查主题行。【参考方案5】:这个问题在谷歌经常出现,所以我决定添加一个重要说明。
永远不要按照其他答案中的建议在过滤器中使用X-Auto-Response-Suppress
。
X-Auto-Response-Suppress
被 Exchange 用来告诉其他服务器不要发送自动回复以响应电子邮件。这并不意味着这封电子邮件是自动回复的。
我们不得不通过艰苦的方式学习它,希望您不必这样做。我还写了一篇博文,详细介绍:http://www.jitbit.com/maxblog/18-detecting-outlook-autoreplyout-of-office-emails-and-x-auto-response-suppress-header/
【讨论】:
谢谢 - 我在我的列表中添加了一条注释。我也确实在自动回复中找到了这个标题,但你是对的,这里必须小心。 我最喜欢这个答案,所以要将您博客中的信息复制到可以存档的地方,摘要是使用X-Autoreply
、X-Autorespond
和 auto-submitted: auto-replied
来检测回复,然后将X-Auto-Response-Suppress:OOF
添加到您自己的消息中,以请求不首先发送自动回复。
是的!例如,Atlassian 使用设置为“All”的“X-Auto-Response-Suppress”标头发送他们的“验证您的电子邮件”。不要问我为什么,但如果你过滤这个,你将永远不会收到他们的电子邮件......【参考方案6】:
值得注意的是,Exchange 应该禁止外出电子邮件以响应带有Precedence:bulk
或X-Auto-Response-Suppress:OOF
标头的邮件:
http://blogs.technet.com/b/exchange/archive/2006/10/06/3395024.aspx
【讨论】:
关于较新的 Exchange:除了X-Auto-Response-Suppress:OOF
不正确,正如其他人所解释的那样(你用它来 request 首先没有得到自动响应,而不是 声明您的电子邮件作为自动回复),我发现我根本没有收到Precedence
标头。相反,Exchange 设置:Auto-Submitted: auto-generated
(不是自动回复的!)【参考方案7】:
有一个标题字段 (http://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml) 但似乎 MS Outlook 没有设置它(至少不是 Outlook 2003)。 我猜你必须解析主题行。
【讨论】:
那真是太好了,但不幸的是,对于任何 Microsoft 产品来说,该提案似乎都太新了 (2008-12-23)。 主题非常脆弱; Oulook 的本地化版本具有本地化的主题。但是,即使您能够获得每个版本的 Outlook(和 Exchange 等)中所有翻译的列表,这也容易出现误报。 我用 Outlook 2010 和 Exchange 2010 进行了测试,自动回复具有“自动提交:自动回复”属性。 Office 365 目前将这些有趣的标题放在X-Auto-Response-Suppress: All
、Auto-Submitted: auto-generated
、X-MS-Exchange-Inbox-Rules-Loop: the-mailbox-primary-smtp-address
但是在你去比赛之前使用X-Auto-Response-Suppress
,就像我打算... jitbit.com/maxblog/…以上是关于检测 Outlook 自动回复/外出电子邮件的主要内容,如果未能解决你的问题,请参考以下文章