Imap |
public override Task MoveToAsync( IList<int> indexes, IMailFolder destination, CancellationToken cancellationToken = default )
Exception | Condition |
---|---|
ArgumentNullException | indexes is null. -or- destination is null. |
ArgumentException | One or more of the indexes is invalid. -or- The destination folder does not belong to the ImapClient. |
ObjectDisposedException | The ImapClient has been disposed. |
ServiceNotConnectedException | The ImapClient is not connected. |
ServiceNotAuthenticatedException | The ImapClient is not authenticated. |
FolderNotFoundException | destination does not exist. |
FolderNotOpenException | The ImapFolder is not currently open in read-write mode. |
OperationCanceledException | The operation was canceled via the cancellation token. |
IOException | An I/O error occurred. |
ImapProtocolException | The server's response contained unexpected tokens. |
ImapCommandException | The server replied with a NO or BAD response. |
If the IMAP server supports the MOVE command, then the MOVE command will be used. Otherwise, the messages will first be copied to the destination folder and then marked as \Deleted in the originating folder. Since the server could disconnect at any point between those 2 operations, it may be advisable to implement your own logic for moving messages in this case in order to better handle spontanious server disconnects and other error conditions.