override public EMailsListElement[] ListEmails()
        {
            string response = ExecuteCommand(listCommand, new Regex(messageEndPattern));

            string commandResult = string.Empty;

            string[] answerLines = GetAnswer(response, channelLineDelimiter, out commandResult);

            List <EMailsListElement> result = new List <EMailsListElement>();
            ArrayList retval = new ArrayList();

            char[] seps = { ' ' };
            for (int i = 0; i < answerLines.Length; ++i)
            {
                EMailsListElement msg    = new EMailsListElement();
                string[]          values = answerLines[i].Split(seps);

                if (values.Length < 2)
                {
                    continue;
                }

                msg.Number    = Int32.Parse(values[0]);
                msg.Bytes     = Int32.Parse(values[1]);
                msg.Retrieved = false;

                result.Add(msg);
            }

            return(result.ToArray());
        }
        public EMailMessage GetMessageHeaders(EMailsListElement Element)
        {
            EMailMessage message = GetMessageHeaders(Element.Number, 0);

            message.Bytes = Element.Bytes;
            return(message);
        }
        public bool DeleteMessage(int MessageNumber)
        {
            EMailsListElement element = new EMailsListElement();

            element.Number = MessageNumber;
            return(DeleteMessage(element));
        }
        public EMailMessage RetrieveEmail(int MailNumber)
        {
            EMailsListElement element = new EMailsListElement();

            element.Number = MailNumber;
            return(RetrieveEmail(element));
        }
        override public bool DeleteMessage(EMailsListElement ListElement)
        {
            bool result = false;

            string command = string.Format(deleCommand, ListElement.Number);

            string response = ExecuteCommand(command);

            if (IsResponseOK(response))
            {
                result = true;
            }

            return(result);
        }
        public EMailsListElement[] ListPop3EMails(string Server, int Port, string Username, string Password, bool Ssl)
        {
            Pop3Manager popMngr = new Pop3Manager(Server, Port, Username, Password, Ssl);

            EMailsListElement[] mails = new EMailsListElement[0];
            try
            {
                mails = popMngr.ListEmails();
            }
            catch
            {
            }

            return(mails);
        }
        override public EMailMessage RetrieveEmail(EMailsListElement ListElement)
        {
            string response = RetrieveRawEmailStream(ListElement.Number);

            EmailParser parser = new EmailParser();

            // TODO: clean it up
            Regex  rx     = new Regex(@"(\+OK \d* Octets\r\n)");
            string answer = rx.Replace(response, string.Empty);

            EMailMessage result = parser.CreateEmailFromRawText(answer);

            result.Retrieved = true;

            return(result);
        }
Beispiel #8
0
    public EMailsListElement[] ListPop3EMails(String Server, int Port, string Username, string Password, bool Ssl)
    {
        Pop3Provider popMngr = new Pop3Provider(Server, Port, Username, Password, Ssl);

        EMailsListElement[] mails = new EMailsListElement[0];
        try
        {
            popMngr.OpenConnection();
            mails = popMngr.ListEmails();
            popMngr.CloseConnection();
        }
        catch
        {
        }

        return(mails);
    }
        override public EMailsListElement[] ListEmails(bool keepOpen)
        {
            EMailsListElement[] result;
            string answer = string.Empty;

            OpenConnection();

            string response = ExecuteCommand(listCommand, false, ref answer, true);

            if (!keepOpen)
            {
                CloseConnection();
            }

            string[] answerLines = answer.Split(responseEndLine);

            ArrayList retval = new ArrayList();

            char[] seps = { ' ' };
            for (int i = 0; i < answerLines.Length - 1; ++i)
            {
                EMailsListElement msg    = new EMailsListElement();
                string[]          values = answerLines[i].Split(seps);

                if (values.Length < 2)
                {
                    continue;
                }

                msg.Number    = Int32.Parse(values[0]);
                msg.Bytes     = Int32.Parse(values[1]);
                msg.Retrieved = false;

                retval.Add(msg);
            }

            result = new EMailsListElement[retval.Count];
            result = (EMailsListElement[])(retval.ToArray(typeof(EMailsListElement)));

            return(result);
        }
        override public EMailMessage GetMessageHeaders(int mailNumber, int TopLines)
        {
            EMailMessage result;
            string       commandResult = string.Empty;

            string command = string.Format(topCommand, mailNumber, TopLines);

            string response = ExecuteCommand(command, new Regex(messageEndPattern));

            string answer = GetAnswer(response, out commandResult);

            EMailsListElement element = new EMailsListElement {
                Number = mailNumber
            };

            result = new EMailMessage(element);

            EmailParser parser = new EmailParser();

            parser.ParseEMailMessageHeader(ref result, answer);

            return(result);
        }
 abstract public bool DeleteMessage(EMailsListElement ListElement);
 abstract public EMailMessage RetrieveEmail(EMailsListElement ListElement);
 override public bool DeleteMessage(EMailsListElement ListElement)
 {
     throw new NotImplementedException();
 }
 override public EMailMessage GetMessageHeaders(EMailsListElement Element, int TopLines, bool keepOpen)
 {
     throw new NotImplementedException();
 }
 override public EMailMessage RetrieveEmail(EMailsListElement ListElement)
 {
     throw new NotImplementedException();
 }