我在发送电子邮件时发现了有关点填充的相互矛盾的信息。
任何人都可以澄清吗?
答案 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协议将其视为邮件终止,因此只传递一部分邮件。
所以整个想法是通过填充额外的点来避免这种情况。