2014-10-02 65 views
1

我試圖從Gmail接收電子郵件。 Occaisionly(約1出5次),我得到一個System.Net.Sockets.SocketException,錯誤消息:當使用S22接收Gmail電子郵件時,嘗試對無法訪問的網絡[2a00:1450:4013:c01 :: 6d]執行套接字操作:993 ImapClient

A socket operation was attempted to an unreachable network [2a00:1450:4013:c01::6d]:993 

網絡地址並不總是相同,但略有不同。此錯誤確實出現在我想檢查的所有Gmail框中,但根本沒有出現在我的Office 365郵箱中。

我的應用程序是由Microsoft Azure託管的MVC 5應用程序。我用的是S22 Imap library

代碼檢索電子郵件的相關部分是:

​​

我已經禁用IPv6在我的Azure的web服務(禁用它的適配器上),但仍出現此錯誤回來了並重新開始。

回答

1

imap.gmail.com會返回多個IP地址(現在有三個,但數量可能因時間和地點而異)。你應該嘗試所有三種。如果一個人以你所看到的方式失敗,你應該嘗試下一個地址,那麼下一步就是要找出S22是否做到了這一點,如果不是,你將如何做到這一點。

+0

FWIW,我的[MailKit(https://github.com/jstedfast/MailKit)庫將嘗試所有DNS返回的IP地址,直到成功連接。我提到這一點,以防OP在S22.Imap中無法輕鬆解決這個限制。祝你好運! – jstedfast 2016-12-14 23:58:12

0

我有同樣的問題,因爲OP並沒有下重試多個IP地址與S22.Imap.dll

 var ips = Dns.GetHostAddresses("imap.gmail.com"); 
     foreach(var ip in ips) 
     { 
      try 
      { 
       return new ImapClient(ip.ToString(), "993", Email, Password, AuthMethod.Login, true); 
      } 
      catch(SocketException e) //error means server is down, try other IP 
      { 
       //nothing, check next IP for connection 
      } 
     } 
相關問題