Pop |
[SerializableAttribute] public class Pop3ProtocolException : ProtocolException
The Pop3ProtocolException type exposes the following members.
| Name | Description | |
|---|---|---|
| Pop3ProtocolException | Initializes a new instance of the Pop3ProtocolException class. | |
| Pop3ProtocolException(String) | Initializes a new instance of the Pop3ProtocolException class. | |
| Pop3ProtocolException(SerializationInfo, StreamingContext) | Obsolete. Initializes a new instance of the Pop3ProtocolException class. | |
| Pop3ProtocolException(String, Exception) | Initializes a new instance of the Pop3ProtocolException class. |
| Name | Description | |
|---|---|---|
| Data | (Inherited from Exception) | |
| HelpLink | (Inherited from Exception) | |
| HResult | (Inherited from Exception) | |
| InnerException | (Inherited from Exception) | |
| Message | (Inherited from Exception) | |
| Source | (Inherited from Exception) | |
| StackTrace | (Inherited from Exception) | |
| TargetSite | (Inherited from Exception) |
| Name | Description | |
|---|---|---|
| Equals | (Inherited from Object) | |
| Finalize | (Inherited from Object) | |
| GetBaseException | (Inherited from Exception) | |
| GetHashCode | (Inherited from Object) | |
| GetObjectData | (Inherited from Exception) | |
| GetType | (Inherited from Exception) | |
| MemberwiseClone | (Inherited from Object) | |
| ToString | (Inherited from Exception) |
| Name | Description | |
|---|---|---|
| SerializeObjectState | (Inherited from Exception) |
public static void DownloadNewMessages (HashSet<string> previouslyDownloadedUids) { using (var client = new Pop3Client ()) { IList<string> uids = null; try { client.Connect ("pop.gmail.com", 995, SecureSocketOptions.SslOnConnect); } catch (Pop3CommandException ex) { Console.WriteLine ("Error trying to connect: {0}", ex.Message); Console.WriteLine ("\tStatusText: {0}", ex.StatusText); return; } catch (Pop3ProtocolException ex) { Console.WriteLine ("Protocol error while trying to connect: {0}", ex.Message); return; } try { client.Authenticate ("username", "password"); } catch (AuthenticationException ex) { Console.WriteLine ("Invalid user name or password."); return; } catch (Pop3CommandException ex) { Console.WriteLine ("Error trying to authenticate: {0}", ex.Message); Console.WriteLine ("\tStatusText: {0}", ex.StatusText); return; } catch (Pop3ProtocolException ex) { Console.WriteLine ("Protocol error while trying to authenticate: {0}", ex.Message); return; } // for the sake of this example, let's assume GMail supports the UIDL extension if (client.Capabilities.HasFlag (Pop3Capabilities.UIDL)) { try { uids = client.GetMessageUids (); } catch (Pop3CommandException ex) { Console.WriteLine ("Error trying to get the list of uids: {0}", ex.Message); Console.WriteLine ("\tStatusText: {0}", ex.StatusText); // we'll continue on leaving uids set to null... } catch (Pop3ProtocolException ex) { Console.WriteLine ("Protocol error while trying to authenticate: {0}", ex.Message); // Pop3ProtocolExceptions often cause the connection to drop if (!client.IsConnected) return; } } for (int i = 0; i < client.Count; i++) { if (uids != null && previouslyDownloadedUids.Contains (uids[i])) { // we must have downloaded this message in a previous session continue; } try { // download the message at the specified index var message = client.GetMessage (i); // write the message to a file if (uids != null) { message.WriteTo (string.Format ("{0}.msg", uids[i])); // keep track of our downloaded message uids so we can skip downloading them next time previouslyDownloadedUids.Add (uids[i]); } else { message.WriteTo (string.Format ("{0}.msg", i)); } } catch (Pop3CommandException ex) { Console.WriteLine ("Error downloading message {0}: {1}", i, ex.Message); Console.WriteLine ("\tStatusText: {0}", ex.StatusText); continue; } catch (Pop3ProtocolException ex) { Console.WriteLine ("Protocol error while sending message {0}: {1}", i, ex.Message); // most likely the connection has been dropped if (!client.IsConnected) break; } } if (client.IsConnected) { // if we do not disconnect cleanly, then the messages won't actually get deleted client.Disconnect (true); } } }