簡體   English   中英

如何檢查遠程服務器上是否存在電子郵件收件箱

[英]How to check if email inbox exists on a remote server

是否有API來檢查遠程服務器上是否存在電子郵件收件箱? my-addr.com做得非常漂亮,並提出了一些關於盒子的令人驚訝的高級信息。

  • john@gmail.com :“您嘗試覆蓋的電子郵件帳戶超過了配額。請直接”
  • whatsup@gmail.com :“gsmtp /電子郵件存在”
  • asdfasdf19293949@gmail.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM