/// <summary> /// Creates Mail message object from file. /// </summary> /// <param name="mailPath">EML file path.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromFile(string mailPath) { using (MailMimeReader mimeDecoder = new MailMimeReader()) { return(mimeDecoder.GetEmail(mailPath)); } }
/// <summary> /// Creates Mail message object from stream. /// </summary> /// <param name="emailStream">email stream.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromStream(Stream emailStream) { using (MailMimeReader mimeDecoder = new MailMimeReader()) { return(mimeDecoder.GetEmail(emailStream)); } }
/// <summary> /// Creates Mail message object from stream. /// </summary> /// <param name="mimeDecoder">read MIME object</param> /// <param name="emailStream">The email stream.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromStream(MailMimeReader mimeDecoder, Stream emailStream) { MailMessageParser result = null; if (mimeDecoder != null) { result = mimeDecoder.GetEmail(emailStream); } else { result = null; } return(result); }
/// <summary> /// Creates Mail message object from file. /// </summary> /// <param name="mimeDecoder">read MIME object</param> /// <param name="mailPath">EML file path.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromFile(MailMimeReader mimeDecoder, string mailPath) { MailMessageParser result = null; if (null != mimeDecoder) { result = mimeDecoder.GetEmail(mailPath); } else { result = null; } return(result); }
/// <summary> /// Gets the uploaded email file properties. /// </summary> /// <param name="fileStream">The file stream.</param> /// <param name="mailProperties">The mail properties.</param> /// <returns>Dictionary string key value pair for mail properties</returns> public static Dictionary<string, string> GetMailFileProperties(System.IO.Stream fileStream, Dictionary<string, string> mailProperties) { if (null != mailProperties && mailProperties.ContainsKey(ConstantStrings.MailFileExtensionKey)) { if (string.Equals(mailProperties[ConstantStrings.MailFileExtensionKey], ConstantStrings.EmailFileExtension, StringComparison.OrdinalIgnoreCase)) { MailMimeReader mime = new MailMimeReader(); MailMessageParser messageParser = mime.GetEmail(fileStream); string fromDisplayName = Convert.ToString(messageParser.From.DisplayName, CultureInfo.InvariantCulture); mailProperties[ConstantStrings.MailSenderKey] = String.Concat(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), ConstantStrings.Semicolon, fromDisplayName.Replace(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), string.Empty).Replace(ConstantStrings.OpeningBracket + ConstantStrings.ClosingBracket, string.Empty)); mailProperties[ConstantStrings.MailSearchEmailSubject] = messageParser.Subject; mailProperties[ConstantStrings.MailSentDateKey] = Convert.ToString(messageParser.DeliveryDate, CultureInfo.InvariantCulture); mailProperties[ConstantStrings.MailReceivedDateKey] = Convert.ToString(messageParser.ReceivedDate, CultureInfo.InvariantCulture); mailProperties[ConstantStrings.MailOriginalName] = messageParser.Subject; StringBuilder mailReceiver = new StringBuilder(); StringBuilder mailCCAddress = new StringBuilder(); StringBuilder attachmentName = new StringBuilder(); foreach (MailAddress toItem in messageParser.To) { string toMailAlias = Convert.ToString(toItem.Address, CultureInfo.InvariantCulture); string toMailName = Convert.ToString(toItem.DisplayName, CultureInfo.InvariantCulture); if (toMailName.Contains(toMailAlias)) { toMailName = toMailName.Replace(toMailAlias, string.Empty).Replace(ConstantStrings.OpeningBracket + ConstantStrings.ClosingBracket, string.Empty); } mailReceiver.Append(toMailAlias + ConstantStrings.Semicolon + toMailName + ConstantStrings.Semicolon); } mailProperties[ConstantStrings.MailReceiverKey] = Convert.ToString(mailReceiver, CultureInfo.InvariantCulture); foreach (MailAddress itemCC in messageParser.CC) { string mailCCAlias = Convert.ToString(itemCC.Address, CultureInfo.InvariantCulture); string mailCCName = Convert.ToString(itemCC.DisplayName, CultureInfo.InvariantCulture); if (mailCCName.Contains(mailCCAlias)) { mailCCName = mailCCName.Replace(mailCCAlias, string.Empty).Replace(ConstantStrings.OpeningBracket + ConstantStrings.ClosingBracket, string.Empty); } mailCCAddress.Append(mailCCAlias + ConstantStrings.Semicolon + mailCCName + ConstantStrings.Semicolon); } mailProperties[ConstantStrings.MailCCAddressKey] = Convert.ToString(mailCCAddress, CultureInfo.InvariantCulture); foreach (System.Net.Mail.Attachment itemAttachment in messageParser.Attachments) { if (!string.IsNullOrWhiteSpace(itemAttachment.Name)) { attachmentName.Append(itemAttachment.Name + ConstantStrings.Semicolon); } } for (int mailEntitiesCount = 0; mailEntitiesCount < messageParser.Entities.Count; mailEntitiesCount++) { if (string.Equals(messageParser.Entities[mailEntitiesCount].MediaMainType, ConstantStrings.MailAttachmentMediaMainType, StringComparison.CurrentCultureIgnoreCase)) { attachmentName.Append(messageParser.Entities[mailEntitiesCount].ContentDescription + ConstantStrings.Semicolon); } } mailProperties[ConstantStrings.MailAttachmentKey] = Convert.ToString(attachmentName, CultureInfo.InvariantCulture); // Setting email importance mailProperties[ConstantStrings.MailImportanceKey] = (!string.IsNullOrWhiteSpace(messageParser.MailImportance) ? messageParser.MailImportance : ConstantStrings.MailDefaultImportance); // Setting email categories mailProperties[ConstantStrings.MailCategoriesKey] = (!string.IsNullOrWhiteSpace(messageParser.MailCategories) ? messageParser.MailCategories.Replace(ConstantStrings.Comma, ConstantStrings.Semicolon) : string.Empty); } } return mailProperties; }
/// <summary> /// Creates Mail message object from stream. /// </summary> /// <param name="mimeDecoder">read MIME object</param> /// <param name="emailStream">The email stream.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromStream(MailMimeReader mimeDecoder, Stream emailStream) { MailMessageParser result = null; if (mimeDecoder != null) { result = mimeDecoder.GetEmail(emailStream); } else { result = null; } return result; }
/// <summary> /// Creates Mail message object from stream. /// </summary> /// <param name="emailStream">email stream.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromStream(Stream emailStream) { using (MailMimeReader mimeDecoder = new MailMimeReader()) { return mimeDecoder.GetEmail(emailStream); } }
/// <summary> /// Creates Mail message object from file. /// </summary> /// <param name="mimeDecoder">read MIME object</param> /// <param name="mailPath">EML file path.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromFile(MailMimeReader mimeDecoder, string mailPath) { MailMessageParser result = null; if (null != mimeDecoder) { result = mimeDecoder.GetEmail(mailPath); } else { result = null; } return result; }
/// <summary> /// Creates Mail message object from file. /// </summary> /// <param name="mailPath">EML file path.</param> /// <returns>Mime decoded email object</returns> public static MailMessageParser CreateFromFile(string mailPath) { using (MailMimeReader mimeDecoder = new MailMimeReader()) { return mimeDecoder.GetEmail(mailPath); } }
/// <summary> /// Gets the uploaded email file properties.... /// </summary> /// <param name="fileStream">The file stream.</param> /// <param name="mailProperties">The mail properties.</param> /// <returns>Dictionary string key value pair for mail properties</returns> public static Dictionary <string, string> GetMailFileProperties(System.IO.Stream fileStream, Dictionary <string, string> mailProperties) { if (null != mailProperties && mailProperties.ContainsKey(ServiceConstants.MAIL_FILE_EXTENSION_KEY)) { if (string.Equals(mailProperties[ServiceConstants.MAIL_FILE_EXTENSION_KEY], ServiceConstants.EMAIL_FILE_EXTENSION, StringComparison.OrdinalIgnoreCase)) { MailMimeReader mime = new MailMimeReader(); MailMessageParser messageParser = mime.GetEmail(fileStream); string fromDisplayName = Convert.ToString(messageParser.From.DisplayName, CultureInfo.InvariantCulture); mailProperties[ServiceConstants.MAIL_SENDER_KEY] = String.Concat(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), ServiceConstants.SEMICOLON, fromDisplayName.Replace(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), string.Empty).Replace(ServiceConstants.OPENING_BRACKET + ServiceConstants.CLOSING_BRACKET, string.Empty)); mailProperties[ServiceConstants.MAIL_SEARCH_EMAIL_SUBJECT] = messageParser.Subject; mailProperties[ServiceConstants.MAIL_SENT_DATE_KEY] = Convert.ToString(messageParser.DeliveryDate, CultureInfo.InvariantCulture); mailProperties[ServiceConstants.MAIL_RECEIVED_DATEKEY] = Convert.ToString(messageParser.ReceivedDate, CultureInfo.InvariantCulture); mailProperties[ServiceConstants.MAIL_ORIGINAL_NAME] = messageParser.Subject; StringBuilder mailReceiver = new StringBuilder(); StringBuilder mailCCAddress = new StringBuilder(); StringBuilder attachmentName = new StringBuilder(); foreach (MailAddress toItem in messageParser.To) { string toMailAlias = Convert.ToString(toItem.Address, CultureInfo.InvariantCulture); string toMailName = Convert.ToString(toItem.DisplayName, CultureInfo.InvariantCulture); if (toMailName.Contains(toMailAlias)) { toMailName = toMailName.Replace(toMailAlias, string.Empty).Replace(ServiceConstants.OPENING_BRACKET + ServiceConstants.CLOSING_BRACKET, string.Empty); } mailReceiver.Append(toMailAlias + ServiceConstants.SEMICOLON + toMailName + ServiceConstants.SEMICOLON); } mailProperties[ServiceConstants.MAIL_RECEIVER_KEY] = Convert.ToString(mailReceiver, CultureInfo.InvariantCulture); foreach (MailAddress itemCC in messageParser.CC) { string mailCCAlias = Convert.ToString(itemCC.Address, CultureInfo.InvariantCulture); string mailCCName = Convert.ToString(itemCC.DisplayName, CultureInfo.InvariantCulture); if (mailCCName.Contains(mailCCAlias)) { mailCCName = mailCCName.Replace(mailCCAlias, string.Empty).Replace(ServiceConstants.OPENING_BRACKET + ServiceConstants.CLOSING_BRACKET, string.Empty); } mailCCAddress.Append(mailCCAlias + ServiceConstants.SEMICOLON + mailCCName + ServiceConstants.SEMICOLON); } mailProperties[ServiceConstants.MAIL_CC_ADDRESS_KEY] = Convert.ToString(mailCCAddress, CultureInfo.InvariantCulture); foreach (System.Net.Mail.Attachment itemAttachment in messageParser.Attachments) { if (!string.IsNullOrWhiteSpace(itemAttachment.Name)) { attachmentName.Append(itemAttachment.Name + ServiceConstants.SEMICOLON); } } for (int mailEntitiesCount = 0; mailEntitiesCount < messageParser.Entities.Count; mailEntitiesCount++) { if (string.Equals(messageParser.Entities[mailEntitiesCount].MediaMainType, ServiceConstants.MAIL_ATTACHMENT_MEDIA_MAINT_YPE, StringComparison.CurrentCultureIgnoreCase)) { attachmentName.Append(messageParser.Entities[mailEntitiesCount].ContentDescription + ServiceConstants.SEMICOLON); } } mailProperties[ServiceConstants.MAIL_ATTACHMENT_KEY] = Convert.ToString(attachmentName, CultureInfo.InvariantCulture); // Setting email importance mailProperties[ServiceConstants.MAIL_IMPORTANCE_KEY] = (!string.IsNullOrWhiteSpace(messageParser.MailImportance) ? messageParser.MailImportance : ServiceConstants.MAIL_DEFAULT_IMPORTANCE); // Setting email categories mailProperties[ServiceConstants.MAIL_CATEGORIES_KEY] = (!string.IsNullOrWhiteSpace(messageParser.MailCategories) ? messageParser.MailCategories.Replace(ServiceConstants.COMMA, ServiceConstants.SEMICOLON) : string.Empty); } } return(mailProperties); }
/// <summary> /// Uploads the email to specified folder in matter library. /// </summary> /// <param name="requestObject">web request object</param> /// <param name="client">Provider Service client Object</param> /// <param name="folderPath">target folder path for upload</param> /// <param name="filename">Name of the file</param> /// <param name="documentLibraryName">Name of the document library</param> /// <param name="xmlDocument">Mail XML Content</param> /// <param name="message">Reference object for the message to be returned</param> internal void UploadMail(Client client, string folderPath, string fileName, string documentLibraryName, XmlDocument xmlDocument, ref string message) { var bytes = (dynamic)null; try { XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDocument.NameTable); nsmgr.AddNamespace("s", ServiceConstants.SOAP_ENVELOP_URI); nsmgr.AddNamespace("m", ServiceConstants.EXCHANGE_SERVICE_MESSAGE); nsmgr.AddNamespace("t", ServiceConstants.EXCHANGE_SERVICE_TYPES); MailMetaData mailMetaData = new MailMetaData(); bytes = GetEmailProperties(xmlDocument, ref mailMetaData); using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (MailMimeReader mime = new MailMimeReader()) { MailMessageParser messageParser = mime.GetEmail(memoryStream); mailMetaData.mailImportance = (string.IsNullOrWhiteSpace(messageParser.MailImportance)) ? ServiceConstants.MAIL_DEFAULT_IMPORTANCE : messageParser.MailImportance; mailMetaData.receivedDate = (string.IsNullOrWhiteSpace(messageParser.ReceivedDate.Date.ToShortDateString())) ? string.Empty : Convert.ToString(messageParser.ReceivedDate, CultureInfo.InvariantCulture); UploadToFolder(client, folderPath, fileName, string.Empty, memoryStream, documentLibraryName, mailMetaData, ref message); } } } catch (Exception exception) { //Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName); } }
/// <summary> /// Gets the uploaded email file properties. /// </summary> /// <param name="fileStream">The file stream.</param> /// <param name="mailProperties">The mail properties.</param> /// <returns>Dictionary string key value pair for mail properties</returns> public static Dictionary <string, string> GetMailFileProperties(System.IO.Stream fileStream, Dictionary <string, string> mailProperties) { if (null != mailProperties && mailProperties.ContainsKey(ConstantStrings.MailFileExtensionKey)) { if (string.Equals(mailProperties[ConstantStrings.MailFileExtensionKey], ConstantStrings.EmailFileExtension, StringComparison.OrdinalIgnoreCase)) { MailMimeReader mime = new MailMimeReader(); MailMessageParser messageParser = mime.GetEmail(fileStream); string fromDisplayName = Convert.ToString(messageParser.From.DisplayName, CultureInfo.InvariantCulture); mailProperties[ConstantStrings.MailSenderKey] = String.Concat(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), ConstantStrings.Semicolon, fromDisplayName.Replace(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), string.Empty).Replace(ConstantStrings.OpeningBracket + ConstantStrings.ClosingBracket, string.Empty)); mailProperties[ConstantStrings.MailSearchEmailSubject] = messageParser.Subject; mailProperties[ConstantStrings.MailSentDateKey] = Convert.ToString(messageParser.DeliveryDate, CultureInfo.InvariantCulture); mailProperties[ConstantStrings.MailReceivedDateKey] = Convert.ToString(messageParser.ReceivedDate, CultureInfo.InvariantCulture); mailProperties[ConstantStrings.MailOriginalName] = messageParser.Subject; StringBuilder mailReceiver = new StringBuilder(); StringBuilder mailCCAddress = new StringBuilder(); StringBuilder attachmentName = new StringBuilder(); foreach (MailAddress toItem in messageParser.To) { string toMailAlias = Convert.ToString(toItem.Address, CultureInfo.InvariantCulture); string toMailName = Convert.ToString(toItem.DisplayName, CultureInfo.InvariantCulture); if (toMailName.Contains(toMailAlias)) { toMailName = toMailName.Replace(toMailAlias, string.Empty).Replace(ConstantStrings.OpeningBracket + ConstantStrings.ClosingBracket, string.Empty); } mailReceiver.Append(toMailAlias + ConstantStrings.Semicolon + toMailName + ConstantStrings.Semicolon); } mailProperties[ConstantStrings.MailReceiverKey] = Convert.ToString(mailReceiver, CultureInfo.InvariantCulture); foreach (MailAddress itemCC in messageParser.CC) { string mailCCAlias = Convert.ToString(itemCC.Address, CultureInfo.InvariantCulture); string mailCCName = Convert.ToString(itemCC.DisplayName, CultureInfo.InvariantCulture); if (mailCCName.Contains(mailCCAlias)) { mailCCName = mailCCName.Replace(mailCCAlias, string.Empty).Replace(ConstantStrings.OpeningBracket + ConstantStrings.ClosingBracket, string.Empty); } mailCCAddress.Append(mailCCAlias + ConstantStrings.Semicolon + mailCCName + ConstantStrings.Semicolon); } mailProperties[ConstantStrings.MailCCAddressKey] = Convert.ToString(mailCCAddress, CultureInfo.InvariantCulture); foreach (System.Net.Mail.Attachment itemAttachment in messageParser.Attachments) { if (!string.IsNullOrWhiteSpace(itemAttachment.Name)) { attachmentName.Append(itemAttachment.Name + ConstantStrings.Semicolon); } } for (int mailEntitiesCount = 0; mailEntitiesCount < messageParser.Entities.Count; mailEntitiesCount++) { if (string.Equals(messageParser.Entities[mailEntitiesCount].MediaMainType, ConstantStrings.MailAttachmentMediaMainType, StringComparison.CurrentCultureIgnoreCase)) { attachmentName.Append(messageParser.Entities[mailEntitiesCount].ContentDescription + ConstantStrings.Semicolon); } } mailProperties[ConstantStrings.MailAttachmentKey] = Convert.ToString(attachmentName, CultureInfo.InvariantCulture); // Setting email importance mailProperties[ConstantStrings.MailImportanceKey] = (!string.IsNullOrWhiteSpace(messageParser.MailImportance) ? messageParser.MailImportance : ConstantStrings.MailDefaultImportance); // Setting email categories mailProperties[ConstantStrings.MailCategoriesKey] = (!string.IsNullOrWhiteSpace(messageParser.MailCategories) ? messageParser.MailCategories.Replace(ConstantStrings.Comma, ConstantStrings.Semicolon) : string.Empty); } } return(mailProperties); }
/// <summary> /// Gets the uploaded email file properties.... /// </summary> /// <param name="fileStream">The file stream.</param> /// <param name="mailProperties">The mail properties.</param> /// <returns>Dictionary string key value pair for mail properties</returns> public static Dictionary<string, string> GetMailFileProperties(System.IO.Stream fileStream, Dictionary<string, string> mailProperties) { if (null != mailProperties && mailProperties.ContainsKey(ServiceConstants.MAIL_FILE_EXTENSION_KEY)) { if (string.Equals(mailProperties[ServiceConstants.MAIL_FILE_EXTENSION_KEY], ServiceConstants.EMAIL_FILE_EXTENSION, StringComparison.OrdinalIgnoreCase)) { MailMimeReader mime = new MailMimeReader(); MailMessageParser messageParser = mime.GetEmail(fileStream); string fromDisplayName = Convert.ToString(messageParser.From.DisplayName, CultureInfo.InvariantCulture); mailProperties[ServiceConstants.MAIL_SENDER_KEY] = String.Concat(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), ServiceConstants.SEMICOLON, fromDisplayName.Replace(Convert.ToString(messageParser.From.Address, CultureInfo.InvariantCulture), string.Empty).Replace(ServiceConstants.OPENING_BRACKET + ServiceConstants.CLOSING_BRACKET, string.Empty)); mailProperties[ServiceConstants.MAIL_SEARCH_EMAIL_SUBJECT] = messageParser.Subject; mailProperties[ServiceConstants.MAIL_SENT_DATE_KEY] = Convert.ToString(messageParser.DeliveryDate, CultureInfo.InvariantCulture); mailProperties[ServiceConstants.MAIL_RECEIVED_DATEKEY] = Convert.ToString(messageParser.ReceivedDate, CultureInfo.InvariantCulture); mailProperties[ServiceConstants.MAIL_ORIGINAL_NAME] = messageParser.Subject; StringBuilder mailReceiver = new StringBuilder(); StringBuilder mailCCAddress = new StringBuilder(); StringBuilder attachmentName = new StringBuilder(); foreach (MailAddress toItem in messageParser.To) { string toMailAlias = Convert.ToString(toItem.Address, CultureInfo.InvariantCulture); string toMailName = Convert.ToString(toItem.DisplayName, CultureInfo.InvariantCulture); if (toMailName.Contains(toMailAlias)) { toMailName = toMailName.Replace(toMailAlias, string.Empty).Replace(ServiceConstants.OPENING_BRACKET + ServiceConstants.CLOSING_BRACKET, string.Empty); } mailReceiver.Append(toMailAlias + ServiceConstants.SEMICOLON + toMailName + ServiceConstants.SEMICOLON); } mailProperties[ServiceConstants.MAIL_RECEIVER_KEY] = Convert.ToString(mailReceiver, CultureInfo.InvariantCulture); foreach (MailAddress itemCC in messageParser.CC) { string mailCCAlias = Convert.ToString(itemCC.Address, CultureInfo.InvariantCulture); string mailCCName = Convert.ToString(itemCC.DisplayName, CultureInfo.InvariantCulture); if (mailCCName.Contains(mailCCAlias)) { mailCCName = mailCCName.Replace(mailCCAlias, string.Empty).Replace(ServiceConstants.OPENING_BRACKET + ServiceConstants.CLOSING_BRACKET, string.Empty); } mailCCAddress.Append(mailCCAlias + ServiceConstants.SEMICOLON + mailCCName + ServiceConstants.SEMICOLON); } mailProperties[ServiceConstants.MAIL_CC_ADDRESS_KEY] = Convert.ToString(mailCCAddress, CultureInfo.InvariantCulture); foreach (System.Net.Mail.Attachment itemAttachment in messageParser.Attachments) { if (!string.IsNullOrWhiteSpace(itemAttachment.Name)) { attachmentName.Append(itemAttachment.Name + ServiceConstants.SEMICOLON); } } for (int mailEntitiesCount = 0; mailEntitiesCount < messageParser.Entities.Count; mailEntitiesCount++) { if (string.Equals(messageParser.Entities[mailEntitiesCount].MediaMainType, ServiceConstants.MAIL_ATTACHMENT_MEDIA_MAINT_YPE, StringComparison.CurrentCultureIgnoreCase)) { attachmentName.Append(messageParser.Entities[mailEntitiesCount].ContentDescription + ServiceConstants.SEMICOLON); } } mailProperties[ServiceConstants.MAIL_ATTACHMENT_KEY] = Convert.ToString(attachmentName, CultureInfo.InvariantCulture); // Setting email importance mailProperties[ServiceConstants.MAIL_IMPORTANCE_KEY] = (!string.IsNullOrWhiteSpace(messageParser.MailImportance) ? messageParser.MailImportance : ServiceConstants.MAIL_DEFAULT_IMPORTANCE); // Setting email categories mailProperties[ServiceConstants.MAIL_CATEGORIES_KEY] = (!string.IsNullOrWhiteSpace(messageParser.MailCategories) ? messageParser.MailCategories.Replace(ServiceConstants.COMMA, ServiceConstants.SEMICOLON) : string.Empty); } } return mailProperties; }
/// <summary> /// Uploads the email to specified folder in matter library. /// </summary> /// <param name="requestObject">web request object</param> /// <param name="client">Provider Service client Object</param> /// <param name="folderPath">target folder path for upload</param> /// <param name="filename">Name of the file</param> /// <param name="documentLibraryName">Name of the document library</param> /// <param name="xmlDocument">Mail XML Content</param> /// <param name="message">Reference object for the message to be returned</param> internal static void UploadMail(RequestObject requestObject, Client client, string folderPath, string fileName, string documentLibraryName, XmlDocument xmlDocument, ref string message) { var bytes = (dynamic)null; try { XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDocument.NameTable); nsmgr.AddNamespace("s", ConstantStrings.SoapEnvelopURI); nsmgr.AddNamespace("m", ConstantStrings.ExchangeServiceMessage); nsmgr.AddNamespace("t", ConstantStrings.ExchangeServiceTypes); MailMetaData mailMetaData = new MailMetaData(); bytes = GetEmailProperties(xmlDocument, ref mailMetaData); using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (MailMimeReader mime = new MailMimeReader()) { MailMessageParser messageParser = mime.GetEmail(memoryStream); mailMetaData.mailImportance = (string.IsNullOrWhiteSpace(messageParser.MailImportance)) ? ConstantStrings.MailDefaultImportance : messageParser.MailImportance; mailMetaData.receivedDate = (string.IsNullOrWhiteSpace(messageParser.ReceivedDate.Date.ToShortDateString())) ? string.Empty : Convert.ToString(messageParser.ReceivedDate, CultureInfo.InvariantCulture); UploadToFolder(requestObject, client, folderPath, fileName, string.Empty, memoryStream, documentLibraryName, mailMetaData, ref message); } } } catch (Exception exception) { Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName); } }