如何识别人类发送的电子邮件?

Kul*_*ade 3 email imap email-spam email-headers imaplib

我正在开发一个项目,需要识别真人发送的电子邮件,而不是批量邮件、通知和时事通讯。有什么明确的方法可以做到这一点吗?电子邮件标题中是否有任何可以提供帮助的信息。我正在 Gmail IMAP 上工作,因此我已经有非垃圾邮件。

感谢这方面的任何帮助。谢谢!

Sim*_*yer 5

没有明确的方法来区分批量邮件和个性化邮件。与垃圾邮件不同,大多数批量邮件都是请求/预期的,因此发件人不会做奇怪的事情来绕过垃圾邮件过滤器,这意味着这些电子邮件通常会很好地融合在一起。

但是,您可以寻找一些趋势。如果您想可靠地做到这一点,您可能需要应用一些评分系统,例如垃圾邮件过滤器。

您还需要接受这样的事实:您必然会得到很大比例的误报和漏报。

批量邮件中常见的一些内容在个性化信件中很少出现:

  1. “收件人”和“抄送”地址不包含本地收件人。有时发件人会发送到“mailList@mydomain.com”,而不是“recipientA@recipientAdomain.com”、“recipientB@recipientBdomain.com”等。在这些情况下,“收件人”中也可能只出现一个地址并且“抄送”中没有出现任何内容
  2. “发件人”地址是“noreply@”、“newsletter@”、“do-not-reply@”、“mailinglist@”,甚至是不太常见的术语,如“support@”或“sales@”(但请记住,它们可能会导致误报)
  3. 存在“ List-Unsubscribe: ”标头
  4. 该消息包含取消订阅链接。运行模式匹配以查找电子邮件最后几行中的常见短语。寻找链接或“取消订阅”、“选择退出”等词语。
  5. 邮件列表往往内容丰富。检查是否大量使用 CSS 和大量图像,整个消息是否包含在<table></table><ul><li></li></ul>结构中。即 Dreamweaver 之类的东西会放入其中,而不是邮件客户端。
  6. 邮件顶部的标题或粗体内容。如果消息的第一部分类似于新闻通讯,那么它可能是新闻通讯。
  7. 大量链接或频繁链接到相同(或相同的少数)网站。时事通讯将尽力引导用户访问公司网站。如果链接的域与发件人域匹配(或相似),您可能会获得更高的分数。
  8. 大量引用社交媒体。如果它是包含多篇文章的时事通讯,则每个故事可能都有自己的“推文”、“点赞”链接。个人用户可能(最多)包含一次对 Twitter、Facebook 等的引用(在他们的签名中)
  9. 通知和其他自动生成的消息通常遵循相同的基本格式。如果您有能力,请对以前的消息运行某种差异或其他比较。强匹配意味着自动化。
  10. 没有问候语,也没有通用的问候语。然而,个人电子邮件通常也会跳过“亲爱的弗雷德”位,因此这本身并不是一个足够好的检测;但像“亲爱的用户”或“亲爱的客户”这样的词几乎肯定是通用的。
  11. 不太可能以“此致,伊恩”或“此致,约翰·多伊”结尾
  12. 发件人之前评分很高。保持纪录。如果发件人多次触发高分,则几乎可以肯定他们是批量邮件。