メールサーバからメール取得失敗:Pop3Client#ListMessages

Aspose社のDLL(下記①)を用いてPOP3でメールサーバからメール取得する処理でエラー(下記③)が発生し、メール取得は失敗しました。

①DLL名前:Aspose.Email.dll 5.3.0.0
②dotnetからAspose.Email.Pop3.Pop3Client#ListMessages()を呼出してPOP3でメールサーバからメール取得。(引数なし)
③エラー内容:以下通り(文字化けあり)

Pop3Exception: User command error: -ERR Command is not valid in this state.
at ..Initialize(String , Int32 )
at .™Ÿ.ƒ()
at œ.ƒ.‚‡()
at ..ˆ(Pop3ListFields )

質問:上記③のエラーが発生するすべてのパターンを教えてください。

@kajitani_noriyuki_fujixerox_co_jp

サポートが利用できない非常に古いAPIバージョンを使用しています。 最新のAspose.Email for .NET 20.10を使用してみてください。それでも問題が発生する場合は、共有してください。

回答ありがとうございます。
特定の環境でしか発生しておらず最新バージョンに変更してすぐに確認することが難しいのでバージョン変更後に再現出来たら改めて依頼します。

@kajitani_noriyuki_fujixerox_co_jp

もちろんですが、現在までに入手可能な最新バージョンを使用して再現してみてください。それでも問題が再現される場合は、情報を共有してください。

最新バージョンで試して見ましたが、前回の不具合と現象が違うものの、メール取得には失敗しました。詳細は以下通りです。質問回答をお願いします。

■タイトル :POP3サーバからメールの取得に失敗する
■バージョン:Aspose.Email for .NET 21.4

■不具合説明
Aspose.Email for .NET 21.4のPop3Clientクラスを利用してPOP3サーバーからメッセージリストを取得するようなプログラムを作っています。(コードの抜粋を下に記載します。)このプログラムの中でpop3Client.ListMessages(true)を実行するとエラーにもならず、ハングしているような状態になります。
ListMessagesを実行したとき、対象となるメールは2件しか登録されていなかったため、数が多くて応答が返ってこないとも考えられません。

■ソース(C#) ※抜粋
private static Pop3Client pop3Client; ※Pop3ClientはAspose.Email for .NET 21.4のDLL内のクラス
pop3Client = new Pop3Client();
pop3Client.Host = “poptest.wip.det.nsw.edu.au”;
pop3Client.Port = 110;
pop3Client.SecurityOptions = SecurityOptions.None;
pop3Client.Timeout = int.MaxValue;
pop3Client.Username = “FollowMePrintTest@UATDETNSW”;
pop3Client.Password = pop3Password(ユーザーが設定した値);

// retrieve message List from POP3 server.
Pop3MessageInfoCollection messageList = pop3Client.ListMessages(true); ★AsposeのDDLを呼出POP3サーバーからメッセージリストを取得処理

■質問内容
1)ListMessagesの応答が返ってこない原因として何が考えられますか?
2)応答が返ってこない原因の調査とその対応策を検討するために何が必要ですか?

@kajitani_noriyuki_fujixerox_co_jp,
POP3サーバーに接続するためにこのような長いタイムアウトを設定しないでください。
以下に示すように、短い応答時間を設定します:

pop3Client.Timeout = 5000; // 5 seconds

APIリファレンス: EmailClient.Timeout Property

その他の例:
Connect to POP3 Server
Working with Messages from Server

タイトル :POP3サーバからメール取得失敗

■バージョン:Aspose.Email for .NET 21.4

■ソース(C#) ※抜粋

private static Pop3Client pop3Client; ※Pop3ClientはAspose.Email for .NET 21.4のDLL内のクラス
pop3Client = new Pop3Client();
pop3Client.Host = “*****”;
pop3Client.Port = 110;
pop3Client.SecurityOptions = SecurityOptions.None;
pop3Client.Timeout = 150000; //150秒
pop3Client.Username = “*****”;
pop3Client.Password = pop3Password(ユーザーが設定した値)
Pop3Client.LogFileName="\Data\Logs\AsposeLog.log" //Aspose内部ログ

// retrieve message List from POP3 server.
Pop3MessageInfoCollection messageList = pop3Client.ListMessages(true); ★AsposeのDDLを呼出POP3サーバーからメッセージリストを取得処理

▼ログ:Asposeから返したログ
TimeoutException: The operation ‘Connect’ terminated. Timeout ‘150000’ has been reached.
at #=z1nbvpm6IMNodTbNRjI59w3zhitwo.#=zxpJUM1g=(IAsyncResult #=zSYHDHAM=)
at #=z1nbvpm6IMNodTbNRjI59w3zhitwo.#=z1jF_kc8=()
at #=z_idrgAes_7h_U8vO0AdJ2v7pQrsklNjP7A==.#=z9X_8z2Q=(#=z4MxDMG77tF$BsOLsyiqozbumzu19aN7ZbQ== #=zqz4fZ4E=)
at #=zNvAcPtjmxjjlgFMMMj8KAtU30RIL.#=zD5SA4cwbRQ9F(Int32 #=zRNx2a5o=, #=z4MxDMG77tF$BsOLsyiqozbumzu19aN7ZbQ== #=z95Y8jVM=)
at #=z1nbvpm6IMNodTbNRjI59w3zhitwo.#=zApRR3YHMz8Zd()
at #=z1nbvpm6IMNodTbNRjI59w3zhitwo.#=zHIyW8l0=(AsyncCallback #=zUyGSUnU=, Object #=zhHdBGhU=)
at Aspose.Email.Clients.Pop3.Pop3Client.BeginListMessages(IConnection connection, Pop3ListFields fields, Boolean closeTransaction, MailQuery q uery, AsyncCallback callback, Object state)
at Aspose.Email.Clients.Pop3.Pop3Client.ListMessages(Boolean closeTransaction)

■質問内容
前回はPOP3サーバー接続タイムアウトが長いので短くしてくださいとの指摘がありましたのでも短く設定しました。
・前回設定内容:pop3Client.Timeout = int.MaxValue;
・今回設定内容:pop3Client.Timeout = 150000; //150秒

今回は以下のAspose内部ログを取得した結果、開発環境の正常時に出力する「OK The Microsoft Exchange POP3 service is ready.」が出力しませんでした。
・Pop3Client.LogFileName="\Data\Logs\AsposeLog.log" //Aspose内部ログ

タイムアウトを短く(150秒)に設定してもAsposeのListMessages処理でタイムアウトが発生し、メールを正常に受信できませんでした。

1)AsposeのListMessages処理でタイムアウトが発生した原因は何でしょうか?
2)Aspose内部ログで正常時に出力する「OK The Microsoft Exchange POP3 service is ready.」が出力されないとのことはPOP3サーバへの接続ができてないとの意味でしょうか?

@kajitani_noriyuki_fujixerox_co_jp,
Aspose.Emailの最新バージョンを使用して問題を確認してください。
問題が解決しない場合は、この場合のログファイルを共有してください。