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)