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); } } }