2012-03-30 17 views
8

RFCs 532153226531對驗證電子郵件地址有複雜的規則。他們:歷史上,爲什麼有關電子郵件地址的RFC變得如此複雜?

  • 允許creating comments的電子郵件地址中
  • 提供複雜的符號限制規則:"() ,:;<>@[\]
  • 治療postmaster的localpart爲不區分大小寫的,但所有其他區分大小寫
  • 允許groups of email addresses

由於這些複雜的規則,測試給定的字符串是否是一個語法上有效的電子郵件地址根據th e RFC RFC​​僅使用正則表達式。

顯然,這些規則中的很多不受主要電子郵件提供商的支持。

從歷史上看,創建如此複雜的電子郵件地址規則的動機是什麼? Wikipedia article on the origins of email似乎意味着從二十世紀八十年代早期開始的現代標準旨在用他們特定的標準和語法覆蓋所有傳統的電子郵件系統。

但是,標準的實施者,電子郵件提供商和電子郵件最終用戶都對工作系統擁有既得利益,當規則不太神祕並且可以輕鬆投入到通過有限制的軟件時更容易實現測試的數量,那麼爲什麼我們今天有一個如此複雜的標準,沒有人完全使用它?

從歷史上看,XML在很大程度上被JSON所取代,其成功部分歸因於其語法的簡單性。

+0

因爲RFC應該涵蓋所有邊緣情況,而不僅僅是「主要提供者」? – ceejayoz 2012-03-30 21:20:37

+3

我認爲這是一個明智的和有效的問題,應該用歷史的後見證來討論。上面提到的RFC不是唯一的罪魁禍首;管理IP地址轉錄的有效方法的RFC同樣令人費解。有趣的是,在現實世界中,這些RFC中只有很小的一部分被積極使用 - 實際上所有的電子郵件地址看起來都像「name @ exxample.com」,並且所有的IP地址都是「123.234.231.132」。如果這個問題沒有過早結束,我們現在可以就這些高度複雜的RFC的優缺點和歷史背景進行熱烈的討論。 – flow 2014-04-04 11:46:52

+0

雖然這是一個有趣而有效的(在更廣泛的軟件社區意義上)問題,但它不適合StackOverflow。 – JasonMArcher 2014-04-04 16:54:56

回答

1

查看提供的電子郵件地址是否爲真的唯一可行方法是 發送電子郵件給它,看看用戶是否收到它。 可以在地址上執行的一個有用的 檢查是檢查電子郵件地址 在語法上是否有效。這就是這個模塊所做的。

發送郵件的系統必須能夠處理所有有效地址的發送郵件。與相關標準相反,某些有缺陷的系統將某些合法地址視爲無效,並且無法處理髮往這些地址的郵件。例如,Hotmail拒絕發送郵件到任何包含以下任何標準允許字符的地址:!#{$} * /?^ {{}}

只是不同級別的標準,非常嚴格,因此很複雜。

+0

雖然你的答案在技術上是正確的,但它不回答這個問題(這是關於電子郵件地址的語法)。知道街道地址在句法上或句法上不正確是一回事,知道在那個地方是否有建築物是另一回事。 – flow 2014-04-05 11:27:14

相關問題