SMTP点填充..何时何地做?

tra*_*lad 11 email smtp rfc

我在发送电子邮件时发现有关点填充的相互矛盾的信息.

  1. 如果该行包含一个点,则填充一个点(以避免提前终止)
  2. 在每个行中填充一个点,以点开头
  3. 只将一个点加到(1)和引用的可打印消息部分的每一行部分

任何人都可以澄清吗?

chu*_*hus 23

根据SMTP标准RFC 5321,第4.5.2节:

http://tools.ietf.org/html/rfc5321#section-4.5.2

要允许透明传输所有用户组合文本,请使用以下过程:

  • 在发送一行邮件文本之前,SMTP客户端会检查该行的第一个字符.如果是句点,则在行的开头插入一个附加句点.
  • 当SMTP服务器收到一行邮件文本时,它会检查该行.如果该行由单个句点组成,则将其视为邮件结尾指示符.如果第一个字符是句点并且该行上还有其他字符,则删除第一个字符.

所以,从你问题的三个方面来看,第二个是正确的.


小智 5

实用的答案:如果您使用引用的可打印格式,则始终将点转换为 =2E。您不能依赖所有 smtp 服务器都正确删除点。

如果您想假设整个世界都符合标准,请使用上面的答案 2。