Fonctionnalités utilitaires - MailMessage
Messages contenant des pièces jointes TNEF
Transport Neutral Encapsulation Format (TNEF) est un format de pièce jointe propriétaire utilisé par Microsoft Outlook et Microsoft Exchange Server. L’API Aspose.Email permet de lire les messages e‑mail contenant des pièces jointes TNEF et de modifier le contenu de la pièce jointe. L’e‑mail peut ensuite être enregistré comme e‑mail normal ou dans le même format, en préservant les pièces jointes TNEF. Cet article présente différents exemples de code pour travailler avec des messages contenant des pièces jointes TNEF. Il montre également comment créer des fichiers EML TNEF à partir de fichiers MSG Outlook.
Lecture du message en préservant les pièces jointes TNEF
Le fragment de code suivant montre comment lire un message tout en préservant les pièces jointes 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)
Création d’un EML TNEF à partir d’un MSG
Les MSG Outlook contiennent parfois des informations telles que des tableaux et des styles de texte qui peuvent être perturbés lors de la conversion en EML. Créer des messages TNEF à partir de ces fichiers MSG permet de conserver le formatage et même d’envoyer ces messages via les clients de messagerie tout en conservant le formatage. La propriété convert_as_tnef est utilisée pour y parvenir. Le fragment de code suivant montre comment créer un EML TNEF à partir d’un 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)
Pour créer le TNEF, le code d’exemple suivant peut être utilisé.
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)
Détecter si un message est en TNEF
Le fragment de code suivant montre comment détecter si un message est en TNEF.
from aspose.email import MailMessage
mail = MailMessage.load(data_dir + "message.eml")
is_tnef = mail.original_is_tnef
Traitement des messages rebondis
Il est très fréquent qu’un message envoyé à un destinataire rebondisse pour diverses raisons, comme une adresse invalide. L’API Aspose.Email possède la capacité de traiter un tel message pour vérifier s’il s’agit d’un e‑mail rebondi ou d’un e‑mail normal. La méthode check_bounced du MailMessage renvoie un résultat valable si le message est un e‑mail rebondi. Cet article montre l’utilisation de BounceResult classe qui offre la capacité de vérifier si un message est un e‑mail rebondi. Elle fournit également des informations détaillées sur les destinataires, l’action effectuée et la raison de la notification. Le fragment de code suivant montre comment traiter les messages rebondis.
from aspose.email import MailMessage, SaveOptions, MsgLoadOptions, MessageFormat, FileCompatibilityMode
mail = MailMessage.load(data_dir + "message.eml")
result = mail.check_bounced()
print("IsBounced: " + str(result.is_bounced))
print("Action: " + str(result.action))
print("Recipient: " + str(result.recipient))
print()
print("Reason: " + str(result.reason))
print("Status: " + str(result.status))
print()
Analyseur de spam bayésien
Aspose.Email fournit un filtrage d’e‑mail à l’aide d’un analyseur de spam bayésien. Il fournit le SpamAnalyzer classe à cet effet. Cet article montre comment entraîner le filtre à distinguer les spams des e‑mails normaux à partir d’une base de données de mots.
from aspose.email import MailMessage, SaveOptions, MsgLoadOptions, MessageFormat, FileCompatibilityMode
from aspose.email.antispam import SpamAnalyzer
import os
ham_folder = "/hamFolder"
spam_folder = "/Spam"
test_folder = data_dir
database_file = "SpamFilterDatabase.txt"
def print_result(probability):
if probability >= 0.5:
print("The message is classified as spam.")
else:
print("The message is classified as not spam.")
print("Spam Probability: " + str(probability))
print()
def teach_and_create_database(ham_folder, spam_folder, database_file):
analyzer = SpamAnalyzer(database_file)
analyzer.teach_from_directory(ham_folder, True)
analyzer.teach_from_directory(spam_folder, False)
analyzer.save_database()
teach_and_create_database(ham_folder, spam_folder, database_file)
test_files = [f for f in os.listdir(test_folder) if f.endswith(".eml")]
analyzer = SpamAnalyzer(database_file)
for file in test_files:
file_path = os.path.join(test_folder, file)
msg = MailMessage.load(file_path)
print(msg.subject)
probability = analyzer.test(msg)
print_result(probability)