Indy 10의 약간 오래된 설명서에는 TIdImap4 클래스의 SendCmd 함수에 대한 AExpectedResponses 매개 변수에 속한 것이 설명되어 있지 않습니다. 그러나 TIdImap4의 소스 코드를 통해 SendCmd가 내부적으로 사용되고 Google에서 검색되는 방법을 확인한 후에도 IMAP RFC의 응답 및/또는 결과 섹션의 항목을 언제 포함 할 것인지 및/또는 해당 매개 변수를 비워 두십시오. 아무도이 매개 변수가 사용되는 방법을 조금 설명 할 수 있고 그것에 있어야합니까?tidimap4.SendCmd에 대한 AExpectedResponses 매개 변수의 정의는 무엇입니까?
또는, 아마, 그것은 구체적인 예를 사용하는 것이 도움이 될 것이다 : 그래서 지금까지 내가 가지고 ...
내가 서버에 대한 UID MOVE를 구현하고 RFC 것을 지원합니다
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
하지만 메모가 확인하기 전에이 명령에 나중에 관련 태그가없는 "무관"응답이있을 수도있다 :
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에 연결하는 것이 실제로 보이는 것과 동일하지는 않지만 기본적으로는 태그가없는 OK와 태그가없는 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>
을 그래서 여기에 내가 "EXPUNGE"의 태그가 지정되지 않은 반응을보고하고 OK ""EXISTS "분명히"OK "결과 전에뿐만 아니라 전송 될 수있어 ".
그래서 실제로 AExpectedResponses에 속한 것이 [EXPUNGE, EXISTS, OK]인지, [[OK, NO, BAD]] 또는 그 밖의 모든 결과인지 알기 어렵습니다. 고맙습니다.