有人说无法验证电子邮件是否存在,但我也读过它可以通过向其发送消息来完成。所以我想通过发送电子邮件验证电子邮件是否存在。
这是我的代码:
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);
}
此代码正常运行,但我尝试输入任何不存在的随机电子邮件(它确实不存在),代码仍会向其发送消息。我想创建一个弹出消息,提示消息无法以这种方式发送,我知道该电子邮件确实不存在。或者除了发送验证链接之外别无其他方式吗?
答案 0 :(得分:1)
无法查看是否存在电子邮件。请记住,用于发送电子邮件的代码要求SmtpClient发送电子邮件。如果客户端的服务器抛出一个异常,您将只获得异常。您的案例中的客户端服务器是GMail。 GMail在发送时不会失败,但会向发件人回复说找不到电子邮件地址。不同的服务器行为不同。您可以设置自己的服务器以自动重试电子邮件,或者只是静默失败或抛出异常等。此外,服务器使用DNS,因此可以使用内部网邮件系统,其中电子邮件对网络有效,但不对互联网有效。要记住的另一件事是捕获可以设置的所有电子邮件地址。因此,有问题的电子邮件地址可能无效,但被捕获所有邮件地址捕获,然后传递到有效地址。
因此,目前还没有办法验证电子邮件地址是否存在。