MTA处理过大的电子邮件

如果MTA收到一封超过邮件大小限制的电子邮件,那么首选哪个邮件? 常用邮件服务器的默认设置是什么?

  1. 在SMTP会话期间拒绝电子邮件。 发送MTA必须向原始发件人发送退回邮件。
  2. 接受邮件并立即向原始发件人发送退回邮件。
  3. 接受邮件并在超时后向原始发件人发送退回邮件。

我已经看到一台服务器做3,并在发送反弹之前等待5天。 在我看来,这种行为没有意义,因为消息大小限制不可能经常改变。 是否应该将超出的邮件大小限制立即视为永久性错误?

RFC 1860第6.1(2)节规定,在收到大于最大大小限制的邮件时,接收服务器可能会以SMTP状态“ 552 message size exceeds fixed maximium message size ”来响应发送服务器,

MTA不需要对522的拒绝做出回应,但是这是首选方法(大多数其他MTA和邮件pipe理员都期望)。

对发件人的拒收通知由发件人MTA处理,不应该是MTA的一个因素。 您的服务器发送NDR是一个潜在的垃圾邮件问题(我使用MAIL FROM: [email protected]制作SMTP邮件,并且由于其他人的MTA不正确地向您发送了NDR,您将得到我所有的反弹)

但要直接回答你的问题。 #1是所有与SMTP有关的RFC以及普遍接受的实践和垃圾邮件减less实践的唯一方法。

请注意,我怀疑#3正在发生,因为邮箱已满,但接收系统认为它可能最终是空的接收邮件。 它可能发回一个4xx错误(临时失败),发送系统不断尝试5天,然后发送反弹给用户。

此外,作为Ruscal上述优秀总结的进一步评论,接收邮件的复杂性是您无法在DATA会话中发送该响应代码。 您必须等到数据标记(\ r \ n。\ r \ n)结束后再发送。 这意味着某些系统可能会在邮件过大时断开连接(无论如何尝试发送522响应),以防止数据大小的DoS攻击。 这是不常见的,但它是(旧)SMTP系统的一个不幸的弱点。

但是,如果两个系统都使用ESMTP 并且支持RFC 1653,那么在数据传输之前可以减轻这一点。