Manipulando Anexos TNEF em Mensagens de E‑mail

Mensagens de E‑mail contendo Anexos TNEF

Transport Neutral Encapsulation Format (TNEF) é um formato proprietário de anexo de e‑mail usado pelo Microsoft Outlook e Microsoft Exchange Server. A API Aspose.Email permite ler mensagens de e‑mail que possuem anexos TNEF e modificar seu conteúdo. O e‑mail pode então ser salvo como uma mensagem normal ou no mesmo formato, preservando esses anexos. Este artigo mostra diferentes exemplos de código para trabalhar com mensagens que contêm anexos TNEF. Também demonstra como criar arquivos EML TNEF a partir de arquivos MSG do Outlook.

Identificando Anexos TNEF em um E‑mail

O trecho de código a seguir mostra como detectar se um e‑mail contém anexos TNEF:

from aspose.email import MailMessage

mail = MailMessage.load(data_dir + "message.eml")
is_tnef = mail.original_is_tnef

Lendo E‑mails enquanto Preserva Anexos TNEF

O trecho de código a seguir mostra como ler uma mensagem e preservar os anexos TNEF.

from aspose.email import MailMessage, SaveOptions, EmlLoadOptions, MessageFormat, FileCompatibilityMode

options = EmlLoadOptions()
# This will Preserve the TNEF attachment as it is, file contains the TNEF attachment
options.preserve_tnef_attachments = True

eml = MailMessage.load(data_dir + "message.eml", options)
for attachment in eml.attachments:
    print(attachment.name)

Convertendo MSG para TNEF

Os MSGs do Outlook às vezes contêm informações como tabelas e estilos de texto que podem ser corrompidos ao serem convertidos para EML. Criar mensagens TNEF a partir desses arquivos MSG permite que você retenha a formatação e até envie essas mensagens via clientes de e‑mail mantendo a formatação. O convert_as_tnef propriedade é usada para alcançar isso. O trecho de código a seguir mostra como criar um e‑mail TNEF a partir de MSG.

from aspose.email.mapi import MapiMessage, MailConversionOptions, OutlookMessageFormat

mapi_msg = MapiMessage.from_file(data_dir + "message.msg")

mail_conversion_options = MailConversionOptions()
mail_conversion_options.convert_as_tnef = True

message = mapi_msg.to_mail_message(mail_conversion_options)

Criando E‑mail TNEF

O código de exemplo a seguir pode ser usado para criar um e‑mail no formato TNEF:

  1. Configure as opções de arquivo usando o MsgLoadOptions classe.
  2. Garanta que os anexos TNEF no e‑mail sejam preservados ao carregar o arquivo definindo options.preserve_tnef_attachments to True.
  3. Use o MailMessage.load(eml_file_name, options) método para carregar o arquivo de e‑mail de entrada aplicando as opções configuradas anteriormente. Isso garante especificamente que o e‑mail carregado retenha informações relacionadas ao TNEF (como anexos ou formatos proprietários do Microsoft Outlook).
from aspose.email import MailMessage, SaveOptions, MsgLoadOptions, MessageFormat, FileCompatibilityMode

options = MsgLoadOptions()
# The PreserveTnefAttachments option with MessageFormat.Msg will create the TNEF eml.
options.preserve_tnef_attachments = True

eml = MailMessage.load(eml_file_name, options)

Detectando Mensagens TNEF

O trecho de código a seguir mostra como detectar se uma mensagem é TNEF. O original_is_tnef propriedade do MailMessage o objeto é verificado para determinar se o e‑mail estava originalmente em TNEF (Transport Neutral Encapsulation Format). Se is_tnef avalia como True, isso significa que o e‑mail contém codificação TNEF, que tipicamente ocorre em e‑mails originados do Microsoft Outlook ou Exchange.

from aspose.email import MailMessage

mail = MailMessage.load(data_dir + "message.eml")
is_tnef = mail.original_is_tnef