Funzionalità di utilità - MailMessage
Messaggi email contenenti allegati TNEF
Transport Neutral Encapsulation Format (TNEF) è un formato proprietario di allegati email utilizzato da Microsoft Outlook e Microsoft Exchange Server. L’API Aspose.Email consente di leggere messaggi email che contengono allegati TNEF e modificare il contenuto dell’allegato. L’email può quindi essere salvata come email normale o nello stesso formato, preservando gli allegati TNEF. Questo articolo mostra diversi esempi di codice per lavorare con messaggi contenenti allegati TNEF. L’articolo mostra anche come creare file EML TNEF da file Outlook MSG.
Lettura del Messaggio preservando gli Allegati TNEF
Il seguente frammento di codice mostra come leggere un messaggio preservando gli allegati 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)
Creare EML TNEF da MSG
Alcuni file Outlook MSG contengono informazioni come tabelle e stili di testo che potrebbero subire alterazioni se convertiti in EML. Creare messaggi TNEF da tali file MSG consente di mantenere la formattazione e persino inviare questi messaggi tramite client email conservando la formattazione. La proprietà convert_as_tnef è utilizzata per ottenere ciò. Il seguente frammento di codice mostra come creare un EML TNEF da 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)
Per creare il TNEF, è possibile utilizzare il seguente esempio di codice.
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)
Rilevare se un Messaggio è TNEF
Il seguente frammento di codice mostra come rilevare se un messaggio è TNEF.
from aspose.email import MailMessage
mail = MailMessage.load(data_dir + "message.eml")
is_tnef = mail.original_is_tnef
Elaborazione dei Messaggi Rimbalzati
È molto comune che un messaggio inviato a un destinatario possa rimbalzare per qualsiasi motivo, ad esempio indirizzo del destinatario non valido. L’API Aspose.Email ha la capacità di elaborare tali messaggi per verificare se si tratta di un’email rimbalzata o di un’email normale. Il metodo check_bounced di MailMessage restituisce un risultato valido se il messaggio email è rimbalzato. Questo articolo mostra l’uso di BounceResult classe che offre la capacità di verificare se un messaggio è un’email rimbalzata. Fornisce inoltre informazioni dettagliate sui destinatari, l’azione eseguita e il motivo della notifica. Il seguente frammento di codice mostra come elaborare i messaggi rimbalzati.
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()
Analizzatore Spam Bayesiano
Aspose.Email fornisce filtraggio email usando un analizzatore spam bayesiano. Fornisce il SpamAnalyzer classe per questo scopo. Questo articolo mostra come addestrare il filtro per distinguere tra spam e email regolari basandosi su un database di parole.
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)