如果电子邮件的本地部分末尾有破折号(-),它是否是有效的电子邮件?[...] Google说这是无效的,所以暂时我也认为它也是无效的,尽管RFC仅在本地部分的开始和/或结束处排除了[点]字符。
没错 您只会看到它被Google拒绝了,因为它执行了完全不同的检查- 与许多其他提供商一样,他们对本地部分可以有自己的政策。
Google或其他任何人都有义务接受所有可能有效的电子邮件地址,除非该表格实际上是在要求现有的有效电子邮件地址(可能是来自提供商)。例如,如果Gmail的“ 收件人:/抄送:”字段拒绝了有效地址,那将是一个错误。
但是,您突出显示的字段不会要求您提供现有的电子邮件地址;它要求在Google系统上提供一个帐户名,只有在创建帐户后,该名称才会作为电子邮件地址的基础。没有什么可以阻止Google或其他任何人在自己的系统上限制有效帐户名(甚至,甚至邮箱名)的集合。
或者换句话说,为“本地部分”定义允许的字符仅意味着邮件应用程序SMTP服务器必须在RFC 822标头和SMTP命令中接受此类地址-但未提及能够创建此类邮箱的任何内容。(实际上,早在撰写早期电子邮件RFC时,大多数邮箱仍与操作系统级帐户绑定,它们的名称具有相似甚至更严格的限制。)
例如,RFC 5321的这一部分(ABNF下方的4.1.2节)明确表示,允许接收主机,并且实际上应该对自己的邮箱的命名方式有更严格的限制:
虽然以上对本地部分的定义是相对允许的,但为了获得最大的互操作性,希望接收邮件的主机应避免在本地部分需要(或使用)引号字符串形式或本地部分为大小写的情况下定义邮箱-敏感。
因此,尽管anunusualemail-@gmail.com
从语法上讲是有效的,但这并不意味着Google必须允许您创建它。