通过向其发送消息

时间:2016-06-25 02:11:59

标签: c# asp.net email

有人说无法验证电子邮件是否存在,但我也读过它可以通过向其发送消息来完成。所以我想通过发送电子邮件验证电子邮件是否存在。

这是我的代码:

 private void email_checker()
    {
        MailMessage mm = new MailMessage();
        //The email that needs to be checked
        mm.To.Add(new MailAddress(txtEmailAddress.Text, "Email Check"));
        mm.From = new MailAddress("*******@gmail.com");
        mm.Body = "Verified";
        mm.IsBodyHtml = true;
        mm.Subject = "Verification";
        SmtpClient smc1 = new SmtpClient();
        smc1.Host = "smtp.gmail.com";
        smc1.Port = 587;
        smc1.Credentials = new NetworkCredential("*****@gmail.com","********");
        smc1.EnableSsl = true;
        smc1.Send(mm);
    }

此代码正常运行,但我尝试输入任何不存在的随机电子邮件(它确实不存在),代码仍会向其发送消息。我想创建一个弹出消息,提示消息无法以这种方式发送,我知道该电子邮件确实不存在。或者除了发送验证链接之外别无其他方式吗?

1 个答案:

答案 0 :(得分:1)

无法查看是否存在电子邮件。请记住,用于发送电子邮件的代码要求SmtpClient发送电子邮件。如果客户端的服务器抛出一个异常,您将只获得异常。您的案例中的客户端服务器是GMail。 GMail在发送时不会失败,但会向发件人回复说找不到电子邮件地址。不同的服务器行为不同。您可以设置自己的服务器以自动重试电子邮件,或者只是静默失败或抛出异常等。此外,服务器使用DNS,因此可以使用内部网邮件系统,其中电子邮件对网络有效,但不对互联网有效。要记住的另一件事是捕获可以设置的所有电子邮件地址。因此,有问题的电子邮件地址可能无效,但被捕获所有邮件地址捕获,然后传递到有效地址。

因此,目前还没有办法验证电子邮件地址是否存在。