2012-05-10 4 views
0

私はPeter Huber's POP3 clientを使用してGmailに接続し、メッセージをダウンロードしています。POP3メッセージの再取得

アクセスされる受信ボックスは、コードアクセス専用のトランザクション受信ボックスです。つまり、注文ファイルが添付されたメッセージが来て、コードがそれを処理してメッセージを削除します。コードの1つの規定はDEBUGフラグです。これを設定すると、コードがメッセージを削除できなくなり、デバッグフラグなしでプログラムを再実行してメッセージを再処理できるようになります。だから、私のコードで私はこれが正常に動作します

If Not Arguments.Debug Then pop.DeleteEmail(eid)

を持っています。問題は、たとえ私がgmailにログインして受信トレイを見ても、メッセージがまだ削除されていなくても、プログラムを2度実行するとメッセージを再取得しないということです。メッセージをもう一度見るためのプログラムを得ることができる唯一の方法は、メッセージを同じ受信トレイに転送することです。しかしPeterのコードでは、セッションの間に見られるメッセージを追跡している場所はどこにも見当たりません。

これはGmailの終了時に行われるものですか? 2回目に同じクライアントにメッセージを配信することを拒否していますか?もしそうなら、Gmailのアカウントを変更する方法はありますか?メッセージのリストを取得したときに受信トレイにあるすべてのメッセージが表示されます。 Gmailの設定画面に何も表示されません。

UPDATE:codeprojectページのthis commentに従って、サーバーにRSETコマンドを送信する方法を追加しようとしました。メッセージを取得した後、切断する前に新しいReset()メソッドを呼び出しますが、同じ問題があります。

+1

私はこれを最初に「POP3メッセージを後悔している」と読んで、私は – Jason

+0

LOLを送信したことを後悔しました。最初の人ではありません。 B-)ハイフンがそれをより明確にすることを願って! – eidylon

答えて

0

OK ... codeprojectプロジェクトのコメントのページを読んだ後、「一種の」回答が見つかりました。

this commentによると、RSETコマンドは、Gmailのサーバーを扱っているときに実際に何もしません。

「答えは」文字列でユーザー名を付加することで、「最近:」:[email protected]、その代わりに[[email protected]]あなたが最近[でログインでログインします]。むしろハックしますが、それは機能します。

関連する問題