2010-12-03 23 views
0

私はプロキシの背後にあり、TcpClientとGmailのPOP3に接続できません。次のエラーが表示されます。C#でTcpClientをプロキシの背後から接続するには?

System.Net.Sockets.SocketException (0x80004005): No such host is known 

手がかりはありますか?

コード:

var tcpClient = new TcpClient(); 
try 
{ 
    tcpClient.ReceiveTimeout = 60000; 
    tcpClient.SendTimeout = 60000; 
    tcpClient.Connect("pop.gmail.com", 995); 
    output.AppendLine("Connection OK!"); 
} 
catch (SocketException e) 
{ 
    output.AppendLine(e.ToString()); 
} 
finally 
{ 
    tcpClient.Close(); 
} 

app.configを(プロキシがInternet Explorerで設定されている):

<?xml version="1.0"?> 
<configuration> 
    <system.net> 
    <defaultProxy> 
     <proxy usesystemdefault="True" /> 
    </defaultProxy> 
    </system.net> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

答えて

1

何もありません。ありえない。以下のようになります。

  • あなたの会社のDNSには公開DNS情報は含まれていません。
  • したがって、あなたのコンピュータは、外部のDNSに尋ねるプロキシに尋ねます。
  • これはまた、ルーティングが可能でないことを意味します。
  • ルーティングなしTCP接続はとにかく可能です。意図的に。

回避策:

  • SOCKSプロキシを使用してください。存在しそうもない。
  • あなたのIT部門に問い合わせてください - これを解決するための適切な方法は、firwewallをバイパスするためではなく、適切なチャネル(内部SMTPサービス)を使用して電子メールを送信することです。
  • 適切な方法でGmailを使用している場合、あまりスマートでない人(マネージャー)があなたをコーナーに入れます。次に、あなたのためにTCP接続を開いて、パブリックDNS情報を自分のコンピュータで利用できるようにする必要があります。

最後に、すべてのクライアントをプロキシ経由で強制するか、直接TCP接続から外すかのどちらかの方法があります。

+0

ありがとうございます!しかし、プロキシの背後からPOP3/IMAP4を介して任意のメールアカウントにプログラムでアクセスできる可能性はありますか? – Stefan

+0

@TomTom:FireFoxが不可能な場合、FireFoxがどのように動作しているか。そのシステムプロキシも動作します。 – saber

関連する問題