มีหลายวิธีในการตรวจสอบที่อยู่อีเมลใน C#
System.Net.Mail −เนมสเปซ System.Net.Mail มีคลาสที่ใช้ในการส่งจดหมายอิเล็กทรอนิกส์ไปยังเซิร์ฟเวอร์ Simple Mail Transfer Protocol (SMTP) สำหรับการจัดส่ง
System.Text.RegularExpressions − แสดงถึงนิพจน์ทั่วไปที่ไม่เปลี่ยนรูป
ใช้นิพจน์ด้านล่าง
@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([azA-Z]{2,4}|[0-9]{1,3})(\]?)$" เราสามารถใช้ MailAddress คลาสของเนมสเปซ System.Net.Mail เพื่อตรวจสอบที่อยู่อีเมล
ตัวอย่าง
using System;
using System.Net.Mail;
namespace DemoApplication{
class Program{
public static void Main(){
try{
string email = "hello@xyzcom";
Console.WriteLine($"The email is {email}");
var mail = new MailAddress(email);
bool isValidEmail = mail.Host.Contains(".");
if(!isValidEmail){
Console.WriteLine($"The email is invalid");
} else {
Console.WriteLine($"The email is valid");
}
Console.ReadLine();
}
catch(Exception){
Console.WriteLine($"The email is invalid");
Console.ReadLine();
}
}
}
} ผลลัพธ์
ผลลัพธ์ของโค้ดด้านบนคือ
The email is hello@xyzcom The email is invalid
ตัวอย่างการใช้ Regex −
เรายังสามารถใช้นิพจน์ทั่วไปเพื่อตรวจสอบความถูกต้องของที่อยู่อีเมลได้
ตัวอย่าง
using System;
using System.Text.RegularExpressions;
namespace DemoApplication{
public class Program{
public static void Main(){
string email = "hello@xyz.com";
Regex regex = new Regex(@"^([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})(\]?)$",
RegexOptions.CultureInvariant | RegexOptions.Singleline);
Console.WriteLine($"The email is {email}");
bool isValidEmail = regex.IsMatch(email);
if (!isValidEmail){
Console.WriteLine($"The email is invalid");
} else {
Console.WriteLine($"The email is valid");
}
Console.ReadLine();
}
}
} ผลลัพธ์
ผลลัพธ์ของโค้ดด้านบนคือ
The email is hello@xyz.com The email is valid