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

时间:2013-03-05 12:47:58

标签: email smtp rfc

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

    如果该行包含一个点(以避免提前终止),则
  1. 填充一个点
  2. 用点
  3. 给每个行开始一个点
  4. 将点加点到(1)和引用的可打印消息部分的每一行部分
  5. 任何人都可以澄清吗?

3 个答案:

答案 0 :(得分:21)

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

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

  

要允许透明传输所有用户撰写的文本,请使用以下步骤:

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

所以,从你提问的三点来看,第二点是正确的。

答案 1 :(得分:4)

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

如果你想假设整个世界都符合标准,那么请按照上面的答案2进行操作。

答案 2 :(得分:0)

在SMTP协议中,邮件由单个点和换行符终止

简单来说就像:

  

\ r \ n。\ r \ n

字符:

  

CR LF DOT CR LF

对应于一行开头的单个点。

如果邮件数据包含单个邮件。在行的开头,后跟一个新的行字符,然后SMTP协议将其视为邮件终止,因此只传递一部分邮件。

所以整个想法是通过填充额外的点来避免这种情况。