תכונות שירות - MailMessage

הודעות אימייל המכילות קבצים מצורפים ב‑TNEF

Transport Neutral Encapsulation Format (TNEF) הוא פורמט קובץ מצורף קבוע בבעלות Microsoft Outlook ו- Microsoft Exchange Server. ממשק Aspose.Email API מאפשר לקרוא הודעות דוא"ל עם קבצים מצורפים בפורמט TNEF ולשנות את תוכן הקובץ המצורף. ניתן לשמור את ההודעה כדוא"ל רגיל או באותו פורמט, תוך שמירת קבצים מצורפים בפורמט TNEF. מאמר זה מציג דוגמאות קוד שונות לעבודה עם הודעות המכילות קבצים מצורפים בפורמט TNEF. הוא מציג גם עבודה עם יצירת קבצי TNEF EML מקבצי Outlook MSG.

קריאת הודעה תוך שמירת קבצים מצורפים בפורמט TNEF

קטע הקוד הבא מראה לך כיצד לקרוא הודעה תוך שמירת קבצים מצורפים בפורמט 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)

יצירת TNEF EML מתוך MSG

קבצי MSG של Outlook לעיתים כוללים מידע כגון טבלאות וסגנונות טקסט שעלולים להשתבש אם הם מומרי ל-EML. יצירת הודעות TNEF מקבצי MSG כאלה מאפשרת לשמר את העיצוב ואפילו לשלוח הודעות כאלה דרך לקוחות הדוא"ל תוך שמירת העיצוב. המאפיין convert_as_tnef משמש להשגת זאת. הקטע הקוד הבא מראה לך כיצד ליצור קובץ TNEF eML מקובץ 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)

ליצירת TNEF, ניתן להשתמש בקוד הדוגמה הבא.

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)

לאתר אם הודעה היא TNEF

קטע הקוד הבא מראה לך כיצד לאתר אם הודעה היא TNEF.

from aspose.email import MailMessage

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

עיבוד הודעות קפוץ

זה מאוד נפוץ שהודעה שנשלחת לנמען יכולה לחזור (bounce) מסיבה כלשהי כגון כתובת נמען בלתי תקינה. לממשק Aspose.Email API יש אפשרות לעבד הודעה כזו כדי לבדוק אם היא דוא"ל קפוץ או הודעת דוא"ל רגילה. המתודה check_bounced של MailMessage מחזירה תוצאה תקינה אם הודעת הדוא"ל היא קפוץ. מאמר זה מציג את השימוש ב- BounceResult מחלקה המספקת את היכולת לבדוק אם הודעה היא דוא"ל קפוץ. היא גם מספקת מידע מפורט על הנמענים, הפעולה שננקטה והסיבה להתראה. הקטע הקוד הבא מראה לך כיצד לעבד הודעות קפוץ.

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

מנתח ספאם בייזי

Aspose.Email מספק סינון דוא"ל באמצעות מנתח ספאם בייזיאני. הוא מספק את SpamAnalyzer מחלקה למטרה זו. מאמר זה מציג כיצד לאמן את המסנן כדי להבדיל בין ספאם לדוא"ל רגיל בהתבסס על מסד נתוני מילים.

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)