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.
- Classe FileFormatType
- Classe FileFormatInfo
- Classe FileFormatUtil
- Método FileFormatUtil.DetectFileFormat(Stream)
- Método FileFormatUtil.DetectFileFormat(String)
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:
- Método SecureEmailManager.CheckSignature(MailMessage msg).
- Método SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt).
- Método SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt, X509Store store).
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:
-
usando a propriedade MsgLoadOptions.PreserveRtfContent da classe MsgLoadOptions;
-
usando a propriedade MailConversionOptions.PreserveRtfContent da classe MailConversionOptions;
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).