Pop |
public override Task<IList<MimeMessage>> GetMessagesAsync( int startIndex, int count, CancellationToken cancellationToken = default, ITransferProgress progress = null )
Exception | Condition |
---|---|
ArgumentOutOfRangeException | startIndex and count do not specify a valid range of messages. |
ObjectDisposedException | The Pop3Client has been disposed. |
ServiceNotConnectedException | The Pop3Client is not connected. |
ServiceNotAuthenticatedException | The Pop3Client is not authenticated. |
NotSupportedException | The POP3 server does not support the UIDL extension. |
OperationCanceledException | The operation was canceled via the cancellation token. |
IOException | An I/O error occurred. |
Pop3CommandException | The POP3 command failed. |
Pop3ProtocolException | A POP3 protocol error occurred. |
Gets the messages within the specified range.
When the POP3 server supports the Pipelining extension, this method will likely be more efficient than using GetMessage(Int32, CancellationToken, ITransferProgress) for each message because it will batch the commands to reduce latency.
public static void DownloadMessages () { using (var client = new Pop3Client ()) { client.Connect ("pop.gmail.com", 995, SecureSocketOptions.SslOnConnect); client.Authenticate ("username", "password"); var messages = client.DownloadMessages (0, count); foreach (var message in messages) { // write the message to a file message.WriteTo (string.Format ("{0}.msg", i)); } client.DeleteMessages (0, count); client.Disconnect (true); } }