c# - 在 C# 中检查有效的电子邮件地址

标签 c# validation email

我在我的 c# windows 应用程序中使用 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# 中只找到任何域的有效地址。

最佳答案

您可以导入 System.ComponentModel.DataAnnotations并以这种方式使用它:

private bool validMail(string address)
{
    EmailAddressAttribute e = new EmailAddressAttribute();
    if (e.IsValid(address))
        return true;
    else
        return false;
}

关于c# - 在 C# 中检查有效的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36035941/

相关文章:

javascript - 如何在最后以及发布/触发/继续提交之后暂停表单提交,进行最后一次验证?

c - 使用 atoi() 对整数进行输入验证

c# - 如何获取 Gmail 联系人?

java - 通过 java servlet 实现处理邮件协议(protocol)

javascript - 我可以使用 javascript 发送电子邮件吗

c# - 将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围 - 未使用 DateTime2

c# - SecureString 到 Byte[] C#

angularjs - 尝试验证至少有一个复选框被选中

c# - 自动映射器 UseDestinationValue 不起作用

c# - 如何在 C#/ASP.NET MVC 中实现搜索功能