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.
- Enum FileFormatType
- Kelas FileFormatInfo
- Kelas FileFormatUtil
- Metode detect_file_format(stream)
- Metode detect_file_format(file_path)
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)