private void TryProcessInternalDate(string data) { Match dateMatch = Expressions.InternalDateRex.Match(data); if (!dateMatch.Success) { return; } InternalDate = HeaderFieldParser.ParseDate(dateMatch.Groups[1].Value); _downloadProgress = _downloadProgress | MessageFetchMode.InternalDate; }
private void BindHeadersToFields() { foreach (var header in Headers) { switch (header.Key) { case MessageHeader.MimeVersion: MimeVersion = header.Value; break; case MessageHeader.Sender: Sender = HeaderFieldParser.ParseMailAddress(header.Value); break; case MessageHeader.Subject: Subject = StringDecoder.Decode(header.Value, true); break; case MessageHeader.To: if (To.Count == 0) { To = HeaderFieldParser.ParseMailAddressCollection(header.Value); } else { foreach (MailAddress addr in HeaderFieldParser.ParseMailAddressCollection(header.Value)) { To.Add(addr); } } break; case MessageHeader.DeliveredTo: To.Add(HeaderFieldParser.ParseMailAddress(header.Value)); break; case MessageHeader.From: From = HeaderFieldParser.ParseMailAddress(header.Value); break; case MessageHeader.Cc: Cc = HeaderFieldParser.ParseMailAddressCollection(header.Value); break; case MessageHeader.Bcc: Bcc = HeaderFieldParser.ParseMailAddressCollection(header.Value); break; case MessageHeader.Organisation: case MessageHeader.Organization: Organization = StringDecoder.Decode(header.Value, true); break; case MessageHeader.Date: Date = HeaderFieldParser.ParseDate(header.Value); break; case MessageHeader.Importance: Importance = header.Value.ToMessageImportance(); break; case MessageHeader.ContentType: ContentType = HeaderFieldParser.ParseContentType(header.Value); break; case MessageHeader.ContentTransferEncoding: ContentTransferEncoding = header.Value; break; case MessageHeader.MessageId: MessageId = header.Value; break; case MessageHeader.Mailer: case MessageHeader.XMailer: Mailer = header.Value; break; case MessageHeader.ReplyTo: ReplyTo = HeaderFieldParser.ParseMailAddressCollection(header.Value); break; case MessageHeader.Sensitivity: Sensitivity = header.Value.ToMessageSensitivity(); break; case MessageHeader.ReturnPath: ReturnPath = HeaderFieldParser.ParseMailAddress( header.Value.Split(new[] { '\r', '\n' }, StringSplitOptions.None) .Distinct() .FirstOrDefault()); break; case MessageHeader.ContentLanguage: case MessageHeader.Language: Language = header.Value; break; case MessageHeader.InReplyTo: InReplyTo = header.Value; break; case MessageHeader.Comments: Comments = header.Value; break; } } }