public static CreateMailMessageFromEntity ( |
||
entity | /// The entity. /// | |
return | MailMessageEx |
/// <summary> /// Toes the mail message ex. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <returns> /// </returns> private MailMessageEx ToMailMessageEx(MimeEntity entity) { if (entity == null) { throw new ArgumentNullException("entity"); } // parse standard headers and create base email. MailMessageEx message = MailMessageEx.CreateMailMessageFromEntity(entity); if (!string.IsNullOrEmpty(entity.ContentType.Boundary)) { message = MailMessageEx.CreateMailMessageFromEntity(entity); this.BuildMultiPartMessage(entity, message); } // parse multipart message into sub parts. else if (string.Equals( entity.ContentType.MediaType, MediaTypes.MessageRfc822, StringComparison.InvariantCultureIgnoreCase)) { // use the first child to create the multipart message. if (entity.Children.Count < 0) { throw new Exception("Invalid child count on message/rfc822 entity."); } // create the mail message from the first child because it will // contain all of the mail headers. The entity in this state // only contains simple content type headers indicating, disposition, type and description. // This means we can't create the mail message from this type as there is no // internet mail headers attached to this entity. message = MailMessageEx.CreateMailMessageFromEntity(entity.Children[0]); this.BuildMultiPartMessage(entity, message); } // parse nested message. else { message = MailMessageEx.CreateMailMessageFromEntity(entity); this.BuildSinglePartMessage(entity, message); } // Create single part message. return(message); }