Есть несколько способов сделать это. Лучшей является команда UID MOVE
, определенная в RFC 6851 с начала 2013 года:
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
Наличие этого расширения обозначается возможностью MOVE
.
Если он недоступен, но UIDPLUS
( RFC 4315 ), второй лучший вариант - использовать комбинацию UID STORE
, UID COPY
и UID EXPUNGE
:
C: a01 UID COPY 42:69 foo
S: a01 OK [COPYUID 432432 42:69 1202:1229] Copied
C: a02 UID STORE 42:69 +FLAGS.SILENT (\Deleted)
S: a02 OK Stored
C: a03 UID EXPUNGE 42:69
S: * 10 EXPUNGE
S: * 10 EXPUNGE
S: * 10 EXPUNGE
S: a03 Expunged
Если UIDPLUS
отсутствует, то нет ничего разумного, что вы можете сделать - команда EXPUNGE
окончательно удаляет все сообщения, помеченные для удаления, включая те, которые вы не коснулись. Лучше всего в этом случае просто использовать UID COPY
и UID STORE
.