תכונות שירות - 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)