Mesajı Yükleme ve Kaydetme

Dosya Formatlarını Tespit Etme

Aspose.Email API, sağlanan mesaj dosyasının dosya formatını tespit etme yeteneği sağlar. FileFormatUtil sınıfının DetectFileFormat yöntemi bu amaçla kullanılabilir. Yüklenen dosya formatını tespit etmek için aşağıdaki sınıflar ve yöntemler kullanılabilir.

Aşağıdaki kod örneği, dosya formatlarını nasıl tespit edeceğinizi gösterir.

from aspose.email.tools import FileFormatUtil

# Detect file format and get the detected load format
info = FileFormatUtil.detect_file_format(data_dir + "message.msg")
print("The message format is: " + str(info.file_format_type))

Yükleme Seçenekleriyle Mesaj Yükleme

Aşağıdaki kod parçacığı, bir mesajı yükleme seçenekleriyle nasıl yükleyeceğinizi gösterir.

from aspose.email import MailMessage, EmlLoadOptions, HtmlLoadOptions, MhtmlLoadOptions, MsgLoadOptions

# Load Eml, html, mhtml, msg, and dat files
mail_message = MailMessage.load(data_dir + "message.eml", EmlLoadOptions())
MailMessage.load(data_dir + "description.html", HtmlLoadOptions())
MailMessage.load(data_dir + "message.mhtml", MhtmlLoadOptions())
MailMessage.load(data_dir + "message.msg", MsgLoadOptions())

# Loading with custom options
eml_load_options = EmlLoadOptions()
eml_load_options.preferred_text_encoding = "utf-8"
eml_load_options.preserve_tnef_attachments = True

MailMessage.load(data_dir + "description.html", eml_load_options)

html_load_options = HtmlLoadOptions()
html_load_options.preferred_text_encoding = "utf-8"
html_load_options.should_add_plain_text_view = True
html_load_options.path_to_resources = data_dir

MailMessage.load(data_dir + "description.html", html_load_options)

Yükleme Sırasında Gömülü Mesaj Formatını Korumak

from aspose.email import MailMessage, EmlLoadOptions, HtmlLoadOptions, MhtmlLoadOptions, MsgLoadOptions
from aspose.email.tools import FileFormatUtil

eml_load_options = EmlLoadOptions()
eml_load_options.preserve_embedded_message_format = True

mail = MailMessage.load(data_dir + "message.eml", eml_load_options)

file_format = FileFormatUtil.detect_file_format(mail.attachments[0].content_stream).file_format_type

print("Embedded message file format: " + str(file_format))

Mesajları Kaydetme ve Dönüştürme

Aspose.Email, herhangi bir mesaj tipini başka bir formata dönüştürmeyi kolaylaştırır. Bu özelliği göstermek için, bu makaledeki kod diskten üç tip mesaj yükleyip bunları diğer formatlarda geri kaydeder. Temel sınıf SaveOptions ve sınıflar EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions kaydederken ek ayarlar için MailMessage diğer formatlarda mesaj kaydetmek için kullanılabilir. Makale, bu sınıfları kullanarak örnek bir e-postayı şu şekilde kaydetmeyi gösterir:

  • EML formatı.
  • Outlook MSG.
  • MHTML formatı.
  • HTML formatı.

EML’yi Yükleme ve EML Olarak Kaydetme

Aşağıdaki kod örneği, bir EML mesajını yükleyip aynı formatta diske nasıl kaydedeceğinizi gösterir.

from aspose.email import MailMessage, SaveOptions

# Initialize and Load an existing EML file by specifying the MessageFormat
mail_message = MailMessage.load(data_dir + "message.eml")

mail_message.save(data_dir + "LoadAndSaveFileAsEML_out.eml", SaveOptions.default_eml)

EML’yi Yükleme ve Özgün Sınırları Koruyarak EML Olarak Kaydetme

Aşağıdaki kod örneği, EML’yi yükleyip özgün sınırları koruyarak EML olarak kaydetmeyi gösterir.

from aspose.email import MailMessage, EmlSaveOptions, MailMessageSaveType

mail_message = MailMessage.load(data_dir + "message.eml")

# Save as eml with preserved original boundaries
eml_save_options = EmlSaveOptions(MailMessageSaveType.eml_format)

mail_message.save(data_dir + "PreserveOriginalBoundaries_out.eml", eml_save_options)

TNEF Eklerini Koruyarak EML Olarak Kaydetme

Aşağıdaki kod örneği, TNEF eklerini koruyarak EML olarak kaydetmeyi gösterir.

from aspose.email import MailMessage, EmlSaveOptions, MailMessageSaveType, FileCompatibilityMode

mail_message = MailMessage.load(data_dir + "message.eml")

# Save as eml with preserved attachment
eml_save_options = EmlSaveOptions(MailMessageSaveType.eml_format)
eml_save_options.file_compatibility_mode = FileCompatibilityMode.PRESERVE_TNEF_ATTACHMENTS

mail_message.save(data_dir + "PreserveTNEFAttachment_out.eml", eml_save_options)

EML’yi Yükleme, MSG’ye Kaydetme

Aşağıdaki kod parçacığı, bir EML mesajını nasıl yükleyeceğinizi ve uygun seçenek kullanarak MSG’ye dönüştüreceğinizi gösterir SaveOptions.

from aspose.email import MailMessage, SaveOptions, MailMessageSaveType, FileCompatibilityMode

# Initialize and Load an existing EML file by specifying the MessageFormat
eml = MailMessage.load(data_dir + "message.eml")

# Save the Email message to disk in ASCII format and Unicode format
eml.save(data_dir + "AnEmail_out.msg", SaveOptions.default_msg_unicode)

Tarihler Korunarak MSG Olarak Kaydetme

Bu MsgSaveOptions sınıf, kaynak mesajı tarihleri koruyarak bir Outlook Mesaj dosyası (MSG) olarak kaydetmenizi sağlar. Aşağıdaki kod parçacığı, Tarihleri Koruyarak MSG Olarak Kaydetmeyi gösterir.

from aspose.email import MailMessage, MsgSaveOptions, MailMessageSaveType, FileCompatibilityMode

# Initialize and Load an existing EML file by specifying the MessageFormat
eml = MailMessage.load(data_dir + "message.eml")

# Save as msg with preserved dates
msg_save_options = MsgSaveOptions(MailMessageSaveType.outlook_message_format_unicode)
msg_save_options.preserve_original_dates = True

eml.save(data_dir + "outTest_out.msg", msg_save_options)

MailMessage’ı MHTML Olarak Kaydetme

İstenen sonuçları elde etmek için farklı MHTML seçenekleri kullanılabilir. Aşağıdaki kod örneği, bir EML mesajını nasıl yükleyeceğinizi gösterirMailMessage ve bunu MHTML’ye dönüştürür.

from aspose.email import MailMessage, SaveOptions, MailMessageSaveType, FileCompatibilityMode

# Initialize and Load an existing EML file by specifying the MessageFormat
eml = MailMessage.load(data_dir + "message.eml")

eml.save(data_dir + "AnEmail_out.mhtml", SaveOptions.default_mhtml)

İsteğe Bağlı Ayarlarla MHTML’ye Dönüştürme

Bu MhtSaveOptions sınıf, e-posta mesajlarını MHTML formatında kaydetmek için ek seçenekler sağlar. Enumerator MhtFormatOptions çıktı MHTML’ye ek e-posta bilgileri yazılmasını mümkün kılar. Aşağıdaki ek alanlar yazılabilir:

  • NONE - Belirli bir ayar belirtilmemiştir.
  • WRITE_HEADER - Başlık bilgilerinin yazılacağını gösterir.
  • WRITE_OUTLINE_ATTACHMENTS - Outline eklerinin yazılacağını gösterir.
  • WRITE_COMPLETE_EMAIL_ADDRESS - Tam e-posta adresinin tüm e-posta başlıklarına yazılacağını gösterir.
  • NO_ENCODE_CHARACTERS - Karakterlerin transfer kodlamasının kullanılmayacağını gösterir.
  • HIDE_EXTRA_PRINT_HEADER - PageHeader’ın görünmez olacağını gösterir.
  • WRITE_COMPLETE_TO_EMAIL_ADDRESS - Tam e-posta adresinin ‘To’ başlığına yazılacağını gösterir.
  • WRITE_COMPLETE_FROM_EMAIL_ADDRESS - Tam e-posta adresinin ‘From’ başlığına yazılacağını gösterir.
  • WRITE_COMPLETE_CC_EMAIL_ADDRESS - Tam e-posta adresinin ‘Cc’ başlığına yazılacağını gösterir.
  • WRITE_COMPLETE_BCC_EMAIL_ADDRESS - Tam e-posta adresinin ‘Bcc’ başlığına yazılacağını gösterir.
  • RENDER_CALENDAR_EVENT - Takvim etkinliğinden metnin çıktıda mhtml olarak yazılacağını gösterir.
  • SKIP_BYTE_ORDER_MARK_IN_BODY - Byte Order Mark (BOM) baytlarının gövdeye yazılmaması gerektiğini gösterir.
  • RENDER_V_CARD_INFO - VCard AlternativeView’den metnin çıktıda mhtml olarak yazılacağını gösterir.
  • DISPLAY_AS_OUTLOOK - From başlığının Outlook’ta olduğu gibi görüntüleneceğini gösterir.
  • RENDER_TASK_FIELDS - Belirli Görev alanlarının çıktıda mhtml olarak yazılacağını gösterir.

Aşağıdaki kod örneği, isteğe bağlı ayarlarla eml dosyasını MHTML’ye nasıl dönüştüreceğinizi gösterir.

from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MailMessageSaveType, FileCompatibilityMode

# Load an existing EML file
eml = MailMessage.load(data_dir + "message.eml")

# Save as mht with header
mht_save_options = MhtSaveOptions()

# Specify formatting options required
# Here we are specifying to write header information to output without writing extra print header
# and the output headers should be displayed as the original headers in the message
mht_save_options.mht_format_options = MhtFormatOptions.WRITE_HEADER | MhtFormatOptions.HIDE_EXTRA_PRINT_HEADER | MhtFormatOptions.DISPLAY_AS_OUTLOOK

# Check the body encoding for validity.
mht_save_options.check_body_content_encoding = True

eml.save(data_dir + "outMessage_out.mht", mht_save_options)

MHTML’ye Dönüştürürken Takvim Etkinliklerini Render Etme

Bu MhtFormatOptions.RenderCalendarEvent Takvim etkinliklerini çıkış MHTML’ye render eder. Aşağıdaki kod örneği, MHTML’ye dönüştürürken takvim etkinliklerinin nasıl render edileceğini gösterir.

from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MhtTemplateName, MailMessageSaveType, FileCompatibilityMode

file_name = "message.msg"

# Load the MSG file
msg = MailMessage.load(data_dir + file_name)

# Create MHT save options
options = MhtSaveOptions()
options.mht_format_options = MhtFormatOptions.WRITE_HEADER | MhtFormatOptions.RENDER_CALENDAR_EVENT

# Save the message as MHTML
msg.save(data_dir + "Meeting with Recurring Occurrences.mhtml", options)

Satır İçi Görseller Olmadan E-postayı MHT’ye Dışa Aktarma

from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MhtTemplateName, MailMessageSaveType, FileCompatibilityMode

# Load the EML file
eml = MailMessage.load(data_dir + "message.eml")

# Create MHT save options
mht_save_options = MhtSaveOptions()
mht_save_options.skip_inline_images = True

# Save the message as MHTML without inline images
eml.save(data_dir + "EmlToMhtmlWithoutInlineImages_out.mht", mht_save_options)

Özelleştirilmiş Saat Dilimiyle E-postayı MHT’ye Dışa Aktarma

MailMessage Sınıf, MHT’ye dışa aktarırken özelleştirilmiş saat dilimi ayarlamak için TimeZoneOffset özelliğini sağlar. Aşağıdaki kod örneği, özelleştirilmiş saat dilimiyle bir e-postayı MHT’ye nasıl dışa aktaracağınızı gösterir.

from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MhtTemplateName, MailMessageSaveType, FileCompatibilityMode
from datetime import timedelta

# Load the EML file
eml = MailMessage.load(data_dir + "message.eml")

# Set the local time for message date
eml.time_zone_offset = timedelta(hours=-8)

# The dates will be rendered by the local system time zone
mht_save_options = MhtSaveOptions()
mht_save_options.mht_format_options = MhtFormatOptions.WRITE_HEADER
eml.save(data_dir + "ExportEmailToMHTWithCustomTimezone_out.mhtml", mht_save_options)

E-postayı EML’ye Aktarma

Aşağıdaki kod örneği, e-postayı eml olarak dışa aktarmayı gösterir.

from aspose.email import MailMessage, SaveOptions

# Load the EML file
msg = MailMessage.load(data_dir + "message.eml")

# Save the Email message as EML
msg.save(data_dir + "ExporttoEml_out.eml", SaveOptions.default_eml)

Mesajı HTML Olarak Kaydetme

Bu HtmlSaveOptions Sınıf, mesaj gövdesini HTML’ye dışa aktarmanıza ve gömülü kaynakları kaydetme seçeneği sunar. Aşağıdaki kod örneği, embed_resources varsayılan değeri true iken Mesajı HTML olarak nasıl kaydedeceğinizi gösterir.

from aspose.email import MailMessage, SaveOptions, HtmlSaveOptions, HtmlFormatOptions

# Load the EML file
message = MailMessage.load(data_dir + "message.eml")

# Save the Email message as HTML
message.save(data_dir + "SaveAsHTML_out.html", SaveOptions.default_html)

# OR

eml = MailMessage.load(data_dir + "message.eml")
options = HtmlSaveOptions()
options.embed_resources = False
options.html_format_options = (
    HtmlFormatOptions.WRITE_HEADER
    | HtmlFormatOptions.WRITE_COMPLETE_EMAIL_ADDRESS
)  # save the message headers to output HTML using the formatting options
eml.save(data_dir + "SaveAsHTML1_out.html", options)

Mesajı Outlook Şablonu (.oft) dosyası olarak Kaydetme

Aşağıdaki kod örneği, mesajı Outlook şablonu (.oft) dosyası olarak nasıl kaydedeceğinizi gösterir.

from aspose.email import MailMessage, SaveOptions

eml = MailMessage("test@from.to", "test@to.to", "template subject", "Template body")

oft_eml_file_name = "EmlAsOft_out.oft"
options = SaveOptions.default_msg_unicode
options.save_as_template = True
eml.save(data_dir + oft_eml_file_name, options)