2011-10-21 8 views
0

IMAPから返された電子メールの内容を含む応答を解析しようとしています。 IMAPで取得したレスポンスから返されるメッセージの開始と終了を確認するにはどうすればよいですか?私はIMAP経由の電子メールを取得するときIMAPから返されたメッセージ応答の開始と終了の決定

以下

は、応答の2例は以下のとおりです。

. fetch 3728 body.peek[1] 
* 3728 FETCH (BODY[1] {45} 
Hello, 
This is test message 1. 
:(
:) 

) 
* 3732 FETCH (FLAGS (\Seen \Recent)) 
* 3733 FETCH (FLAGS (\Seen \Recent)) 
. OK FETCH completed. 

そして第二に検索:

. fetch 3729 body.peek[1] 
* 3729 FETCH (BODY[1] {42} 
Hello, 
This is test message 2. :) 

) 
The above bracket is part of the message's content. 

) 
. OK FETCH completed. 

まず新しいメールがに来たときに、両方の回収のは時々異なる結末を与えますアカウント。第二に、それはブラケットと. OK FETCH Completed応答のメッセージの終わりのように思えます。しかし、内容が括弧で囲まれているとどうなりますか?それから私は間違った括弧を読んで、完全な内容を得ることはできません。

このように、IMAPからの応答を解析する際、どのように応答を解釈してコンテンツを正しく取得する必要がありますか?

答えて

0

あなたは、RFC 3501を読んでください...

IMAP列は2つの形で表現することができます。 1)文字列を引用。 2)文字列リテラル。

文字列リテラルsynatx: {number_of_bytes} CRLF - ここでは読み込みバイト数が必要です。注:BYTES文字列ではありません!

また、IMAP仕様によれば、任意の応答をいつでも解析できるようにする必要があります。文字列部分も文字列リテラルにすることができます。

安定した完全機能のIMAPクライアントを簡単にコーディングできません。

関連する問題