Завантаження та розбір 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 яка представляє колекцію MapiRecipient об’єкти. The MapiRecipient об’єкт також надає методи для роботи з атрибутами одержувачів.
Наступна послідовність кроків виконує цю задачу:
- Створіть екземпляр MapiMessage клас, використовуючи MapiMessage.Load статичний метод.
- Відобразіть ім’я відправника, тему та тіло з файлу MSG, використовуючи SenderName, Subject і Тіло властивості.
- Використайте Отримувачі властивість для отримання посилання на колекцію MapiRecipient об’єктів, пов’язаних з файлом MSG.
- Перебрати MapiRecipientCollection колекція для відображення вмісту кожного MapiRecipient об’єкт через його публічні методи.
//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.