[英]Is “somestring@somestring.” a valid e-mail address?
在.NET應用程序中驗證電子郵件地址時,建議僅使用MailAddress(String)
構造函數,如果該參數的格式不適用於電子郵件地址,則應該構造該異常。 關於什么可以作為和不適合作為正確的電子郵件地址,存在一些神話,甚至谷歌也被要求提供正則表達式,該正則表達式會不恰當地取消地址中帶有刻度線的資格。
話雖如此,我注意到一個實例,其中有一個格式為somestring@somestring.
的字符串somestring@somestring.
盡管點右邊沒有任何內容,但構造函數並未使它無效。 我確實認為所有不使用IP地址的東西都需要一個點和它右邊的一些東西,但是據推測 admin@mailserver1
是完全有效的格式。 它仍然不是完全相同的格式,所以我在這里進行了一些測試:
o'reilly@somestring.com - valid
somestring@somestring. - invalid
而且此來源聽起來像somedomain
和somedomain.
都是合法域名,並且實際上彼此等效,盡管它還表示某些程序在處理此類問題方面比其他程序更好。
我到底該相信什么? 有很多.NET開發人員使用該構造函數而不是使用正則表達式,因為它假定可以在Internet上找到的大多數正則表達式中都具有准確性,而且它並不需要花費大量時間和精力來實現正確的目標。 我已經看到它在我親自嘗試過的幾乎所有其他情況下都能正常工作。
是somestring@somestring.
有效格式?
有效的電子郵件地址比您想象的要復雜得多。 閱讀RFC 2822 ,了解它的復雜程度。 以及RFC 2821和RFC 822
編輯: RFC 5322已淘汰2822
這些都是有效的電子郵件地址!
"Abc\@def"@example.com
"Fred Bloggs"@example.com
"Joe\\Blow"@example.com
"Abc@def"@example.com
customer/department=shipping@example.com
\$A12345@example.com
!def!xyz%abc@example.com
_somename@example.com
我也通常使用email+whatever@gmail.com來給我的電子郵件添加子地址。 它有助於過濾我的電子郵件(並找出垃圾郵件來自何處)。 參見RFC 5233
更多關於Phil Haack的博客
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.