private void FillDataRowFromMessage(EMailMessage message, ref DataRow messageRow) { EmailParser parser = new EmailParser(); messageRow[EMailTableColumns.Headers.ToString()] = message.Header; messageRow[EMailTableColumns.From.ToString()] = (message.From == null ? string.Empty : string.Format("{0} <{1}>", message.From.DisplayName, message.From.Address)); messageRow[EMailTableColumns.Priority.ToString()] = message.Priority.ToString(); messageRow[EMailTableColumns.Number.ToString()] = message.Number; messageRow[EMailTableColumns.ReplyTo.ToString()] = (message.ReplyTo == null ? string.Empty : string.Format("{0} <{1}>", message.ReplyTo.DisplayName, message.ReplyTo.Address)); messageRow[EMailTableColumns.Sender.ToString()] = (message.Sender == null ? string.Empty : string.Format("{0} <{1}>", message.Sender.DisplayName, message.Sender.Address)); messageRow[EMailTableColumns.Subject.ToString()] = message.Subject; messageRow[EMailTableColumns.Bytes.ToString()] = message.Bytes; messageRow[EMailTableColumns.Retrieved.ToString()] = message.Retrieved; try { messageRow[EMailTableColumns.Date.ToString()] = ((message.Date == null || message.Date == string.Empty) ? DateTime.MinValue.ToShortDateString() : message.Date); } catch { messageRow[EMailTableColumns.Date.ToString()] = DateTime.MinValue; } StringBuilder bldr = new StringBuilder(); if (message.To != null) { foreach (EMailAddress to in message.To) { // TODO: review EmailParser instanciation bldr.AppendFormat("{0} ", new EmailParser().GetEMailAddressTag(to)); } messageRow[EMailTableColumns.To.ToString()] = bldr.ToString(); } }
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); }
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); }