Verktygsfunktioner – MailMessage

MailMessages som innehåller TNEF‑bilagor

Transport Neutral Encapsulation Format (TNEF) är ett proprietärt e‑postbilagsformat som används av Microsoft Outlook och Microsoft Exchange Server. Aspose.Email API gör det möjligt att läsa e‑postmeddelanden som har TNEF‑bilagor och ändra innehållet i bilagan. E‑posten kan därefter sparas som ett vanligt e‑postmeddelande eller i samma format, med bibehållna TNEF‑bilagor. Denna artikel visar olika kodexempel för att arbeta med meddelanden som innehåller TNEF‑bilagor. Artikeln visar även hur man skapar TNEF‑EML‑filer från Outlook‑MSG‑filer.

Läsa meddelande med bevarande av TNEF‑bilagor

Följande kodexempel visar hur du läser meddelanden samtidigt som du bevarar TNEF‑bilagor.

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)

Skapa TNEF‑EML från MSG

Outlook‑MSG-filer innehåller ibland information såsom tabeller och textformat som kan störas när de konverteras till EML. Att skapa TNEF‑meddelanden från sådana MSG‑filer gör att formateringen bevaras och meddelandena kan skickas via e‑postklienter med samma format. Egenskapen convert_as_tnef används för att uppnå detta. Följande kodexempel visar hur du skapar TNEF‑EML från 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)

För att skapa TNEF kan följande exempelprogramkod användas.

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)

Upptäck om ett meddelande är TNEF

Följande kodexempel visar hur du upptäcker om ett meddelande är TNEF.

from aspose.email import MailMessage

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

Bearbetning av studsande meddelanden

Det är mycket vanligt att ett meddelande som skickas till en mottagare studsar av olika orsaker, t.ex. ogiltig mottagaradress. Aspose.Email API har möjlighet att bearbeta sådana meddelanden för att kontrollera om de är studsande e‑post eller vanliga e‑postmeddelanden. MailMessage:s check_bounced‑metod returnerar ett giltigt resultat om e‑postmeddelandet är ett studsande meddelande. Denna artikel visar användningen av BounceResult klass som ger möjlighet att kontrollera om ett meddelande är ett studsande e‑postmeddelande. Den ger dessutom detaljerad information om mottagare, vidtagna åtgärder och orsaken till meddelandet. Följande kodexempel visar hur du bearbetar studsande meddelanden.

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()

Bayesisk skräppostanalysator

Aspose.Email erbjuder e‑postfiltrering med en Bayesian‑spam‑analysator. Den tillhandahåller SpamAnalyzer klass för detta ändamål. Denna artikel visar hur man tränar filtret att särskilja skräppost från vanliga e‑postmeddelanden baserat på en orddatabas.

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)