Загрузка и разбор файлов MSG
С помощью Aspose.Email для .NET разработчики могут загружать и разбирать содержимое файлов сообщений Outlook.
- Чтобы загрузить MSG‑файлы с диска, используйте статический MapiMessage.Load метод MapiMessage класс. Класс предоставляет несколько статических функций загрузки для различных сценариев.
- Чтобы разобрать содержимое файла MSG, MapiMessage предоставляет ряд методов и свойств.
В этой статье вы узнаете, как загрузить и разобрать MSG‑файл, чтобы отобразить его содержимое. Примеры кода с пошаговыми инструкциями дадут чёткое представление о том, как реализовать функциональность загрузки и разбора Outlook MSG‑файлов в вашем проекте.
Сначала изучите, как загружать MSG‑файлы из файла или из потока.
Загрузка MSG‑файлов
Следующий фрагмент кода показывает, как загрузить файлы MSG.
// Create an instance of MapiMessage from file
var msg = MapiMessage.Load(@"message.msg");
// Get subject
Console.WriteLine("Subject:" + msg.Subject);
// Get from address
Console.WriteLine("From:" + msg.SenderEmailAddress);
// Get body
Console.WriteLine("Body" + msg.Body);
// Get recipients information
Console.WriteLine("Recipient: " + msg.Recipients);
// Get attachments
foreach (var att in msg.Attachments)
{
Console.Write("Attachment Name: " + att.FileName);
Console.Write("Attachment Display Name: " + att.DisplayName);
}
Следующий пример кода показывает, как использовать MailMessage для загрузки сообщения в формате MSG.
var eml = MailMessage.Load("message.msg");
Следует отметить, что полученное сообщение конвертируется в формат EML, включая вложения сообщений. Не используйте этот метод загрузки, если вы хотите сохранить некоторые специфические свойства формата msg оригинального сообщения.
Чтобы сохранить оригинальный формат вложений сообщений, используйте msgLoadOptions.PreserveEmbeddedMessageFormat свойство.
var msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.PreserveEmbeddedMessageFormat = true;
var msg = MailMessage.Load(stream, msgLoadOptions);
Загрузка из потока
Следующий фрагмент кода показывает, как загрузить файл из потока.
// Create an instance of MapiMessage from file
byte[] bytes = File.ReadAllBytes(@"message.msg");
using (MemoryStream stream = new MemoryStream(bytes))
{
stream.Seek(0, SeekOrigin.Begin);
// Create an instance of MapiMessage from file
MapiMessage msg = MapiMessage.Load(stream);
// Get subject
Console.WriteLine("Subject:" + msg.Subject);
// Get from address
Console.WriteLine("From:" + msg.SenderEmailAddress);
// Get body
Console.WriteLine("Body" + msg.Body);
}
Конвертация EML в MSG с сохранением формата вложенного EML
Файлы EML можно загрузить в MapiMessage класс, создав MailMessage объект и передавая его в MapiMessage.FromMailMessage метод. Если файл EML содержит вложенные файлы EML, используйте MapiConversionOptions.PreserveEmbeddedMessageFormat для сохранения формата вложенных файлов EML. Приведённый ниже фрагмент кода показывает, как загрузить файлы EML в MapiMessage с сохранением формата вложенных файлов EML.
// Load the EML file into a MailMessage object
var mailMessage = MailMessage.Load(emlFilePath);
// Set conversion options to preserve the format of embedded EML messages
var options = new MapiConversionOptions
{
PreserveEmbeddedMessageFormat = true
};
// Convert MailMessage to MapiMessage, preserving embedded EML files
var mapiMessage = MapiMessage.FromMailMessage(mailMessage, options);
// Save the converted message in MSG format
mapiMessage.Save(msgFilePath);
Попробуйте!
Конвертировать электронные письма и архивы сообщений онлайн бесплатно Приложение конвертации Aspose.Email.
Разбор файлов сообщений Outlook
Aspose.Email для .NET предоставляет MapiMessage класс, используемый для открытия и разбора файла MSG. Поскольку в файле MSG может быть много получателей, MapiMessage класс раскрывает Получатели свойство, которое возвращает MapiRecipientCollection который представляет собой коллекцию Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: объекты. The Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: объект дополнительно предоставляет методы для работы с атрибутами получателей.
Следующая последовательность шагов служит этой цели:
- Создать экземпляр MapiMessage класс, используя MapiMessage.Load статический метод.
- Отобразить имя отправителя, тему и тело из файла MSG с помощью SenderName, Subject и Тело свойства.
- Используйте Получатели свойство для получения ссылки на коллекцию Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: метод для получения ссылки на коллекцию
- Переберите MapiRecipientCollection коллекцию для отображения содержимого каждого Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: для отображения содержимого, относящегося к каждому
//Instantiate an MSG file to load an MSG file from disk
var outlookMessageFile = MapiMessage.Load(dataDir + "message.msg");
//Display sender's name
Console.WriteLine("Sender Name : " + outlookMessageFile.SenderName);
//Display Subject
Console.WriteLine("Subject : " + outlookMessageFile.Subject);
//Display Body
Console.WriteLine("Body : " + outlookMessageFile.Body);
//Display Recipient's info
Console.WriteLine("Recipients : \n");
//Loop through the recipients collection associated with the MapiMessage object
foreach (var rcp in outlookMessageFile.Recipients)
{
//Display recipient email address
Console.WriteLine("Email : " + rcp.EmailAddress);
//Display recipient name
Console.WriteLine("Name : " + rcp.DisplayName);
//Display recipient type
Console.WriteLine("Recipient Type : " + rcp.RecipientType);
}
Попробуйте!
Разбирайте файлы электронной почты онлайн бесплатно Aspose.Email Parser App.