Carregando e analisando arquivos MSG
Usando Aspose.Email para .NET, os desenvolvedores podem carregar e analisar conteúdos de arquivos de mensagem do Outlook.
- Para carregar arquivos MSG do disco, use o estático MapiMessage.Load método do MapiMessage classe. A classe fornece várias funções estáticas de carregamento para diferentes cenários.
- Para analisar o conteúdo de arquivos MSG, o MapiMessage exibe vários métodos e propriedades.
Neste artigo você aprenderá como carregar e analisar um arquivo MSG para exibir seu conteúdo. Os exemplos de código com etapas lhe darão uma compreensão clara de como implementar a funcionalidade de carregamento e análise de arquivos Outlook MSG em seu projeto.
Primeiro, aprenda a carregar arquivos MSG a partir de arquivo ou de stream.
Carregar Arquivos MSG
O trecho de código a seguir mostra como carregar arquivos 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);
}
O exemplo de código a seguir mostra como usar MailMessage para carregar uma mensagem em formato MSG.
var eml = MailMessage.Load("message.msg");
Deve‑se notar que a mensagem resultante é convertida para o formato EML, incluindo anexos de mensagens incorporadas. Não use este método de carregamento se quiser preservar algumas propriedades específicas do formato MSG da mensagem original.
Para preservar o formato original dos anexos de mensagens incorporadas, use o msgLoadOptions.PreserveEmbeddedMessageFormat propriedade.
var msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.PreserveEmbeddedMessageFormat = true;
var msg = MailMessage.Load(stream, msgLoadOptions);
Carregar a partir de Stream
O trecho de código a seguir mostra como carregar um arquivo a partir de stream.
// 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);
}
Converter EML para MSG Preservando o Formato EML Incorporado
Arquivos EML podem ser carregados em MapiMessage classe instanciando um MailMessage objeto e passá‑lo para MapiMessage.FromMailMessage método. Se o arquivo EML contiver arquivos EML incorporados, use MapiConversionOptions.PreserveEmbeddedMessageFormat para reter o formato dos arquivos EML incorporados. O trecho de código abaixo mostra como carregar arquivos EML em MapiMessage enquanto preserva o formato dos arquivos EML incorporados.
// 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);
Experimente!
Converta e‑mails & arquivos de mensagens online com o gratuito Aspose.Email Conversion App.
Analisar Arquivos de Mensagem do Outlook
Aspose.Email para .NET fornece o MapiMessage classe usada para abrir e analisar um arquivo MSG. Como pode haver muitos destinatários em um arquivo MSG, o MapiMessage A classe expõe o Destinatários propriedade que retorna um MapiRecipientCollection que representa uma coleção de MapiRecipient objetos. O MapiRecipient o objeto expõe ainda mais métodos para trabalhar com atributos de destinatário.
A sequência de etapas a seguir serve a esse propósito:
- Crie uma instância do MapiMessage classe usando o MapiMessage.Load método estático.
- Exiba o nome do remetente, assunto e corpo do arquivo MSG usando SenderName, Subject e Corpo propriedades.
- Use o Destinatários propriedade para obter uma referência à coleção de MapiRecipient objetos associados ao arquivo MSG.
- Itere sobre o MapiRecipientCollection coleção para exibir o conteúdo de cada MapiRecipient objeto por meio de seus métodos públicos.
//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);
}
Experimente!
Analise arquivos de e‑mail online gratuitamente Aspose.Email Parser App.