Конвертация EML и MIME
Преобразование EML и MIME
Aspose.Email FOSS for .NET включает встроенный парсер и сериализатор MIME, поэтому вы можете конвертировать между стандартными .eml файлами (RFC 5322) и файлами Outlook .msg без каких-либо внешних зависимостей. Ссылка на System.Net.Mail не требуется.
Загрузить EML в MapiMessage
LoadFromEml принимает путь к файлу, поток или массив байтов:
using System.IO;
using Aspose.Email.Foss.Msg;
// From file path
var message = MapiMessage.LoadFromEml("incoming.eml");
// From stream
using var stream = File.OpenRead("incoming.eml");
var message2 = MapiMessage.LoadFromEml(stream);
// From byte array
var emlBytes = File.ReadAllBytes("incoming.eml");
var message3 = MapiMessage.LoadFromEml(emlBytes);После загрузки доступны все стандартные поля:
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
Console.WriteLine(message.Recipients.Count);
Console.WriteLine(message.Attachments.Count);
Console.WriteLine(message.HtmlBody);Сохранить MapiMessage как EML
SaveToEml сериализует MapiMessage в формат MIME:
// To file path
message.SaveToEml("output.eml");
// To stream
using var outStream = File.Create("output.eml");
message.SaveToEml(outStream);
// To byte array
byte[] emlData = message.SaveToEml();EML → MSG Преобразование
Объедините LoadFromEml и Save для полной конвертации EML в MSG:
using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.LoadFromEml("incoming.eml");
message.Save("converted.msg");MSG → EML Преобразование
Загрузить существующий MSG и сериализовать как EML:
using var message = MapiMessage.FromFile("original.msg");
message.SaveToEml("exported.eml");Точность обратного преобразования
Следующие поля сохраняются при переходе EML → MSG → EML:
- Тема, тело и HTML‑тело
- Имя отправителя и адрес электронной почты
- Все получатели (To, Cc, Bcc)
- Вложения файлов с именем, MIME‑типом и содержимым
- Internet Message-ID
- Время доставки сообщения
// Verify round-trip
var original = MapiMessage.LoadFromEml("test.eml");
original.Save("test.msg");
using var reloaded = MapiMessage.FromFile("test.msg");
reloaded.SaveToEml("roundtrip.eml");
// Compare: original.eml and roundtrip.eml should have
// matching Subject, From, To, and attachment countСм. также
- Reading MSG Files — Загрузка и просмотр MSG‑файлов
- Features — Полный справочник функций
- MAPI Properties — Доступ к свойствам низкого уровня