2017-11-17 13 views
0

IMAP4を使用してメールサーバーを構築する必要があります。それは接続されているときにクライアントにメールを "プッシュ"する必要があります。私はIMAP IDLEをサポートしていないDelphi XE6とIndy 10.6.0.5122を使用しています。 Indyコンポーネントを「プッシュ」メソッドに装備する可能性はありますか?そうでなければ、新しいメールが存在するかどうか定期的に質問するサーバーに「プッシュ」を代用できますか、それとも悪い考えですか? すべての有益な回答ありがとう!Delphi - プッシュメソッドでインディコンポーネントを拡張する

+0

ようこそ。 https://stackoverflow.com/help/how-to-askを参照してください。 – Rob

答えて

5

あなたが言ったように、Indy does not currently support IDLEでも、手作業で追加することができます。クライアント側では

、あなたはターンまで、インバウンド・データを読み取るためのタイマ/スレッドを開始、その後、(私はTIdIMAP4.SendCmd()はこのような状況でうまくいくかどうかわからないんだけど)その応答を読み取ることIDLEコマンドとIOHandler.ReadLnを送信するためにTIdIMAP4.IOHandler.WriteLn()を呼び出しますIDLEがオフです。サーバー側では

TIdIMAP4Server.CommandHandlersコレクションにIDLEのエントリを追加し、応答を送信するためにOnCommandハンドラを割り当て、必要なときにクライアントがIDLEをオフにするまで、あなたはクライアントソケットにエントリをプッシュすることができます(AとDONEコマンドを実行するか、ソケットを閉じる)。

コード例はありません。 IDLEの詳細については、RFC 2177を参照してください。

+0

ありがとう、私の仕事では量子の飛躍です。 TIdIMAP4Serverコンポーネントを使用する機能的なサーバーのいくつかのコード例がありますか? –

+0

@WojciechPawłowskiいいえ、私は –

+0

いいえ、もう一つ質問があります。 emailarchitectが作成した「EAGetMail POP3/IMAP4コンポーネント」に関する経験はありますか?はいの場合は、よりよいオプション - Indyを拡張するか、無料のコンポーネントでないものを使用しますか? –

関連する問題