历史上,为什么关于电子邮件地址的RFC很复杂?

RFC 5321,5322和6531对验证电子邮件地址具有复杂的规则。 他们:

  • 允许在电子邮件地址中创建评论
  • 为符号提供复杂的限制规则: "() ,:;<>@[]
  • 对待postmaster localpart不区分大小写,但所有其他区分大小写
  • 允许一组电子邮件地址
  • 由于这些复杂的规则,根据RFC测试给定字符串是否是语法上有效的电子邮件地址不能仅使用正则表达式执行。

    显然,这些规则中的很多并不受主要电子邮件提供商的支持。

    从历史上看,创建如此复杂的电子邮件地址规则的动机是什么? 关于电子邮件起源的维基百科文章似乎意味着,从20世纪80年代初开始的现代标准旨在用他们特定的标准和语法覆盖所有传统的电子邮件系统。

    但是,标准实施者,电子邮件提供商和电子邮件最终用户都对工作系统有着既得利益,当规则不是太神秘并且可以轻松投入到通过有限数量的测试的软件中时更容易实现,那么为什么我们今天有一个如此复杂的标准,没有人全面使用它呢?

    从历史上看,XML在很大程度上已被JSON所取代,其成功部分归因于其语法的简单性。


    查看提供的电子邮件地址是否真实的唯一可靠方法是发送一封电子邮件,并查看用户是否收到该电子邮件地址。 可以在地址上执行的一项有用检查是检查电子邮件地址是否在语法上有效。 这就是这个模块所做的。

    发送邮件的系统必须能够处理所有有效地址的传出邮件。 与相关标准相反,某些有缺陷的系统将某些合法地址视为无效,并且无法处理发往这些地址的邮件。 例如,Hotmail拒绝发送邮件到任何包含以下任何标准允许字符的地址:!#$%* /?^ {{}}〜

    只有不同的标准,其中一些非常严格,因此很复杂。

    链接地址: http://www.djcxy.com/p/92915.html

    上一篇: Historically, why were the RFCs about email addresses made so complicated?

    下一篇: NVARCHAR(?) for Email addresses in SQL Server