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