Ваш вопрос содержит тег .net, поэтому, возможно, эта ветка полезна:
Как конвертировать .msg в .eml
Например:
Сохранить письмо как файл с MailMessage:
_SmtpClient.PickupDirectoryLocation = "C:\\";
_SmtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
_SmtpClient.Send(_Mail);
Затем можно использовать Indy (Internet Direct), который предоставляет процедуру в классе TIdMessage
(unit IdMessage) для чтения SMTP-сообщения из файла
procedure TIdMessage.LoadFromFile(const AFileName: string;
const AHeadersOnly: Boolean = False);