为什么 SMTP 中的数据不是空终止的?
Why is the DATA in SMTP not null terminated?
我在阅读有关 SMTP 协议的原始 RPC 时遇到了这一部分:
SMTP indicates the end of the
mail data by sending a line containing only a period.
为什么 Postel 决定使用句点作为终止符?使用已经存在的空终止符不是更容易吗?
我明白了,他不希望用户内容干扰协议,但我会天真地假设,用户更有可能在一行中使用句号而不是空终止符?
除此之外,如果用户开始使用他的邮件内容的空终止符,邮件客户端的实现会不会只是剪切文本?
恕我直言: SMTP 很久以前就被设计为 人类 readable/writable.
通过 telnet
程序手动输入它们进行测试(发送简单的 SMTP 消息)非常简单。
“人类可读”使空终止符成为次优选择。
EMSMTP 设计是前垃圾邮件时代的化石。它很糟糕(按照当前标准),但它被如此广泛地实施并且足够好(在修复之后)使得任何快速的革命都“不够紧迫”。
额外信息:RFC 3030 BDAT
替代 DATA
命令。
我在阅读有关 SMTP 协议的原始 RPC 时遇到了这一部分:
SMTP indicates the end of the mail data by sending a line containing only a period.
为什么 Postel 决定使用句点作为终止符?使用已经存在的空终止符不是更容易吗?
我明白了,他不希望用户内容干扰协议,但我会天真地假设,用户更有可能在一行中使用句号而不是空终止符? 除此之外,如果用户开始使用他的邮件内容的空终止符,邮件客户端的实现会不会只是剪切文本?
恕我直言: SMTP 很久以前就被设计为 人类 readable/writable.
通过 telnet
程序手动输入它们进行测试(发送简单的 SMTP 消息)非常简单。
“人类可读”使空终止符成为次优选择。
EMSMTP 设计是前垃圾邮件时代的化石。它很糟糕(按照当前标准),但它被如此广泛地实施并且足够好(在修复之后)使得任何快速的革命都“不够紧迫”。
额外信息:RFC 3030 BDAT
替代 DATA
命令。