5. 安全考虑事项
在终端或终端模拟器上显示消息时需要谨慎. 功能强大的终端可能对转义序列以及 US-ASCII 控制字符的其他组合做出反应, 并产生各种后果. 它们可能重新映射键盘, 或允许对终端进行可能造成拒绝服务甚至数据损坏的其他修改. 它们可能触发 (有时可编程的) 应答消息, 从而使一条消息能够以收件人的名义发出命令. 它们还可能影响打印机等终端附属设备的运行. 消息查看程序可能希望在其显示之前从消息中去除有潜在危险的终端转义序列. 然而, 其他转义序列出现在消息中是出于有用的目的 (参见 [ISO.2022.1994], [RFC2045], [RFC2046], [RFC2047], [RFC2049], [RFC4288], [RFC4289]), 因此不应当不加区分地去除.
在消息中传输非文本对象会带来额外的安全问题. 这些问题在 [RFC2045], [RFC2046], [RFC2047], [RFC2049], [RFC4288] 和 [RFC4289] 中讨论.
许多实现使用第 3.6.3 节所述的 "Bcc:" (blind carbon copy, 密送) 字段, 以便在不向其他收件人透露一个或多个收件人地址的情况下把消息发送给他们. 错误处理这种 "Bcc:" 用法可能会泄露机密信息, 而知晓某个特定邮件地址的存在本身最终都可能导致安全问题. 例如, 如果使用第 3.6.3 节所述的第一种方法 (从消息中删除 "Bcc:" 行), 那么密送收件人除了看到自己的地址未出现在消息头部段中之外, 没有任何明确的迹象表明自己收到了密送副本. 因此, 密送收件人之一有可能向所有可见收件人发送回复, 从而意外泄露该消息也发给了密送收件人. 当使用第 3.6.3 节中的第二种方法时, 密送收件人的地址会出现在该消息单独副本的 "Bcc:" 字段中. 如果所发送的 "Bcc:" 字段包含所有密送收件人, 那么每个 "Bcc:" 收件人都会看到所有 "Bcc:" 收件人. 即使向每个 "Bcc:" 收件人单独发送一份只包含该个人地址的消息, 实现仍然需要小心地按照第 3.6.3 节处理对该消息的回复, 以免意外把密送收件人透露给其他收件人.