2011-01-26 9 views
1

シンプルなpop3サーバーを作成します。私はテストのためにThunderbirdメールクライアントを使用します。私はディレクトリが設定されたメールを持っています。メールメッセージ - メッセージ付きの1テキストファイル。私がthunderbirdでサーバに接続すると、手紙がダウンロードされます。メールを受け取ると、再び同じメッセージがダウンロードされ、新しいメッセージが表示されます。どのように新しいメッセージや既に読んだメッセージをメールクライアントに説明することができますか?電子メールの読み込み/未読メール

ありがとうございます。

+0

私はこれがPOPでは可能ではないと思います。 –

+0

あなたは、 'UIDL'値をキャッシュすることで、あなたが既に見たものをサーバから' DELE'したり、それを追跡したりすることができます。 – dkarp

答えて

1

POP3は、メッセージが読み込まれた場合、新しいメッセージまたはメッセージに関するその他の情報の場合、サーバーからクライアントへの指定方法を備えていません。その目的のためにIMAPを使用してください。

POP3クライアントは、メッセージが読み取られた場合(ローカル)にローカルに記録します。

+0

ありがとうございます。しかし、私は他のメールサービス、例えばgmailに接続しようとすると、pop3によって毎回新しいメッセージが送られてくるだけです。 – 0xAX

+0

今私は理解する。ダウンロード後にpop3サーバからメッセージを削除するクライアント。ありがとうございました。 – 0xAX

+0

POP3は、クライアントが電子メールを取得したときに、サーバーが許可する内容を指定しません。 Gmailサーバーから電子メールをダウンロードすると、gmailの設定をリセットしない限り(Gmailの場合)、特別な最近の:ユーザー名を使用しない限り、他のすべてのPOP3セッションのメールは実際に削除されます。したがって、あなたには「新しい」メッセージは表示されません。これは、他のPOP3クライアントがダウンロードしていないメッセージです。あなたも同じことができます。それを行う場合は、CAPA EXPIREコマンドを読んでください。ここで、POP3クライアントに削除を指示することができます。 Gmailでメールを削除するのはクライアントではありません。 – foens

1

POPサーバーがthe UIDL command(ほとんどの場合)をサポートしている場合、POPクライアントにローカルデータベースをまとめて、ダウンロードしたメッセージの永続UIDL値を追跡できます。 POPサーバーを認証したら、UIDLを発行します。 UIDLが既にデータベースにあるメッセージは、無視しても問題ありません。データベース内のUIDL ではないメッセージの場合は、RETRを発行してメッセージを取得し、そのUIDLを保存します。

また、RETRでダウンロードしたメッセージを削除するには、DELEコマンドを発行します。

関連する問題