无论以何种方式拒绝被归类为垃圾邮件的电子邮件时,总是存在误报的可能性。另一方面,当接受可能是垃圾邮件的电子邮件并将其转储到垃圾邮件文件夹中时,邮箱所有者可能不会检查该文件夹并错过重要的电子邮件,而发件人则认为它已送达。
我认为对此的完美解决方案是就发件人而言拒绝该电子邮件但仍将其发送到垃圾邮件文件夹。
我的问题是:
- SMTP 服务器(就 SMTP 协议和相关 RFC 而言)在无错误收到所有内容(即所有标头和完整邮件正文)后,是否可以/允许拒绝电子邮件?
- 是否可以使用 Postfix 实现这种行为,理想情况下无需修改其代码。
答案1
正如您在评论中看到的,这是一个坏主意。微软试图用这种方法来防止电子邮件收集,他们在数据条目而不是发件人/收件人处拒绝电子邮件,这给我们这些将交换置于垃圾邮件过滤器后面的人带来了很多麻烦。(进入 Backscatter)
SMTP 拒绝是正确拒绝电子邮件的唯一方法,如果您不在 SMTP 级别拒绝,则必须接受并存储/丢弃该消息,此外,如果您在此级别拒绝,则将基于域/IP 信誉,而不是内容。服务器信誉不是您的问题。
答案2
技术上可行。但不太方便。
您的设计在这里是错误的:“[在看到 SMTP OK 后] 发送者认为它已经送达”。这在两个层面上都是不正确的。首先,目标始终是确实读过人类收件人无法阅读这封邮件,而只能将其写入磁盘。其次,现在确实没有 SMTP OK。您的设计并没有改变这一点。当服务器说“OK”时,它们的意思并不是那样;它们的意思是:“我不能说人类是否会阅读这封邮件;再见”。
现在至少 SMTP 拒绝意味着真正的拒绝。您所做的更改的主要效果是将 SMTP 拒绝改为“我不能说是否有人会阅读这封邮件;可能性很小;再见”。这与 SMTP OK 大致相同,只是语气略带负面。
总结一下人类所感知到的变化:
- 发送时看到 SMTP OK,没有什么变化发件人仍然不确定收件人是否真的阅读了电子邮件,并且仍然不确定电子邮件是否已保存到邮箱或垃圾邮件文件夹
- ...这是因为收件人可以忽略任意电子邮件。
- ...服务器可能会出现严重的实施错误
- 发送时看到 SMTP 拒绝,更多的不确定性:有人读过我的电子邮件吗?我应该重新发送吗?要重新发送多少次?天哪,为什么到目前为止我只收到 SMTP 拒绝,而有人回复了?
收件人将发生哪些变化:
- 除了正常的垃圾邮件文件夹内容外,他们现在还经常看到由于 SMTP 拒绝而导致的多次重试(包括自动重试和人工重试)。因此,更多电子邮件可供阅读, 那很糟。