1

バックグラウンド

  • 初めて Pop3 を使用します。
  • OpenPop ライブラリを使用します。
  • Pop3 で動作するように Gmail を設定しました。

問題

何が起こるかを確認するためにコードをデバッグしています(そして本文を取得しようとしています)。最初の 2 ~ 3 回ダウンロードされたメッセージは、次の UID を取得しました。

var uids = client.GetMessageUids();

今回は、UID をフェッチしなくなりましたが、その理由がわかりません。注意してください、私はアプリを数回途中で終了しました. 私の Gmail の設定では、POP クライアントでメールをダウンロードした後でもサーバーにメールを保持するように構成されています。うまくいくことを期待して、いくつかのメールをunreadステータスに設定しようとさえしましたが、うまくいきません。

では、このメソッドが 2 つまたは 3 つ実行された後に機能しなくなる原因について何か考えはありますか? Gmail になんらかのセキュリティ上の問題があるのでしょうか、それとも、このクライアントが既にメッセージを取得していて、もうメッセージを送信していないことを知っているのでしょうか?

編集

そのアドレスにメールを送信したところ、1 件のメッセージが表示されるようになりました。だから私が本当に知る必要があるのは、どのメッセージがダウンロードされたかどうかをクライアント (または Gmail) がどのように知っているかということです。これは非常に重要です。エラーが発生してアプリの電子メールを保存できない場合、次回の更新時にメッセージが再度ダウンロードされず、アプリケーションからメッセージが失われるためです。リセットする方法はありますか?これはどこに記録されていますか?

4

1 に答える 1

1

OpenPop 自体は、メッセージに関するものを何も保存しません。それは単にあなたが指示したものを何でも取得します。Gmail は奇妙な POP3 プロバイダーです。プログラムで POP3 サーバーとして使用される場合、Gmail はどのような非標準動作機能を示しますか? に見られるように、

POP3 クライアントによってダウンロードさた場合、Gmail は同じメッセージを表示しません。recent:username ログイン方法を使用して、過去 30 日間分のメールを常に表示できます。

于 2013-05-23T06:27:54.560 に答える