通过发送消息来检查电子邮件是否存在

本文关键字:检查 电子邮件 是否 存在 消息 | 更新日期: 2023-09-27 17:49:21

有人说不可能验证电子邮件是否存在,但我也读到可以通过向它发送消息来验证。因此,我想通过发送电子邮件来验证电子邮件是否存在。

下面是我的代码:
 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);
    }

这个代码是有效的,但是我尝试键入任何不存在的随机电子邮件(它真的不存在),代码仍然向它发送消息。我想创建一个弹出消息,每当消息发送失败时,我就会知道电子邮件真的不存在。或者除了发送验证链接之外真的没有其他方法吗?

通过发送消息来检查电子邮件是否存在

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

所以,到目前为止,没有可能的方法来验证电子邮件地址的存在。