示例#1
0
        public void LoadMessages(String start, String end)
        {
            if (!_IsConnected)
            {
                throw new EMailException {
                          ExceptionType = EMAIL_EXCEPTION_TYPE.NOT_CONNECTED
                }
            }
            ;

            int intStart = 0;

            int.TryParse(start, out intStart);
            int intEnd = Client.Messages.Count - 1;

            int.TryParse(end, out intEnd);

            int okEnd   = (intEnd > Client.Messages.Count - 1 || intEnd < 1) ? Client.Messages.Count - 1 : intEnd;
            int okStart = (intStart <0 || intStart> okEnd) ? 0 : intStart;

            for (int i = okStart; i <= okEnd; i++)
            {
                POP3_ClientMessage   item = Client.Messages[i];
                POP3_Message_Wrapper wr   = new POP3_Message_Wrapper();
                Mail_Message         mime = Mail_Message.ParseFromByte(item.MessageToByte());

                string             body = mime.BodyText;
                Mail_t_AddressList cc   = mime.Cc;
                MIME_Entity[]      atts = mime.Attachments;
                Mail_t_AddressList to   = mime.To;

                wr.Date = mime.Date;
                foreach (var fr in mime.From)
                {
                    if (fr is Mail_t_Mailbox)
                    {
                        wr.From.Add(((Mail_t_Mailbox)fr).Address);
                    }
                }
                wr.UID            = mime.MessageID;
                wr.SequenceNumber = item.SequenceNumber;
                wr.Subject        = mime.Subject;
                wr.TextBody       = String.IsNullOrWhiteSpace(mime.BodyText) ? mime.BodyHtmlText : mime.BodyText;

                foreach (MIME_Entity entity in mime.Attachments)
                {
                    POP3_Mail_Attachment att = new POP3_Mail_Attachment();
                    if (entity.ContentDisposition != null && entity.ContentDisposition.Param_FileName != null)
                    {
                        att.Text = entity.ContentDisposition.Param_FileName;
                    }
                    else
                    {
                        att.Text = "untitled";
                    }
                    att.Body = ((MIME_b_SinglepartBase)entity.Body).Data;
                    wr.Attachments.Add(att);
                }
                _Messages.Add(wr);
            }
        }
示例#2
0
        public void LoadRecentMessages(Int32 lastSequenceNumber)
        {
            if (!_IsConnected)
            {
                throw new EMailException {
                          ExceptionType = EMAIL_EXCEPTION_TYPE.NOT_CONNECTED
                }
            }
            ;
            List <POP3_ClientMessage> lista = new List <POP3_ClientMessage>();

            foreach (POP3_ClientMessage item in Client.Messages)
            {
                lista.Add(item);
            }
            lista = lista.OrderBy(x => x.SequenceNumber).ToList();
            var nuovi = (from n in lista
                         where n.SequenceNumber > lastSequenceNumber
                         select n).ToList();

            foreach (var item in nuovi)
            {
                POP3_Message_Wrapper wr   = new POP3_Message_Wrapper();
                Mail_Message         mime = Mail_Message.ParseFromByte(item.MessageToByte());

                string             body = mime.BodyText;
                Mail_t_AddressList cc   = mime.Cc;
                MIME_Entity[]      atts = mime.Attachments;
                Mail_t_AddressList to   = mime.To;

                wr.Date = mime.Date;
                foreach (var fr in mime.From)
                {
                    if (fr is Mail_t_Mailbox)
                    {
                        wr.From.Add(((Mail_t_Mailbox)fr).Address);
                    }
                }
                wr.UID            = mime.MessageID;
                wr.SequenceNumber = item.SequenceNumber;
                wr.Subject        = mime.Subject;
                wr.TextBody       = String.IsNullOrWhiteSpace(mime.BodyText) ? mime.BodyHtmlText : mime.BodyText;

                foreach (MIME_Entity entity in mime.Attachments)
                {
                    POP3_Mail_Attachment att = new POP3_Mail_Attachment();
                    if (entity.ContentDisposition != null && entity.ContentDisposition.Param_FileName != null)
                    {
                        att.Text = entity.ContentDisposition.Param_FileName;
                    }
                    else
                    {
                        att.Text = "untitled";
                    }
                    att.Body = ((MIME_b_SinglepartBase)entity.Body).Data;
                    wr.Attachments.Add(att);
                }
                _Messages.Add(wr);
            }
        }
    }