email - 我应该使用什么启发法来防止自动应答器 war ?

标签 email

我目前正在扩展一个具有自动回复功能的电子邮件系统。在黑暗的过去,我见过一些很棒的邮件循环,现在我正在努力避免这样的事情发生在我身上。

我已经研究了其他工具(“mailbot”、“vacation”)是如何执行此操作的,在我自己的邮件存档中查找可疑的邮件 header ,但我想知道是否还有其他内容可以添加。

此时我的流程:

  1. 如果发件人地址无效,则拒绝(这应该会删除带有 <> 发件人的邮件)
  2. 如果发件人地址符合以下其中一项,则拒绝: '^root@', '^主机管理员@', '^邮政局长@', '^没人@', '^www@', '-要求@'
  3. 如果存在以下 header 之一(在空格标准化和小写之后),则拒绝: '^优先级:垃圾$', '^优先级:批量$', '^优先级:列表$', '^列表 ID:', '^内容类型:多部分/报告$', '^x-自动生成:回复$', '^自动提交:是$', '^主题:自动回复$'
  4. 如果自动回复器最近已看到发件人地址,则拒绝。
  5. 如果发件人地址是我自己的地址,请拒绝:)
  6. 接受并发送自动回复,在主题前面添加自动回复:,将 header 优先级:批量自动提交:是设置为希望能够阻止某些远程邮件程序进一步传播自动回复。

我有什么遗漏的吗?

最佳答案

在迄今为止的研究中,我已经提出了这些规则。

将入站消息视为自动生成,忽略它并将发件人列入黑名单,如果...

  • Return-Path标题是 <>或缺失/无效
  • Auto-Submitted header 存在除“no”之外的任何值
  • X-Auto-Response-Suppress header 存在
  • In-Reply-To header 丢失
    • 注意:如果我正在阅读 RFC3834正确的是,你自己的程序应该设置这个,但到目前为止,一些自动回复器似乎忽略了这个(freshdesk.com)

发送出站消息时,请务必...

  • 设置Auto-Submitted: auto-generated header (或 auto-replied 视情况而定)
  • 设置您的 SMTP MAIL FROM:具有空地址 <> 的命令
    • 请注意,包括 Amazon SES 在内的某些交付服务将在此处设置自己的值,因此这可能不可行
  • 根据入站方建立的黑名单检查收件人,并中止向已知的自动回复者发送
  • 考虑每单位时间(长如 24 小时)向给定收件人发送不超过 1 条消息

其他答案和要点的注释

  • 我认为忽略Precedence: list消息会导致误报,至少对于我的应用的配置来说是如此
  • 我认为OP的“自动提交”规则是一个拼写错误,官方标题是Auto-Submitted

引用文献

<小时/>

欢迎评论,我会更新这个答案,因为这是一个很好的问题,我希望看到一个权威的答案。

关于email - 我应该使用什么启发法来防止自动应答器 war ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5021943/

相关文章:

php - PHP SMTP服务器使用套接字: connection refused

java - 如何在JavaMail中使用2个以上的SearchTerm?

ruby-on-rails - Mandrill API 模板

android - 将附件添加到电子邮件

c# - 如何在使用 Interop 从 C# 发送电子邮件时从 Outlook 中的多个配置文件中进行选择

django - 如何将 django html 模板渲染为纯文本?

php - 在数据库种子期间禁用 Laravel 电子邮件

android - 如何为 Android 创建电子邮件,使其适合屏幕/缩小/缩放,就像在 iOS 中一样

node.js - 从 Angular 2 发送电子邮件

java - 需要一种使用 imap 搜索邮件中消息 ID 的方法