我们如何使用asp.net来确定电子邮件地址是否真的存在
本文关键字:电子邮件地址 是否 真的 存在 何使用 asp net 我们 | 更新日期: 2023-09-27 18:21:08
我们可以在asp.net中用正则表达式验证电子邮件地址。现在,我们如何才能发现电子邮件地址是否真的存在?
例如,farzaneh@yahoo.com具有正确的电子邮件格式,但不存在。
此代码仅适用于Gmail SMTP:
protected void btnCheck_Click(object sender, EventArgs e)
{
TcpClient tClient = new TcpClient("gmail-smtp-in.l.google.com", 25);
string CRLF = "'r'n";
byte[] dataBuffer;
string ResponseString;
NetworkStream netStream = tClient.GetStream();
StreamReader reader = new StreamReader(netStream);
ResponseString = reader.ReadLine();
/* Perform HELO to SMTP Server and get Response */
dataBuffer = BytesFromString("HELO KirtanHere" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("MAIL FROM:<YourGmailIDHere@gmail.com>" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();
/* Read Response of the RCPT TO Message to know from google if it exist or not */
dataBuffer = BytesFromString("RCPT TO:<" + TextBox1.Text.Trim() + ">" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();
if (GetResponseCode(ResponseString) == 550)
{
Response.Write("Mai Address Does not Exist !<br/><br/>");
Response.Write("<B><font color='red'>Original Error from Smtp Server :</font></b>" + ResponseString);
}
/* QUITE CONNECTION */
dataBuffer = BytesFromString("QUITE" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
tClient.Close();
}
我认为这是不可能的,因为大多数电子邮件应用程序都有防火墙或类似的东西来防止垃圾邮件攻击。
即使是垃圾邮件也会在他们的网站上添加一张照片,这样他们就可以确定照片是否在你的电子邮件地址上打开。
验证电子邮件地址的最佳方法是向用户发送验证代码或链接,用户必须对此进行确认。
我自己还没有完成,但我可以给你一个线索。
您可以先使用域的MX记录检查。通过与SMTP的握手进行第二次检查(如果有效)xxx@google.com然而,我记得,如果允许与否,它取决于服务器。
尝试此链接http://www.codeproject.com/Articles/5189/End-to-end-Email-Address-Verification-for-Applicat
如果你的网站与身份提供商集成,你需要考虑,通常像谷歌这样的身份提供商,雅虎不会共享这些信息,除非用户授权第三方这样做。你通常会被重定向到网站(谷歌、雅虎将使用用户名、电子邮件或身份提供商管理的任何其他标准进行身份验证),一旦您获得授权,根据他们与您的应用程序共享的声明,您就可以从您的授权令牌(电子邮件地址)中读取。希望这能帮助
这是不可能的:一些邮件提供商不会承认地址不存在,以保护现有的电子邮件地址不受垃圾邮件发送者的攻击。
例如,SMTP协议(RFC 2821)的VRFY和EXPN命令在大多数服务器上被忽略或出错。尽管它可能很有用,但垃圾邮件发送者的不良行为使该功能无法使用。
半生不熟的解决方案:发邮件。如果它反弹,它就不存在了。如果它没有反弹,它就存在,或者邮件服务器出于安全原因不想让你知道它不存在,除了让用户回答之外,你真的什么都做不了(邮件中的链接,html邮件中的图像,适用于不使用纯文本客户端或/和总是下载附带图像的用户)。