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.
- Výčet FileFormatType
- Třída FileFormatInfo
- Třída FileFormatUtil
- Metoda detect_file_format(stream)
- Metoda detect_file_format(file_path)
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)