首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 驗證電子郵件地址的正則表達式與 SMTP 檢查

     編輯:關於C語言

格式驗證:正則表達式

使用正則表達式檢查電子郵件格式是否符合基本規範:

public static bool IsEmail(string inputEmail)
{
    inputEmail = NullToString(inputEmail);
    string strRegex = @"^([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})(\]?)$";
    Regex re = new Regex(strRegex);
    return re.IsMatch(inputEmail);
}

此正則涵蓋常見郵件格式,包含 IP 位址網域與標準網域名稱。

進階驗證:SMTP 連線測試

僅檢查格式不足以確認郵箱真實存在,可嘗試連線 SMTP 伺服器進行初步驗證:

string[] host = address.Split('@');
string hostname = host[1];
IPHostEntry ipHost = Dns.Resolve(hostname);
IPEndPoint endPoint = new IPEndPoint(ipHost.AddressList[0], 25);
Socket socket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(endPoint);

// 發送 HELO、MAIL FROM、RCPT TO 等 SMTP 指令並檢查回應代碼
// 若伺服器回應 250 等成功代碼,表示郵箱可能存在
// 注意:許多伺服器為防垃圾郵件會禁用 VRFY 指令或拒絕驗證

注意事項

  • SMTP 驗證可能被防火牆、反垃圾機制阻擋,不可完全依賴。
  • 頻繁驗證可能被列入黑名單,建議僅在必要時使用。
  • 格式驗證為必做,SMTP 驗證為選擇性增強。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved