Yardımcı Özellikler - MailMessage

TNEF Ekleri İçeren MailMessages

Transport Neutral Encapsulation Format (TNEF), Microsoft Outlook ve Microsoft Exchange Server tarafından kullanılan özel bir e-posta ek formatıdır. Aspose.Email API, TNEF ekleri içeren e-posta mesajlarını okumanıza ve ekin içeriğini değiştirmenize olanak tanır. E-posta daha sonra normal bir e-posta olarak ya da aynı formatta, TNEF eklerini koruyarak kaydedilebilir. Bu makale, TNEF ekleri içeren mesajlarla çalışmak için çeşitli kod örnekleri gösterir. Ayrıca Outlook MSG dosyalarından TNEF EML dosyaları oluşturma konusunda da çalışmayı gösterir.

TNEF Eklerini Koruyarak Mesaj Okuma

Aşağıdaki kod örneği, TNEF eklerini koruyarak mesajı nasıl okuyacağınızı gösterir.

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)

MSG’den TNEF EML Oluşturma

Outlook MSG dosyaları bazen tablolar ve metin stilleri gibi bilgileri içerir; bunlar EML’ye dönüştürüldüğünde bozulabilir. Bu tür MSG dosyalarından TNEF mesajları oluşturmak, biçimlendirmeyi korur ve bu mesajları biçimlendirmeyi koruyarak e-posta istemcileri üzerinden göndermeyi sağlar. convert_as_tnef özelliği bunun için kullanılır. Aşağıdaki kod örneği, MSG’den TNEF eML oluşturmayı gösterir.

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 oluşturmak için aşağıdaki örnek kod kullanılabilir.

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)

Bir Mesajın TNEF Olup Olmadığını Algıla

Aşağıdaki kod örneği, bir mesajın TNEF olup olmadığını nasıl tespit edeceğinizi gösterir.

from aspose.email import MailMessage

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

Geri Dönüş Mesajlarının İşlenmesi

Bir alıcıya gönderilen mesajın geçersiz alıcı adresi gibi bir nedenle geri dönmesi çok yaygındır. Aspose.Email API, böyle bir mesajın geri dönen e-posta mı yoksa normal bir e-posta mı olduğunu kontrol etme yeteneğine sahiptir. MailMessage sınıfının check_bounced yöntemi, e-posta mesajı bir bounced e-posta ise geçerli bir sonuç döndürür. Bu makale, kullanımını gösterir: BounceResult Bir mesajın geri dönen (bounced) e-posta olup olmadığını kontrol etme yeteneği sağlayan sınıf. Ayrıca alıcılar, alınan eylem ve bildirimin nedeni hakkında ayrıntılı bilgi verir. Aşağıdaki kod örneği, geri dönen mesajları nasıl işleyeceğinizi gösterir.

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

Bayes İstenmeyen Analizörü

Aspose.Email, Bayesian spam analizörü kullanarak e-posta filtreleme sağlar. Şu özellikleri sunar: SpamAnalyzer bu amaç için sınıf. Bu makale, bir kelime veri tabanına dayalı olarak spam ve normal e-postaları ayırt edecek şekilde filtreyi nasıl eğiteceğinizi gösterir.

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)