跳到主要内容

1. 引言 (Introduction)

SMTP 被定义为 message transfer protocol, 即一种用于路由 (如需要) 并投递已完成 (complete) message 的方式.

Message Transfer Agent (MTA) 不应更改 message text, 除非按 [SMTP-MTA] 要求添加 'Received', 'Return-Path' 和其他 header field.

然而, SMTP 现在也被广泛用作 message submission protocol, 即 Message User Agent (MUA) 将新 message 引入 MTA routing network 的方式. 接受来自 MUA 的 message submission 的进程称为 Message Submission Agent (MSA).

为了允许不受约束的通信, SMTP 在 message relay 期间通常不进行 authentication.

随着安全要求变化, 以及人们越来越期望 submission server 对其发出的 message traffic 负责, initial submission 的 authentication 和 authorization 已变得越来越重要.

例如, 由于大量感染 worm, virus 或其他恶意软件的机器会生成大量 spam, 许多站点现在禁止标准 SMTP port (port 25) 上的 outbound traffic, 并将所有 mail submission 汇聚到 submission server.

除 authentication 和 authorization 问题外, 正在提交的 message 有时是已完成 (complete) message, 有时则在一个或多个方面未完成 (incomplete). unfinished message 可能需要补全, 以确保其符合 [MESSAGE-FORMAT] 及后续要求. 例如, message 可能缺少适当的 'Date' header field, domain 也可能不是 fully qualified. 在某些情况下, MUA 可能无法生成 finished message (例如它可能不知道自己的 time zone). 即使 submitted message 是完整的, local site policy 也可能要求以某种方式检查或修改 message text, 例如隐藏本地 name 或 address space. 已经证明, 当 downstream MTA -- 即 first-hop submission MTA 之后的 MTA -- 执行这类补全或修改时可能造成损害, 并且通常认为这超出标准化 MTA 功能范围.

将 message 区分为 submission 和 transfer, 可以让 developer 和 network administrator 更容易执行以下工作:

  • 实施 security policy, 并防止未授权 mail relaying 或 unsolicited bulk mail 注入

  • 实施 authenticated submission, 包括授权用户 (如旅行者) 的 off-site submission

  • 分离相关软件代码差异, 使每个 code base 更直接, 并允许 relay 和 submission 使用不同程序

  • 检测站点 mail client 的配置问题

  • 为未来添加增强 submission service 提供基础

本备忘录描述一种低成本, 确定性的方式, 用于将 message 标识为 submission, 并规定 submission server 应采取的动作.