Carregar e Salvar Mensagem de E‑mail
Carregar Mensagem de E‑mail
Carregar de EML
Esta seção descreve como carregar um arquivo EML em um objeto MailMessage usando o EmlLoadOptions classe. A classe EmlLoadOptions fornece várias opções para personalizar como o arquivo EML é carregado, como preservar formatos de mensagens incorporadas ou controlar o comportamento de carregamento de anexos TNEF.
- Inicialize uma instância de EmlLoadOptions.
- Configure as opções de carregamento conforme necessário.
- Use o MailMessage.Load() método para carregar o arquivo EML com as opções especificadas.
using Aspose.Email;
// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Control TNEF attachment loading
RemoveSignature = false // Do not remove the signature
};
// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);
Propriedades de EmlLoadOptions
- PreferredTextEncoding: Define a codificação preferida para o assunto e o corpo da mensagem. O padrão é
null. - PreserveEmbeddedMessageFormat: Indica se deve preservar o formato de mensagens incorporadas durante o carregamento. O padrão é
false. - PreserveTnefAttachments: Controla o comportamento de carregamento de anexos TNEF. O padrão é
false. - RemoveSignature: Especifica se a assinatura deve ser removida durante o carregamento. O padrão é
false.
Preservar Formato de Mensagem Incorporada
Carregar Mensagem Com Assinatura/Sem Assinatura
A preservação de assinatura é suportada por padrão ao carregar arquivos EML. Para remover a assinatura, você pode definir o LoadOptions.RemoveSignature propriedade para true.
O exemplo de código abaixo mostra como remover uma assinatura ao carregar uma mensagem:
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Carregar de EMLX
A seção a seguir cobre o carregamento de um arquivo EMLX com o EmlxLoadOptions classe. Esta classe fornece opções semelhantes às de EmlLoadOptions, oferecendo controle sobre codificação, remoção de assinatura e mais.
- Instancie o EmlxLoadOptions.
- Configure as propriedades conforme necessário.
- Use o MailMessage.Load() método para carregar o arquivo EMLX.
using Aspose.Email;
// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);
Propriedades de EmlxLoadOptions
- PreferredTextEncoding: Define a codificação preferida para o assunto e corpo da mensagem. O padrão é
null. - PreserveEmbeddedMessageFormat: Indica se deve preservar o formato de mensagens incorporadas. O padrão é
false. - RemoveSignature: Especifica se deve remover a assinatura durante o carregamento. O padrão é
false.
Carregar de HTML
Saiba como carregar um arquivo HTML em um MailMessage usando o HtmlLoadOptions classe. Esta classe foi projetada especificamente para lidar com conteúdo HTML com opções para gerenciar recursos e adicionar visualizações de texto simples.
- Inicialize uma instância de HtmlLoadOptions.
- Configure as propriedades necessárias.
- Use o MailMessage.Load() método para carregar o arquivo HTML com as opções especificadas.
using Aspose.Email;
// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
// Configure load options
PathToResources = "resources/", // Path to directory containing resource files
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
ShouldAddPlainTextView = true // Add plain text view of the body
};
// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);
Propriedades de HtmlLoadOptions
- PathToResources: Define o caminho para o diretório que contém arquivos de recurso (imagens, por exemplo).
- PreferredTextEncoding: Define a codificação preferida para o assunto e corpo da mensagem. O padrão é
null. - PreserveEmbeddedMessageFormat: Determina se deve preservar o formato das mensagens incorporadas. O padrão é
false. - ShouldAddPlainTextView: Especifica se deve adicionar uma visualização de texto simples do corpo da mensagem. O padrão é
false.
Carregar de MHTML
Esta seção explica como carregar um arquivo MHTML usando o MhtmlLoadOptions classe. A classe MhtmlLoadOptions oferece opções para gerenciar codificação, preservar formatos de mensagens incorporadas e lidar com anexos TNEF.
- Crie uma instância de MhtmlLoadOptions.
- Configure as propriedades desejadas.
- Carregue o arquivo MHTML usando o MailMessage.Load() método.
using Aspose.Email;
// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
// Set load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false // Keep the signature
};
// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);
Propriedades de MhtmlLoadOptions
- MessageFormat: Representa o formato da mensagem de email, que pode ser EML, MSG ou MHTML. O padrão é EML.
- PreferredTextEncoding: Define a codificação preferida para o assunto e corpo da mensagem. O padrão é
null. - PreserveEmbeddedMessageFormat: Determina se deve preservar o formato das mensagens incorporadas. O padrão é
false. - PreserveTnefAttachments: Controla o comportamento de carregamento de anexos TNEF. O padrão é
false. - RemoveSignature: Especifica se deve remover a assinatura durante o carregamento. O padrão é
false.
Carregar de MSG
Esta seção explica como carregar um arquivo MSG em um objeto MailMessage usando o MsgLoadOptions classe. A classe MsgLoadOptions oferece várias propriedades para lidar com como os arquivos MSG são carregados, incluindo opções para preservar conteúdo RTF ou gerenciar anexos TNEF.
- Crie uma instância de MsgLoadOptions.
- Defina as propriedades desejadas para personalizar o carregamento.
- Carregue o arquivo MSG usando o MailMessage.Load() método.
using Aspose.Email;
// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
// Set load options
KeepOriginalEmailAddresses = true, // Preserve original email addresses
PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
PreserveRtfContent = true, // Keep RTF content in the message
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false, // Keep the signature
Timeout = 5000 // Set timeout to 5 seconds
};
// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);
Propriedades de MsgLoadOptions
- KeepOriginalEmailAddresses: Indica se deve manter os endereços de email originais. O padrão é
false. - PreferredTextEncoding: Define a codificação preferida para o assunto e corpo da mensagem. O padrão é
null. - PreserveEmbeddedMessageFormat: Determina se o formato das mensagens incorporadas deve ser preservado. O padrão é
false. - PreserveRtfContent: Especifica se deve manter o conteúdo do corpo RTF no
MailMessage. O padrão éfalse. - PreserveTnefAttachments: Gerencia o comportamento de carregamento de anexos TNEF. O padrão é
false. - RemoveSignature: Decide se remove a assinatura durante o carregamento. O padrão é
false. - Tempo limite: Limita o tempo de formatação em milissegundos durante a conversão. O padrão é 3000 ms.
Carregar de TNEF
Saiba como carregar um arquivo TNEF eml com o TnefLoadOptions classe. Esta classe fornece opções para gerenciar codificação e remover assinaturas durante o processo de carregamento.
- Instancie o TnefLoadOptions.
- Configure as propriedades conforme necessário.
- Use o MailMessage.Load() método para carregar o arquivo TNEF.
using Aspose.Email;
// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);
Propriedades de TnefLoadOptions
- MessageFormat: Representa o formato da mensagem de e‑mail, como EML, MSG ou MHTML. O padrão é EML.
- PreferredTextEncoding: Define a codificação preferida para o assunto e corpo da mensagem. O padrão é
null. - PreserveEmbeddedMessageFormat: Indica se deve preservar o formato de mensagens incorporadas. O padrão é
false. - RemoveSignature: Especifica se deve remover a assinatura durante o carregamento. O padrão é
false.
Detecção de Formatos de Arquivo
A API Aspose.Email fornece a capacidade de detectar o formato do arquivo de mensagem fornecido. O DetectFileFormat método de FileFormatUtil classe pode ser usada para isso. As classes e métodos a seguir podem ser usados para detectar o formato do arquivo carregado.
- FileFormatType Classe
- FileFormatInfo Classe
- FileFormatUtil Classe
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
O trecho de código a seguir mostra como detectar formatos de arquivo.
Salvar e Converter Mensagens
Aspose.Email facilita a conversão de qualquer tipo de mensagem para outro formato. Para demonstrar esse recurso, o código deste artigo carrega três tipos de mensagens do disco e as salva novamente em outros formatos. A classe base SaveOptions e as classes EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions para configurações adicionais ao salvar MailMessage pode ser usado para salvar mensagens em outros formatos. O artigo mostra como usar essas classes para salvar um e‑mail de exemplo como:
- Formato EML.
- Outlook MSG.
- Formato MHTML.
- Formato HTML.
Salvar para EML
O trecho de código a seguir mostra como carregar uma mensagem EML e salvá‑la no disco no mesmo formato.
Preservar os Limites Originais
O trecho de código a seguir mostra como carregar um EML e salvá‑lo como EML preservando as delimitações originais.
Preservar Anexos TNEF
O trecho de código a seguir mostra como salvar como EML preservando anexos TNEF.
Salvar EML como MSG
O trecho de código a seguir mostra como carregar uma mensagem EML e convertê‑la para MSG usando a opção apropriada de SaveOptions.
Preservar Datas
O MsgSaveOptions classe permite que você salve a mensagem original como um arquivo Outlook Message (MSG) preservando datas. O trecho de código a seguir mostra como salvar como MSG com Datas Preservadas.
Salvar EML para MHTML
Opções diferentes de MHTML podem ser usadas para obter os resultados desejados. O trecho de código a seguir mostra como carregar uma mensagem EML em MailMessage e convertê‑lo para MHTML com a data da mensagem no sistema UTC.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date
// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}
Opções de Conversão
O MhtSaveOptions classe fornece opções adicionais para salvar mensagens de e‑mail no formato MHTML. O enumerador MhtFormatOptions torna possível escrever informações adicionais de e‑mail no MHTML de saída. Os seguintes campos adicionais podem ser gravados:
WriteHeader– grava o cabeçalho de email no arquivo de saída.WriteOutlineAttachments– grava anexos de contorno no arquivo de saída.WriteCompleteEmailAddress– grava o endereço de email completo no arquivo de saída.NoEncodeCharacters– nenhum codificação de transferência de caracteres deve ser usada.HideExtraPrintHeader– oculta cabeçalho de impressão extra no topo do arquivo de saída.WriteCompleteToEmailAddress– grava o endereço de email completo do destinatário no arquivo de saída.WriteCompleteFromEmailAddress– grava o endereço de email completo do remetente no arquivo de saída.WriteCompleteCcEmailAddress– grava os endereços de email completos de quaisquer destinatários em cópia carbono no arquivo de saída.WriteCompleteBccEmailAddress– grava o endereço de email completo de quaisquer destinatários em cópia oculta no arquivo de saída.RenderCalendarEvent– grava texto do evento de calendário no arquivo de saída.SkipByteOrderMarkInBody– grava bytes de Byte Order Mark (BOM) no arquivo de saída.RenderVCardInfo– grava texto da VCard AlternativeView no arquivo de saída.DisplayAsOutlook– exibe o cabeçalho De.RenderTaskFields– grava campos específicos de Tarefa no arquivo de saída.None– Nenhuma configuração especificada.
O trecho de código a seguir mostra como converter arquivos EML para MHTML com configurações opcionais.
Renderizar Eventos de Calendário
O MhtFormatOptions.RenderCalendarEvent renderiza os eventos do Calendário para o MHTML de saída. O trecho de código a seguir mostra como renderizar eventos do calendário ao converter para MHTML.
Exportando E‑mail para MHT sem Imagens Inline
Exportando E‑mail para MHT com Fuso Horário Personalizado
MailMessage classe fornece o TimeZoneOffset propriedade para definir fuso horário personalizado ao exportar para MHT. O trecho de código a seguir mostra como exportar e‑mail para MHT com fuso horário personalizado.
Ajuste de Fonte
Salvar EML para HTML
O HtmlSaveOptions classe que permite exportar o corpo da mensagem para HTML. O trecho de código a seguir mostra como salvar uma mensagem como HTML.
Salvar sem Recursos Incorporados
Salvar EML para OFT
O trecho de código a seguir mostra como salvar uma mensagem como um modelo do Outlook (.oft).
Converter EML para MSG (MailMessage para MapiMessage)
Para converter um MailMessage objeto carregado de um arquivo EML para um MapiMessage objeto, use o MapiConversionOptions classe. Esta conversão costuma ser necessária porque esses dois objetos atendem a propósitos diferentes e satisfazem necessidades distintas no processamento de e‑mails. MapiMessage é projetado especificamente para compatibilidade com o Microsoft Outlook e o Exchange Server, pois segue o formato da Messaging Application Programming Interface (MAPI). Isso garante que e‑mails convertidos para arquivos MSG sejam totalmente compatíveis com os produtos Microsoft, permitindo que sejam abertos, modificados e gerenciados diretamente no Outlook.
Esta conversão também é necessária quando os e‑mails precisam ser arquivados, indexados ou processados por armazenamentos que requerem o formato MAPI, como PST/OST, OLM, por exemplo. O MapiConversionOptions A classe permite especificar opções adicionais, como preservar o formato original da mensagem, manter as datas originais e compactar o corpo RTF durante a conversão. O exemplo de código a seguir mostra como carregar um e‑mail de um arquivo no formato .eml e convertê‑lo para o formato .msg do Outlook, permitindo personalização, mas garantindo que certas características do e‑mail original sejam preservadas durante a conversão.
- Crie uma instância de
MapiConversionOptionse configure suas propriedades. - Converter o
MailMessageobjeto para umMapiMessageobjeto usando as opções de conversão configuradas.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());
// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
// Configure MapiConversionOptions
Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
PreserveOriginalAddresses = true, // Keep original email addresses
PreserveOriginalDates = true, // Preserve original dates
PreserveEmptyDates = false, // Generate new dates if original are empty
RemoveSignature = false, // Do not remove the signature
UseBodyCompression = true, // Enable RTF body compression
ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};
// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);
Propriedades Disponíveis de MapiConversionOptions
-
ASCIIFormat: Retorna
MapiConversionOptionsconfigurado comOutlookMessageFormatcomo ASCII, comPreserveSignaturedefinido como falso eUseBodyCompressiondefinido como falso. Esta opção é útil quando você precisa de uma conversão para formato ASCII simples. -
UnicodeFormat: Retorna
MapiConversionOptionscomOutlookMessageFormatdefinido como Unicode, e ambosPreserveSignatureeUseBodyCompressiondefinido como falso. Use esta opção para suporte mais abrangente a caracteres em arquivos MSG. -
ForcedRtfBodyForAppointment: Quando definido como verdadeiro, força o uso do corpo RTF para compromissos de calendário. Isso é útil se você quiser garantir compatibilidade com certos clientes de email. O padrão é verdadeiro.
-
Format: Especifica o formato de saída para o arquivo MSG. Pode ser definido como
OutlookMessageFormat.ASCIIouOutlookMessageFormat.Unicode, controlando se o MSG convertido deve usar codificação ASCII ou Unicode. -
PreserveEmbeddedMessageFormat: Determina se deve manter o formato EML original das mensagens incorporadas durante a conversão para
MapiMessage. Definir isso como verdadeiro garante que emails incorporados mantenham sua estrutura original. O padrão é falso. -
PreserveEmptyDates: Quando definido como verdadeiro, retém as datas originais de salvamento e modificação do EML. Caso contrário, novas datas serão geradas se as originais estiverem vazias.
-
PreserveOriginalAddresses: Se definido como verdadeiro, mantém os endereços de email originais sem validação. Isso é útil ao trabalhar com endereços que podem não seguir padrões estritos, mas precisam ser preservados como estão. O padrão é falso.
-
PreserveOriginalDates: Garante que as datas originais de envio e recebimento sejam mantidas durante o processo de conversão. Definir como verdadeiro retém essas datas para maior precisão histórica.
-
RemoveSignature: Controla se a assinatura digital, se presente, será removida da mensagem durante a conversão. O padrão é falso, significando que a assinatura será mantida, a menos que seja removida explicitamente.
-
UseBodyCompression: Habilita a compressão do corpo RTF se definido como verdadeiro. Isso pode ajudar a reduzir o tamanho do arquivo MSG, especialmente ao lidar com mensagens grandes com formatação rica.