Carregando e Salvando Mensagem

Carregando e Salvando Mensagens

Detectando Formatos de Arquivo

A API Aspose.Email fornece a capacidade de detectar o formato do arquivo da mensagem fornecida. O método DetectFileFormat da classe FileFormatUtil pode ser usado para alcançar isso. As seguintes classes e métodos podem ser usados para detectar o formato do arquivo carregado.

O seguinte trecho de código mostra como detectar formatos de arquivo.

Carregando uma Mensagem com Opções de Carregamento

O seguinte trecho de código mostra como carregar uma mensagem com opções de carregamento.

Preservando o Formato de Mensagem Embutido durante o Carregamento

Carregando uma Mensagem Preservando ou Removendo uma Assinatura

A preservação da assinatura é suportada por padrão ao carregar arquivos EML. Para remover a assinatura, você pode definir a propriedade LoadOptions.RemoveSignature como true.

O exemplo de código abaixo mostra como remover uma assinatura ao carregar uma mensagem:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

Verificando a Assinatura de E-mails Seguros

A classe SecureEmailManager permite que você verifique a assinatura de objetos MailMessage seguros.

A classe SmimeResult armazena os resultados da verificação.

Os seguintes métodos da classe SecureEmailManager e um trecho de código permitirão que você processe uma assinatura:

var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MailMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

Salvando e Convertendo Mensagens

Aspose.Email torna fácil converter 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 de volta em outros formatos. A classe base SaveOptions e as classes EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions para configurações adicionais ao salvar MailMessage podem ser usadas 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.

Carregar e Salvar uma Mensagem EML

O seguinte trecho de código mostra como carregar uma mensagem EML e salvá-la no disco no mesmo formato.

Carregar e Salvar uma Mensagem EML Preservando as Fronteiras Originais

O seguinte trecho de código mostra como carregar EML e salvar como EML preservando as fronteiras originais.

Salvando como EML Preservando Anexos TNEF

O seguinte trecho de código mostra como salvar como EML preservando anexos TNEF.

Salvar EML como MSG

O seguinte trecho de código mostra como carregar uma mensagem EML e convertê-la em MSG usando a opção apropriada da SaveOptions.

Salvando como MSG com Datas Preservadas

A classe MsgSaveOptions permite que você salve a mensagem original como um arquivo de Mensagem do Outlook (MSG) preservando datas. O seguinte trecho de código mostra como salvar como MSG com Datas Preservadas.

Salvando MailMessage como MHTML

Diferentes opções de MHTML podem ser usadas para obter os resultados desejados. O seguinte trecho de código mostra como carregar uma mensagem EML em MailMessage e convertê-la em MHTML com uma data da mensagem no sistema UTC.

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-email/Aspose.Email-for-.NET

// Definir opções para saída MHTML
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // salvar uma data da mensagem como data UTC

// Inicializar e carregar um arquivo EML existente
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

Convertendo para MHTML com Configurações Opcionais

A classe MhtSaveOptions fornece opções adicionais para salvar mensagens de e-mail no formato MHTML. O enumerador MhtFormatOptions possibilita escrever informações adicionais do e-mail no MHTML de saída. Os seguintes campos adicionais podem ser escritos:

  • WriteHeader – escrever o cabeçalho do e-mail no arquivo de saída.
  • WriteOutlineAttachments – escrever anexos de contorno no arquivo de saída.
  • WriteCompleteEmailAddress – escrever o endereço de e-mail completo no arquivo de saída.
  • NoEncodeCharacters – nenhuma codificação de transferência de caracteres deve ser usada.
  • HideExtraPrintHeader – ocultar cabeçalho extra de impressão do topo do arquivo de saída.
  • WriteCompleteToEmailAddress – escrever o endereço de e-mail completo do destinatário no arquivo de saída.
  • WriteCompleteFromEmailAddress – escrever o endereço de e-mail completo do remetente no arquivo de saída.
  • WriteCompleteCcEmailAddress – escrever os endereços de e-mail completos de qualquer destinatário com cópia carbono no arquivo de saída.
  • WriteCompleteBccEmailAddress – escrever o endereço de e-mail completo de qualquer destinatário com cópia carbono oculta no arquivo de saída.
  • RenderCalendarEvent – escrever texto do evento do calendário no arquivo de saída.
  • SkipByteOrderMarkInBody – escrever bytes de Byte Order Mark(BOM) no arquivo de saída.
  • RenderVCardInfo – escrever texto da VCard AlternativeView no arquivo de saída.
  • DisplayAsOutlook – exibir o cabeçalho From.
  • RenderTaskFields – escreve campos de Tarefa específicos no arquivo de saída.
  • None – Nenhuma configuração especificada.

O seguinte trecho de código mostra como converter arquivos EML para MHTML com configurações opcionais.

Renderizando Eventos de Calendário ao Converter para MHTML

As MhtFormatOptions.RenderCalendarEvent renderiza os eventos do Calendário para o MTHML de saída. O seguinte trecho de código mostra como renderizar eventos de calendário ao converter para MHTML.

Exportando E-mail para MHT sem Imagens Inline

Exportando E-mail para MHT com Fuso Horário personalizado

A classe MailMessage fornece a propriedade TimeZoneOffset para definir um Fuso Horário personalizado ao exportar para MHT. O seguinte trecho de código mostra como exportar e-mail para MHT com Fuso Horário personalizado.

Mudando a Fonte ao Converter para MHT

Preservando o corpo RTF ao converter MSG para EML

A conversão de um arquivo MSG para EML preservando o corpo RTF pode ser feita de duas maneiras:

Ambas as propriedades obtêm ou definem um valor indicando se devem manter o corpo rtf em MailMessage.

Os seguintes trechos de código mostram como converter um arquivo MSG para EML e preservar o corpo RTF:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

Exportando E-mail para EML

O seguinte trecho de código mostra como exportar e-mails para EML.

Salvando Mensagem como arquivo HTML

A classe HtmlSaveOptions permite que você exporte o corpo da mensagem para HTML. O seguinte trecho de código mostra como salvar uma mensagem como HTML.

Salvando como HTML sem Embutir Recursos

Salvando Mensagem como arquivo de Modelo do Outlook (.oft)

O seguinte trecho de código mostra como salvar uma mensagem como um arquivo de modelo do outlook (.oft).