Indy 10の若干古くなったドキュメントでは、TIdImap4クラスのSendCmd関数のAExpectedResponsesパラメータに含まれる内容については説明していません。しかし、TIdImap4のソースコードを見て、SendCmdが内部的にどのように使われているのか、そしてGoogleで検索してみた後でも、IMAP RFCの回答や結果セクションの項目をいつ含めるべきか、そして/またはそのパラメーターはブランクのままにします。誰もが、このパラメータがどのように使われているのか、それに何が入っているのか少し説明できますか?tidimap4.SendCmdにAExpectedResponsesパラメータがどのように属していますか?
または、おそらく、それは具体的な例を使用するために役立つだろう:
私はRFCは...そう、これまで私が持っていることをサポートするサーバーのUID MOVE実装しています:
IMAP.SendCmd('UID MOVE '+uidList.CommaText +' '+destFolder,[],true);
からのRFC (6851)を読むと、期待される反応(「何も特定しない」)と結果(OK、NO、BAD)についてのヒントがあります。
3.1. MOVE Command
Arguments: sequence set
mailbox name
Responses: no specific responses for this command
Result: OK - move completed
NO - move error: can't move those messages or to that name
BAD - command unknown or arguments invalid
が、ノートがOKする前に、このコマンドに、後に関連したタグなしの「無関係」の応答があるかもしれないこともあります:
Note that the server may send unrelated EXPUNGE responses as well, if
any happen to have been expunged at the same time; this is normal
IMAP operation.
そしてRFCは、このような例を示します:
C: a UID MOVE 42:69 foo
S: * OK [COPYUID 432432 42:69 1202:1229]
S: * 22 EXPUNGE
S: (more expunges)
S: a OK Done
私は実際にGmailに接続しているのと全く同じではないようですが、これは基本的にはタグなしのものと同じですが、タグなしのEXISTSコマンドが追加されていますlieve)がUIDPLUS拡張サポートをサポートするために含まれている:
Sent 6/25/2016 4:08:04 PM: C246 UID MOVE 179,180,181,183,184,198,199 [Gmail]/Trash<EOL>
Recv 6/25/2016 4:08:04 PM: * 48 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 48 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 48 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 49 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 49 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 54 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 54 EXPUNGE<EOL>
Recv 6/25/2016 4:08:04 PM: * 53 EXISTS<EOL>
Recv 6/25/2016 4:08:04 PM: C246 OK [COPYUID 2 179:181,183:184,198:199 80,79,78,77,76,75,74] (Success)<EOL>
ので、ここで私はOK、」結果の前に「OK」、同様に送信される可能性が明らかに「EXPUNGE」のタグなしの応答を見て、「EXISTS」としています"
実際にAExpectedResponsesに属しているものは、[EXPUNGE、EXISTS、OK]、何も[]、結果[OK、NO、BAD]またはそれ以外のものであるかどうか少し不明です。ありがとうございました。