簡體   English   中英

“ somestring @ somestring”是有效的電子郵件地址嗎?

[英]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

而且此來源聽起來像somedomainsomedomain. 都是合法域名,並且實際上彼此等效,盡管它還表示某些程序在處理此類問題方面比其他程序更好。

我到底該相信什么? 有很多.NET開發人員使用該構造函數而不是使用正則表達式,因為它假定可以在Internet上找到的大多數正則表達式中都具有准確性,而且它並不需要花費大量時間和精力來實現正確的目標。 我已經看到它在我親自嘗試過的幾乎所有其他情況下都能正常工作。

somestring@somestring. 有效格式?

有效的電子郵件地址比您想象的要復雜得多。 閱讀RFC 2822 ,了解它的復雜程度。 以及RFC 2821RFC 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM