2

OpenPop.Netを使用して、C#アプリケーションでGoDaddyがホストする電子メールアカウントに接続しています。Authenticate()メソッドは、「応答の取得に使用されたストリームが閉じられました」というエラーメッセージを含む例外をスローします。Outlook 2007を使用して、POPServer、POPPort、POPUserName、およびPOPPasswordの値が有効であることを再確認しました。

using (Pop3Client pop3 = new Pop3Client())
{
    pop3.Connect(POPServer, POPPort, false);
    pop3.Authenticate(POPUserName, POPPassword);

    Int32 messageCount = pop3.GetMessageCount();
}
4

1 に答える 1

11

Authenticate()メソッドは、AuthenticationMethodと呼ばれる列挙型の3番目のパラメーターをサポートします。ヘルプファイルによると、3番目のパラメーターが渡されない場合、Authenticate()メソッドはデフォルトでAutoの認証メソッドになります。ヘルプファイルには、Autoメソッドが認証に推奨されるメソッドであると記載されています。Apopがサーバーでサポートされている場合、Apopが認証に使用されます。Apopがサポートされていない場合、AutoはUsernameAndPassword認証にフォールバックします。

Autoを明示的に渡そうとしましたが、Authenticate()メソッドが同じエラーで失敗しました。次に、UsernameAndPasswordを明示的に渡してみましたが、今回は機能しました。これがOpenPop.Netのバグなのか、POPサーバーの問題なのかわかりません。これが動作するコードです。

using (Pop3Client pop3 = new Pop3Client())
{
    pop3.Connect(POPServer, POPPort, false);
    pop3.Authenticate(POPUserName, POPPassword, AuthenticationMethod.UsernameAndPassword);

    Int32 messageCount = pop3.GetMessageCount();
}
于 2011-08-05T18:06:11.977 に答える