public List <Pop3EMail> List() { string response; var ret = new List <Pop3EMail>(); CheckResponse(SendToServer("LIST\r\n")); while (true) { response = GetServerResponse(); if (response == ".\r\n") { log.DebugFormat("Retrieved {0} messages from the server", ret.Count); return(ret); } else { try { string[] values = response.Split(new char[] { ' ' }); Pop3EMail mail = new Pop3EMail { Number = Int32.Parse(values[0]), Bytes = Int32.Parse(values[1]), Retrieved = false }; ret.Add(mail); } // catch (ArgumentNullException) // catch (FormatException) // catch (OverflowException) // catch (IndexOutOfRangeException) catch (Exception e) { throw new SecurePop3Exception("Parsing message list failed", e); } } } }
public void RetrieveBody(Pop3EMail mail) { string response; CheckResponse(SendToServer(string.Format("RETR {0}\r\n", mail.Number))); StringBuilder body = new StringBuilder(); while (true) { response = GetServerResponse(); if (response == ".\r\n") { break; } else { body.Append(response); } } mail.Retrieved = true; mail.Body = body.ToString(); log.DebugFormat("Retrieved body of mail {0}", mail.Number); }
public void Delete(Pop3EMail mail) { CheckResponse(SendToServer(string.Format("DELE {0}\r\n", mail.Number))); log.DebugFormat("Deleted Email {0}", mail.Number); }