Fitur Utilitas - MailMessage

MailMessage yang Mengandung Lampiran TNEF

Transport Neutral Encapsulation Format (TNEF) adalah format lampiran email proprietari yang digunakan oleh Microsoft Outlook dan Microsoft Exchange Server. API Aspose.Email memungkinkan Anda membaca pesan email yang memiliki lampiran TNEF dan memodifikasi isi lampiran tersebut. Email kemudian dapat disimpan sebagai email biasa atau dalam format yang sama, sambil mempertahankan lampiran TNEF. Artikel ini menampilkan berbagai contoh kode untuk bekerja dengan pesan yang berisi lampiran TNEF. Artikel ini juga menunjukkan cara membuat file EML TNEF dari file MSG Outlook.

Membaca Pesan dengan Mempertahankan Lampiran TNEF

Potongan kode berikut menunjukkan cara membaca pesan dengan mempertahankan lampiran 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)

Membuat TNEF EML dari MSG

Outlook MSG terkadang berisi informasi seperti tabel dan gaya teks yang dapat terganggu jika dikonversi ke EML. Membuat pesan TNEF dari file MSG semacam itu memungkinkan mempertahankan format dan bahkan mengirim pesan tersebut melalui klien email sambil mempertahankan formatnya. Properti convert_as_tnef digunakan untuk mencapai ini. Potongan kode berikut menunjukkan cara membuat eML TNEF dari 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)

Untuk membuat TNEF, kode contoh berikut dapat digunakan.

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)

Mendeteksi Jika Pesan adalah TNEF

Potongan kode berikut menunjukkan cara mendeteksi apakah sebuah pesan adalah TNEF.

from aspose.email import MailMessage

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

Pemrosesan Pesan yang Memantul

Sangat umum bahwa sebuah pesan yang dikirim ke penerima dapat memantul karena alasan apa pun seperti alamat penerima yang tidak valid. API Aspose.Email memiliki kemampuan untuk memproses pesan semacam itu untuk memeriksa apakah itu email yang memantul atau pesan email biasa. Metode check_bounced pada MailMessage mengembalikan hasil yang valid jika pesan email tersebut adalah email yang memantul. Artikel ini menunjukkan penggunaan BounceResult Kelas yang menyediakan kemampuan untuk memeriksa apakah sebuah pesan merupakan email yang memantul (bounced). Selain itu, memberikan informasi detail tentang penerima, tindakan yang diambil, dan alasan notifikasi. Potongan kode berikut menunjukkan cara memproses pesan yang memantul.

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

Analisis Spam Bayesian

Aspose.Email menyediakan penyaringan email menggunakan analis spam Bayesian. Ini menyediakan SpamAnalyzer Kelas untuk tujuan ini. Artikel ini menunjukkan cara melatih filter untuk membedakan antara spam dan email biasa berdasarkan basis data kata.

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)