2012-07-09 48 views
0

可能重複:
What characters are allowed in email address?MailAddress用單引號

在C#中,我不知道爲什麼MailAddress接受與單引號,例如電子郵件地址'a''a'@gmail.com ...我也在Hotmail和Gmail網站上測試過它們,它們會允許我發送一封電子郵件給這個錯誤的電子郵件地址,但當然,以後會收到失敗的電子郵件......即使在註冊時,它也不會不允許使用單引號的新電子郵件' ...您知道有單電子郵件地址的有效電子郵件地址嗎?它是有效的格式?

對不起,我是指單引號

+3

分號在哪裏? – 2012-07-09 20:56:13

+1

你是指分號(';')還是撇號(''')? – 2012-07-09 20:56:42

+0

你問過爲什麼在電子郵件地址中允許有分號(';'),但你的例子沒有那個字符。這個問題不適用於論壇,除非您可以將其重新編碼爲編碼錯誤。分號和撇號都在電子郵件地址中有效。請參閱http://en.wikipedia.org/wiki/Email_address – 2012-07-09 21:00:45

回答

1

你爲什麼不驗證你的電子郵件發送的電子郵件

這樣,您將得到即時的反饋之前,什麼是有效的電子郵件

我建議你

不是最理想的方式做到這一點,但你使用MailAddress類此

MailAddress mailAddress = null; 

    try 
    { 
     mailAddress = new MailAddress("a'@gmail.com");//email address with single quote in it 
    } 
    catch(Exception exception) 
    { 
     //If emailAdress is not correct then warn user 
    } 
+0

Email like:'「」@ a.com'會導致XSS – Jaider 2012-08-17 17:28:49

+0

@Jaider在我的回答中,我建議使用MailAddress驗證電子郵件地址,所以不要看它如何導致XSS – HatSoft 2012-08-17 20:04:38

+0

我知道,這只是一個警告。 – Jaider 2012-08-20 22:43:56

0

按照RFC 2822,第3.2節一樣1.4,單引號被允許在電子郵件地址(請參閱如何atext定義):

atext   =  ALPHA/DIGIT/; Any character except controls, 
         "!"/"#"/ ; SP, and specials. 
         "$"/"%"/ ; Used for atoms 
         "&"/"'"/
         "*"/"+"/
         "-"/"/"/
         "="/"?"/
         "^"/"_"/
         "`"/"{"/
         "|"/"}"/
         "~" 

您可能還需要快速檢查可疑的電子郵件地址對我們free email validation service,即嚴格遵循上述RFC(其中包括)並基於我們的用於Microsoft .NET的email validation component