一封邮件怎样进入传输
一次SMTP邮件事务以MAIL给出返回路径,用一个或多个RCPT指定收件路径,再通过DATA传送邮件数据。服务器的回复区分接受、暂时失败和永久失败等状态。
这些路径属于传输信封,不能简单等同于正文前的From或To字段。密送、转发和投递失败通知等情况,都需要把信封与显示内容分开理解。
DATA还需要区分内容与结束标记。基础SMTP以仅含一个句点的一行结束邮件数据;若实际内容的某一行本来以句点开头,发送端就先多加一个句点,接收端按透明传输规则去掉它。这个常称dot-stuffing的步骤让正文中的句点行不被误当作提前结束,而不是把正文标点永久修改。这里描述的是DATA方式,其他传输扩展不能不加区别地套用同一分帧规则。
提交与服务器间中继
用户客户端把新邮件交给提交服务器,与邮件服务器之间继续中继,是不同运行角色。RFC 6409将提交单独说明,使用户认证、站点策略及补全缺失字段等工作有明确位置。
服务器可以排队等待下一段传输,网络不通时也可能稍后重试。SMTP的成功回复应按所处阶段解释,不能直接替代最终投递回执或收件人的阅读确认。
传输保护与邮件内容
SMTP交互本身规定的是邮件传输,不会自动为每一跳或最终存储提供端到端加密。提交和访问服务可以使用TLS保护连接,具体是隐式TLS还是协商升级,需要由相应协议明确。
一段连接受保护也不代表参与处理的邮件服务器看不到消息。账户权限、垃圾邮件治理以及内容签名或端到端保护,仍是和基础传输不同的机制。