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();
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }