Mail |
public virtual Task<Stream> GetStreamAsync( int index, CancellationToken cancellationToken = default, ITransferProgress progress = null )
Exception | Condition |
---|---|
ArgumentOutOfRangeException | index is out of range. |
ObjectDisposedException | The IMailStore has been disposed. |
ServiceNotConnectedException | The IMailStore is not connected. |
ServiceNotAuthenticatedException | The IMailStore is not authenticated. |
FolderNotOpenException | The folder is not currently open. |
MessageNotFoundException | The IMailStore did not return the requested message stream. |
OperationCanceledException | The operation was canceled via the cancellation token. |
IOException | An I/O error occurred. |
ProtocolException | The server's response contained unexpected tokens. |
CommandException | The command failed. |
public static void DownloadMessages () { using (var client = new ImapClient ()) { client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect); client.Authenticate ("username", "password"); client.Inbox.Open (FolderAccess.ReadOnly); for (int index = 0; index < client.Inbox.Count; index++) { using (var stream = client.Inbox.GetStream (index)) { using (var output = File.Create ($"{index}.eml")) stream.CopyTo (output); } } client.Disconnect (true); } }