Die etwas veraltete Dokumentation für Indy 10 erklärt nicht, was in den Parameter AExpectedResponses für die SendCmd-Funktion in der TIdImap4-Klasse gehört. Aber selbst nachdem ich den Quellcode von TIdImap4 durchgesehen habe, um zu sehen, wie SendCmd intern verwendet wird und nach Google sucht, bekomme ich kein konsistentes Bild darüber, wann Elemente aus den Antworten und/oder Ergebnisbereichen der IMAP-RFCs und/oder eingeschlossen werden Lassen Sie diesen Parameter leer. Kann mir jemand erklären, wie dieser Parameter benutzt wird und was drin sein soll?Was gehört in den Parameter AEpectedResponses zu tidimap4.SendCmd?
Oder vielleicht würde es helfen, ein konkretes Beispiel zu verwenden:
I UID MOVE für Server bin die Umsetzung, die die RFC unterstützen ... so so weit ich habe:
IMAP.SendCmd('UID MOVE '+uidList.CommaText +' '+destFolder,[],true);
Und aus Lesen Sie die RFC (6851), gibt es einige Hinweise zu den erwarteten Antworten ("nichts Spezifisches") und Ergebnis (OK, NEIN, SCHLECHT).
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
aber es gibt auch eine Notiz später, dass es unmarkiert sein kann „unabhängige“ Antworten in Bezug auf diesen Befehl vor dem 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.
Und der RFC gibt ein Beispiel eines solchen:
Es scheint ziemlich, aber nicht genau das gleiche wie das, was ich wirklich sehe Verbindung zu Google Mail, die im Grunde ist das gleiche mit keinen unmarkierten OK, und die Zugabe von einem unmarkierten EXISTS-Befehl (was ich sein lieve enthält, um die UIDPLUS Erweiterung Unterstützung) zu unterstützen:
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>
so hier ich sehe nicht markierte Antworten von „EXPUNGE“ und „exists“ und scheinbar „OK“ könnte auch gesendet werden, bevor die resultierenden „OK ".
Also ich bin ein wenig unscharf darüber, ob das, was eigentlich in ErwarteteResponsen gehört, [EXPUNGE, EXISTS, OK], nichts [], die Ergebnisse [OK, NO, BAD] oder etwas ganz anderes ist. Vielen Dank.