Načítání a ukládání zprávy

Detekce formátů souborů

API Aspose.Email poskytuje možnost detekovat formát souboru poskytované zprávy. Metodu DetectFileFormat třídy FileFormatUtil lze použít k dosažení tohoto cíle. Následující třídy a metody lze použít k detekci načteného formátu souboru.

Následující úryvek kódu ukazuje, jak detekovat formáty souborů.

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

Načítání zprávy s možnostmi načtení

Následující úryvek kódu ukazuje, jak načíst zprávu s možnostmi načtení.

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)

Zachování vloženého formátu zprávy během načítání

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

Ukládání a převod zpráv

Aspose.Email usnadňuje konverzi libovolného typu zprávy do jiného formátu. K demonstraci této funkce kód v tomto článku načte tři typy zpráv z disku a uloží je zpět v jiných formátech. Základní třída SaveOptions a třídy EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions pro další nastavení při ukládání MailMessage Lze použít pro ukládání zpráv do jiných formátů. Článek ukazuje, jak použít tyto třídy k uložení ukázkového e‑mailu jako:

  • EML formát.
  • Outlook MSG.
  • MHTML formát.
  • HTML formát.

Načítání EML a ukládání jako EML

Následující úryvek kódu ukazuje, jak načíst EML zprávu a uložit ji na disk ve stejném formátu.

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)

Načtení EML a uložení jako EML se zachováním původních hranic

Následující úryvek kódu ukazuje, jak načíst EML a uložit jako EML při zachování původních hranic.

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)

Ukládání jako EML zachovávajíc přílohy TNEF

Následující úryvek kódu ukazuje, jak uložit jako EML při zachování TNEF příloh.

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)

Načtení EML, uložení do MSG

Následující úryvek kódu vám ukáže, jak načíst zprávu EML a převést ji na MSG pomocí vhodné volby z 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)

Ukládání jako MSG se zachovanými daty

The MsgSaveOptions Třída umožňuje uložit zdrojovou zprávu jako soubor Outlook Message (MSG) s zachováním data. Následující úryvek kódu vám ukáže, jak uložit jako MSG se zachovanými daty.

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)

Ukládání MailMessage jako MHTML

Různé možnosti MHTML lze použít k dosažení požadovaných výsledků. Následující úryvek kódu ukazuje, jak načíst EML zprávu doMailMessage a převádí jej do 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)

Převod do MHTML s volitelnými nastaveními

The MhtSaveOptions Třída poskytuje další možnosti pro ukládání e‑mailových zpráv do formátu MHTML. Enumerator MhtFormatOptions Umožňuje zapisovat další informace o e‑mailu do výstupního MHTML. Následující další pole lze zapsat:

  • NONE – nejsou specifikována žádná konkrétní nastavení.
  • WRITE_HEADER – označuje, že by měla být zapsána informace z hlavičky.
  • WRITE_OUTLINE_ATTACHMENTS – označuje, že by měly být zapsány outline přílohy.
  • WRITE_COMPLETE_EMAIL_ADDRESS – označuje, že kompletní e‑mailová adresa by měla být zapsána do všech e‑mailových hlaviček.
  • NO_ENCODE_CHARACTERS – označuje, že by se neměl používat žádný převodový kód znaků.
  • HIDE_EXTRA_PRINT_HEADER – označuje, že PageHeader bude neviditelný.
  • WRITE_COMPLETE_TO_EMAIL_ADDRESS – označuje, že kompletní e‑mailová adresa by měla být zapsána do hlavičky ‘To’.
  • WRITE_COMPLETE_FROM_EMAIL_ADDRESS – označuje, že kompletní e‑mailová adresa by měla být zapsána do hlavičky ‘From’.
  • WRITE_COMPLETE_CC_EMAIL_ADDRESS – označuje, že kompletní e‑mailová adresa by měla být zapsána do hlavičky ‘Cc’.
  • WRITE_COMPLETE_BCC_EMAIL_ADDRESS – označuje, že kompletní e‑mailová adresa by měla být zapsána do hlavičky ‘Bcc’.
  • RENDER_CALENDAR_EVENT – označuje, že text z události kalendáře by měl být zapsán do výstupního mhtml.
  • SKIP_BYTE_ORDER_MARK_IN_BODY – Indikuje, že by měly být do těla zapsány bajty Byte Order Mark (BOM).
  • RENDER_V_CARD_INFO – označuje, že text z VCard AlternativeView by měl být zapsán do výstupního mhtml.
  • DISPLAY_AS_OUTLOOK – označuje, že hlavička From bude zobrazena jako v Outlooku.
  • RENDER_TASK_FIELDS – označuje, že konkrétní pole úkolu by měla být zapsána do výstupního mhtml.

Následující úryvek kódu ukazuje, jak převést soubor eml do MHTML s volitelnými nastaveními.

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)

Renderování událostí kalendáře při převodu do MHTML

The MhtFormatOptions.RenderCalendarEvent vykresluje události kalendáře do výstupního MHTML. Následující úryvek kódu ukazuje, jak renderovat události kalendáře při převodu do 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)

Export e‑mailu do MHT bez vložených obrázků

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)

Export e‑mailu do MHT s upraveným časovým pásmem

MailMessage třída poskytuje vlastnost TimeZoneOffset pro nastavení upraveného časového pásma při exportu do MHT. Následující úryvek kódu ukazuje, jak exportovat e‑mail do MHT s upraveným časovým pásmem.

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)

Export e‑mailu do EML

Následující úryvek kódu ukazuje, jak exportovat e‑mail do formátu 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)

Ukládání zprávy jako HTML

The HtmlSaveOptions třída umožňuje exportovat tělo zprávy do HTML s možností uložit vložené zdroje. Následující úryvek kódu ukazuje, jak uložit zprávu jako HTML, kde výchozí hodnota embed_resources je 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)

Ukládání zprávy jako šablony Outlook (.oft)

Následující úryvek kódu ukazuje, jak uložit zprávu jako šablonu Outlooku (.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)