[英]How to check if email inbox exists on a remote server
是否有API来检查远程服务器上是否存在电子邮件收件箱? my-addr.com做得非常漂亮,并提出了一些关于盒子的令人惊讶的高级信息。
我链接的工具调用流程“反向电子邮件查找”,但搜索相同的工具会显示“从电子邮件地址中查找人员”和其他此类工具。
这是如何运作的? 有没有办法直接从PHP或C#执行此操作?
我想你会发现很多时候这些功能都会欺骗垃圾邮件发送者。 如果有一种方法来确认电子邮件是否真实,而不是让用户点击验证(或取消订阅....)链接,那么垃圾邮件发送者会一直使用它
验证电子邮件地址的最佳方法是向用户发送包含链接的电子邮件,并让他们单击该链接以验证他们是否收到了电子邮件。 那说你唯一的选择是SMTP RCPT TO或VRFY命令。
RCPT TO可以是一种检查方式,只要您在发布后断开连接即可。 但是,如果该帐户不存在,并非所有服务器都会引导您
VRFY可以告诉您该服务器上是否存在帐户,但几乎总是被禁用以防止帐户探测。
执行RCPT TO验证的PHP类是: http : //code.google.com/p/php-smtp-email-validation/
我在my-addr.com的TOU中没有看到禁止以编程方式使用它的任何内容:因为您对网站的结果感到满意,您可以考虑使用my-addr.com本身作为“对技术,法律和道德的权衡”。 API”。
作为一个起点,这里是Fiddler 请求代码 C#进行快速邮箱存在检查我执行:
private void MakeRequests()
{
HttpWebResponse response;
if (Request_my_addr_com(out response))
{
response.Close();
}
}
private bool Request_my_addr_com(out HttpWebResponse response)
{
response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://my-addr.com/email/?mail=baz%40gmail.com&x=0&y=0");
request.KeepAlive = true;
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36";
request.Referer = "http://my-addr.com/email/?mail=foo%40gmail.com&x=15&y=12";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip,deflate,sdch");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8");
request.Headers.Set(HttpRequestHeader.Cookie, @"PHPSESSID=ne655jvfdte82b94gn0oumegj6");
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return false;
}
catch (Exception)
{
if(response != null) response.Close();
return false;
}
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.