我写了一个电子邮件客户端,不时发现一些收到的邮件中的链接失败了,因为URL中有两个点应该有一个.
通过调查,我发现在所有这些情况下,这两个点位于引用可打印HTML行的开头.
在阅读RFC 2821时,我发现这可能是因为点填充而发生的.我的问题基本上是,谁应该做点填充,谁应该删除它?
如果我们采用简单的序列,我们有如下:
A ----> B ----> C ----> D
Run Code Online (Sandbox Code Playgroud)
其中A是发送客户端,B是A发送邮件的SMTP服务器,C是收件人的SMTP服务器,D是接收客户端.
RFC 2821似乎说如果一行以点开头,A应该添加一个额外的点,而B应该删除它(这对我来说是有道理的).然而,我在实践中观察到的是,如果A忘记了,B会添加一个点,否则什么都不做.到达D的邮件没有删除额外的点.我是否误解了RFC,因此删除额外的点是D的工作吗?