现代电子邮件地址的处理方式与原始标准中的电子邮件地址之间存在重大差异。
根据我设置 dns 和绑定地址的经验,您可以指定不带句点的域名,但是当查询解析器时,它将添加.
到域名的末尾。您还可以在主机文件中指定直接映射。大多数主机文件包含这样的解析本地主机:
127.0.0.1 本地主机环回
这意味着如果您在带有邮件服务器的服务器上,您可以将有效的电子邮件发送到user@localhost
.
根据RFC 822:
在正式注册的情况下,组织实施(分布式)数据库,该数据库为以下形式的地址提供地址到路由映射服务:
person@registry.organization
请注意,“组织”是一个逻辑实体,独立于任何特定的通信网络。
访问“组织”的机制是普遍可用的。
反过来,该机制寻求注册表的实例化;地址说明中未指明其位置。假设以“组织”名义运行的系统知道如何找到下属注册表。然后,注册中心将使用“person”字符串来确定将邮件规范发送到哪里。
后一种面向网络的情况允许简单、直接、与附件相关的地址规范,例如:
user@host.network
在本地系统的情况下,user@host.network
只要电子邮件系统配置正确,您就可以将电子邮件发送到user@host
. 尽管这不是我们现在习惯的FQDN - 完全合格的域名,但该标准直到很久以后才出现。然后,邮件系统使用别名将其发送到正确的本地网络,将电子邮件转换为user@host.network
. 电子邮件欺骗的问题直到后来 ARPAnet 公开时才出现。
关于地址中的评论,这不在 RFC 822 中。根据后来允许评论的电子邮件规范(RFC 2822 第 3.4 节):
此外,由于某些遗留实现解释了注释,因此通常不应在地址字段中使用注释以避免混淆此类实现。
这意味着旧系统不允许地址中的评论。RFC 822没有在电子邮件地址中提及注释。
技术修复是不允许在电子邮件地址中添加评论,除非您使用自定义代码来容纳它们。您可以随时更新 Javamail。较新的实现适应更新的 RFC。