public MailMessage(MimeMessage message, int folder = 1, bool unread = false, string chainId = "", string streamId = "") { if (message == null) { throw new ArgumentNullException("message"); } Date = IsDateCorrect(message.Date.UtcDateTime) ? message.Date.UtcDateTime : DateTime.UtcNow; MimeMessageId = (string.IsNullOrEmpty(message.MessageId) ? MailUtil.CreateMessageId() : message.MessageId) .Trim(new[] { '<', '>' }); ChainId = string.IsNullOrEmpty(chainId) ? MimeMessageId : chainId; MimeReplyToId = ChainId.Equals(MimeMessageId) ? null : message.InReplyTo.Trim('<', '>'); ReplyTo = message.ReplyTo.ToString(); From = message.From.ToString(); FromEmail = message.From != null && message.From.Mailboxes != null && message.From.Mailboxes.Any() ? message.From.Mailboxes.First().Address : ""; ToList = message.To.Mailboxes.Select(s => new MailAddress(s.Address, s.Name)).ToList(); To = string.Join(", ", message.To.Mailboxes.Select(s => s.ToString())); CcList = message.Cc.Mailboxes.Select(s => new MailAddress(s.Address, s.Name)).ToList(); Cc = string.Join(", ", message.Cc.Mailboxes.Select(s => s.ToString())); Bcc = string.Join(", ", message.Bcc.Mailboxes.Select(s => s.ToString())); Subject = message.Subject ?? string.Empty; Important = message.Importance == MessageImportance.High || message.Priority == MessagePriority.Urgent; TextBodyOnly = false; Introduction = ""; Attachments = new List <MailAttachment>(); HtmlBodyStream = new MemoryStream(); ExtractMainParts(message); Size = HtmlBodyStream.Length > 0 ? HtmlBodyStream.Length : HtmlBody.Length; HeaderFieldNames = new NameValueCollection(); message.Headers .ToList() .ForEach(h => HeaderFieldNames.Add(h.Field, h.Value)); Folder = folder; IsNew = unread; StreamId = string.IsNullOrEmpty(streamId) ? MailUtil.CreateStreamId() : streamId; LoadCalendarInfo(message); }
public MailMessage(MimeMessage message, int folder = 1, bool unread = false, string chainId = "", string streamId = "") { if (message == null) { throw new ArgumentNullException("message"); } Date = IsDateCorrect(message.Date.UtcDateTime) ? message.Date.UtcDateTime : DateTime.UtcNow; MimeMessageId = (string.IsNullOrEmpty(message.MessageId) ? MailUtil.CreateMessageId() : message.MessageId) .Trim(new[] { '<', '>' }); ChainId = string.IsNullOrEmpty(chainId) ? MimeMessageId : chainId; MimeReplyToId = ChainId.Equals(MimeMessageId) ? null : message.InReplyTo.Trim(new[] { '<', '>' }); ReplyTo = message.ReplyTo.ToString(); From = message.From.ToString(); FromEmail = message.From != null && message.From.Mailboxes != null && message.From.Mailboxes.Any() ? message.From.Mailboxes.First().Address : ""; ToList = message.To.Mailboxes.Select(s => new MailAddress(s.Address, s.Name)).ToList(); To = string.Join(", ", message.To.Mailboxes.Select(s => s.ToString())); CcList = message.Cc.Mailboxes.Select(s => new MailAddress(s.Address, s.Name)).ToList(); Cc = string.Join(", ", message.Cc.Mailboxes.Select(s => s.ToString())); Bcc = string.Join(", ", message.Bcc.Mailboxes.Select(s => s.ToString())); Subject = message.Subject ?? string.Empty; Important = message.Importance == MessageImportance.High || message.Priority == MessagePriority.Urgent; TextBodyOnly = false; if (message.HtmlBody == null && message.TextBody == null) { HtmlBody = ""; Introduction = ""; IsBodyCorrupted = true; var messagePart = new MessagePart { Message = message, ContentDisposition = new ContentDisposition { FileName = "message.eml" } }; LoadAttachments(new List <MimeEntity> { messagePart }); } else { SetHtmlBodyAndIntroduction(message); } Size = HtmlBody.Length; HeaderFieldNames = new NameValueCollection(); if (message.Headers.Any()) { foreach (var header in message.Headers) { HeaderFieldNames.Add(header.Field, header.Value); } } Folder = folder; IsNew = unread; StreamId = string.IsNullOrEmpty(streamId) ? MailUtil.CreateStreamId() : streamId; LoadAttachments(message.Attachments); LoadEmbeddedAttachments(message); LoadCalendarInfo(message); }
public override bool Equals(object obj) { Store storeObj = (Store)obj; return(StoreId.Equals(storeObj.StoreId) && ChainId.Equals(storeObj.ChainId)); }