示例#1
0
    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);
                }
            }
        }
    }
示例#2
0
    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);
    }
示例#3
0
 public void Delete(Pop3EMail mail)
 {
     CheckResponse(SendToServer(string.Format("DELE {0}\r\n", mail.Number)));
     log.DebugFormat("Deleted Email {0}", mail.Number);
 }