Mail |
public virtual Task<Stream> GetStreamAsync( UniqueId uid, CancellationToken cancellationToken = default, ITransferProgress progress = null )
Exception | Condition |
---|---|
ArgumentException | uid is invalid. |
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); var uids = client.Inbox.Search (SearchQuery.All); foreach (var uid in uids) { using (var stream = client.Inbox.GetStream (uid)) { using (var output = File.Create ($"{uid}.eml")) stream.CopyTo (output); } } client.Disconnect (true); } }