我正在使用c#窗口应用程序发送电子邮件,需要使用smtp服务。 我需要以最佳方式执行以减少电子邮件退信率。 我必须检查提供的电子邮件地址是否有效。 我正在使用以下代码。
private void btnCheckValid_Click(object sender, EventArgs e)
{
if (isRealDomain(textBox1.Text.Trim()) == true)
MessageBox.Show("Valid Email Address!");
}
private bool isRealDomain(string inputEmail)
{
bool isReal = false;
try
{
string[] host = (inputEmail.Split('@'));
string hostname = host[1];
IPHostEntry IPhst = Dns.GetHostEntry(hostname);
IPEndPoint endPt = new IPEndPoint(IPhst.AddressList[0], 25);
Socket s = new Socket(endPt.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
s.Connect(endPt);
s.Close();
isReal = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
isReal = false;
}
return isReal;
}
通过检查真实的域名,我可以确定托管的IP地址,但是电子邮件地址是在主机上创建还是不在主机上创建。
使用正则表达式,我只能验证格式。
那么我的问题是如何在C#中找到任何域的有效地址。