Memuat dan Menyimpan Pesan

Mendeteksi Format File

Aspose.Email API menyediakan kemampuan untuk mendeteksi format file dari file pesan yang diberikan. Metode DetectFileFormat pada kelas FileFormatUtil dapat digunakan untuk mencapai hal ini. Kelas dan metode berikut dapat digunakan untuk mendeteksi format file yang dimuat.

Potongan kode berikut menunjukkan cara mendeteksi format file.

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

Memuat Pesan dengan Opsi Muat

Potongan kode berikut menunjukkan cara memuat pesan dengan opsi muat.

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)

Mempertahankan Format Pesan Tersemat selama Memuat

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

Menyimpan dan Mengonversi Pesan

Aspose.Email memudahkan konversi jenis pesan apa pun ke format lain. Untuk mendemonstrasikan fitur ini, kode dalam artikel ini memuat tiga jenis pesan dari disk dan menyimpannya kembali dalam format lain. Kelas dasar SaveOptions dan kelas EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions untuk pengaturan tambahan saat menyimpan MailMessage dapat digunakan untuk menyimpan pesan ke format lain. Artikel ini menunjukkan cara menggunakan kelas ini untuk menyimpan contoh email sebagai:

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

Memuat EML dan Menyimpan sebagai EML

Potongan kode berikut menunjukkan cara memuat pesan EML dan menyimpannya ke disk dalam format yang sama.

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)

Memuat EML dan Menyimpan sebagai EML dengan Mempertahankan Batas Asli

Potongan kode berikut menunjukkan cara memuat EML dan menyimpan sebagai EML sambil mempertahankan batas asli.

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)

Menyimpan sebagai EML dengan Mempertahankan Lampiran TNEF

Potongan kode berikut menunjukkan cara menyimpan sebagai EML sambil mempertahankan lampiran TNEF.

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)

Memuat EML, Menyimpan ke MSG

Potongan kode berikut menunjukkan cara memuat pesan EML dan mengonversinya ke MSG menggunakan opsi yang tepat dari 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)

Menyimpan sebagai MSG dengan Tanggal yang Dipertahankan

The MsgSaveOptions kelas memungkinkan Anda menyimpan pesan sumber sebagai file Outlook Message (MSG) dengan mempertahankan tanggal. Potongan kode berikut menunjukkan cara Menyimpan sebagai MSG dengan Tanggal yang Dipertahankan.

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)

Menyimpan MailMessage sebagai MHTML

Berbagai opsi MHTML dapat digunakan untuk memperoleh hasil yang diinginkan. Potongan kode berikut menunjukkan cara memuat pesan EML ke dalamMailMessage dan mengonversinya ke MHTML.

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)

Mengonversi ke MHTML dengan Pengaturan Opsional

The MhtSaveOptions kelas menyediakan opsi tambahan untuk menyimpan pesan email ke format MHTML. Enumerator MhtFormatOptions memungkinkan untuk menulis informasi email tambahan ke MHTML output. Bidang tambahan berikut dapat ditulis:

  • NONE - Tidak ada pengaturan khusus yang ditentukan.
  • WRITE_HEADER - Menunjukkan bahwa informasi header harus ditulis.
  • WRITE_OUTLINE_ATTACHMENTS - Menunjukkan bahwa lampiran outline harus ditulis.
  • WRITE_COMPLETE_EMAIL_ADDRESS - Menunjukkan bahwa alamat email lengkap harus ditulis di semua header email.
  • NO_ENCODE_CHARACTERS - Menunjukkan bahwa tidak boleh menggunakan transfer encoding pada karakter.
  • HIDE_EXTRA_PRINT_HEADER - Menunjukkan bahwa PageHeader akan tidak terlihat.
  • WRITE_COMPLETE_TO_EMAIL_ADDRESS - Menunjukkan bahwa alamat email lengkap harus ditulis di header ‘To’.
  • WRITE_COMPLETE_FROM_EMAIL_ADDRESS - Menunjukkan bahwa alamat email lengkap harus ditulis di header ‘From’.
  • WRITE_COMPLETE_CC_EMAIL_ADDRESS - Menunjukkan bahwa alamat email lengkap harus ditulis di header ‘Cc’.
  • WRITE_COMPLETE_BCC_EMAIL_ADDRESS - Menunjukkan bahwa alamat email lengkap harus ditulis di header ‘Bcc’.
  • RENDER_CALENDAR_EVENT - Menunjukkan bahwa teks dari acara kalender harus ditulis dalam output mhtml.
  • SKIP_BYTE_ORDER_MARK_IN_BODY - Menunjukkan bahwa byte Byte Order Mark (BOM) harus ditulis ke badan.
  • RENDER_V_CARD_INFO - Menunjukkan bahwa teks dari VCard AlternativeView harus ditulis dalam output mhtml.
  • DISPLAY_AS_OUTLOOK - Menunjukkan bahwa header From akan ditampilkan seperti di Outlook.
  • RENDER_TASK_FIELDS - Menunjukkan bahwa bidang Task tertentu harus ditulis dalam output mhtml.

Potongan kode berikut menunjukkan cara mengonversi file eml ke MHTML dengan pengaturan opsional.

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)

Merender Acara Kalender saat Mengonversi ke MHTML

The MhtFormatOptions.RenderCalendarEvent Merender acara Kalender ke output MHTML. Potongan kode berikut menunjukkan cara merender acara kalender saat mengonversi ke MHTML.

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)

Mengekspor Email ke MHT tanpa Gambar Inline

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)

Mengekspor Email ke MHT dengan Zona Waktu yang Disesuaikan

MailMessage Kelas menyediakan properti TimeZoneOffset untuk mengatur Zona Waktu yang disesuaikan saat mengekspor ke MHT. Potongan kode berikut menunjukkan cara mengekspor email ke MHT dengan Zona Waktu yang disesuaikan.

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)

Mengekspor Email ke EML

Potongan kode berikut menunjukkan cara mengekspor email ke eml.

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)

Menyimpan Pesan sebagai HTML

The HtmlSaveOptions Kelas memungkinkan Anda mengekspor isi pesan ke HTML dengan opsi untuk menyimpan sumber daya tersemat. Potongan kode berikut menunjukkan cara Menyimpan Pesan sebagai HTML dimana nilai default embed_resources adalah true.

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)

Menyimpan Pesan sebagai File Templat Outlook (.oft)

Potongan kode berikut menunjukkan cara menyimpan pesan sebagai file templat Outlook (.oft).

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)