ویژگی‌های ابزار - MailMessage

پیام‌های ایمیلی حاوی پیوست‌های TNEF

فرمت Transport Neutral Encapsulation Format (TNEF) یک فرمت اختصاصی پیوست ایمیل است که توسط Microsoft Outlook و Microsoft Exchange Server استفاده می‌شود. API Aspose.Email به شما امکان می‌دهد پیام‌های ایمیلی که پیوست‌های 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 برای این منظور استفاده می‌شود. قطعه کد زیر نشان می‌دهد چگونه eML با فرمت TNEF از 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

پردازش پیام‌های برگشتی

اینکه پیامی که به گیرنده ارسال می‌شود به دلایلی مانند آدرس نامعتبر گیرنده برگردد، بسیار رایج است. API Aspose.Email توانایی پردازش چنین پیامی را برای بررسی اینکه آیا ایمیل برگشتی است یا ایمیل عادی دارد. متد check_bounced در MailMessage یک نتیجه معتبر برمی‌گرداند اگر پیام ایمیل برگشتی باشد. این مقاله نشان‌دهندهٔ استفاده از BounceResult کلاسی که امکان بررسی اینکه آیا یک پیام ایمیل برگشتی (bounced) است را فراهم می‌کند. همچنین اطلاعات دقیقی درباره گیرندگان، اقدام انجام شده و دلیل اعلان ارائه می‌دهد. قطعه کد زیر نشان می‌دهد چگونه پیام‌های برگشتی را پردازش کنید.

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)