2015-04-02 55 views
0

我使用這段代碼檢查了電子郵件驗證。如何在asp.net MVC中檢查有效的電子郵件域?

[RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")] 
 
     [DataType(DataType.EmailAddress)] 
 
     [DisplayName("Email")] 
 
     public virtual string Email { get; set; }

但使用此代碼([email protected])是一個有效的電子郵件。但最初沒有域名命名b。我如何確保電子郵件域名是有效的。

+1

你需要在域名'b​​.com'上做DNS查詢,檢查它是否有'MX'記錄,如果你想確定地址存在 - 啓動一個SMTP連接並查看它是否將它接受爲「RCPT TO」參數。 – TZHX 2015-04-02 11:03:09

+0

使用'[EmailAddress]'屬性!至於檢查一個域是否有效,你需要在回發時檢查服務器上的情況(如果你想要客戶端驗證,也使用'[Remote]'屬性) – 2015-04-02 11:18:18

+0

我已經使用了[EmailAddress]屬性。 – Sonkhocil 2015-04-02 11:23:19

回答

0

要查找b.com是否存在,您必須查詢b.com是否存在MX記錄 您必須將此類查詢發送到名稱服務器。 有API可用於檢查某個特定域是否有MX記錄,或者是否爲 。這將爲你做這項工作

相關問題