ميزات الأداة - MailMessage
رسائل بريد تحتوي على مرفقات TNEF
تنسيق النقل المحايد للملف (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
أحيانًا تحتوي ملفات Outlook MSG على معلومات مثل الجداول وأنماط النص التي قد تتأثر عند تحويلها إلى 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
معالجة الرسائل المرتدة
من الشائع جدًا أن تُرجع رسالة مرسلة إلى مستلم مرتدة لأي سبب مثل عنوان المستلم غير صالح. توفر 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 تصفية البريد باستخدام محلل Bayesian للرسائل غير المرغوب فيها. إنها توفر الـ 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)