Berichten laden en opslaan
Detectie van bestandsformaten
Aspose.Email‑API biedt de mogelijkheid om het bestandsformaat van een opgegeven berichtbestand te detecteren. De DetectFileFormat‑methode van de FileFormatUtil‑klasse kan hiervoor worden gebruikt. De volgende klassen en methoden kunnen worden gebruikt om het geladen bestandsformaat te detecteren.
- Enum FileFormatType
- Klasse FileFormatInfo
- Klasse FileFormatUtil
- Methode detect_file_format(stream)
- Methode detect_file_format(file_path)
Het volgende codefragment toont hoe je bestandsformaten detecteert.
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))
Bericht laden met laadopties
De onderstaande code‑fragment toont hoe u een bericht laadt met laadopties.
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)
Behouden van ingesloten berichtformaat tijdens laden
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))
Berichten opslaan en converteren
Aspose.Email maakt het eenvoudig om elk berichttype naar een ander formaat te converteren. Om deze functie te demonstreren, laadt de code in dit artikel drie soorten berichten van de schijf en slaat ze op in andere formaten. De basisklasse SaveOptions en de klassen EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions voor extra instellingen bij het opslaan MailMessage kan worden gebruikt om berichten op te slaan naar andere formaten. Het artikel laat zien hoe je deze klassen gebruikt om een voorbeeld‑e‑mail op te slaan als:
- EML‑formaat.
- Outlook MSG.
- MHTML‑formaat.
- HTML‑formaat.
EML laden en opslaan als EML
Het volgende codefragment toont hoe je een EML‑bericht laadt en op schijf opslaat in hetzelfde formaat.
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 laden en opslaan als EML met behoud van de oorspronkelijke grenzen
Het volgende codefragment toont hoe je een EML laadt en opslaat als EML met behoud van de oorspronkelijke grenzen.
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)
Opslaan als EML met behoud van TNEF‑bijlagen
Het volgende codefragment toont hoe je opslaat als EML met behoud van TNEF‑bijlagen.
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 laden, opslaan als MSG
Het volgende codefragment toont hoe je een EML‑bericht laadt en converteert naar MSG met behulp van de juiste optie uit 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)
Opslaan als MSG met behouden datums
De MsgSaveOptions klasse stelt je in staat om het bronbericht op te slaan als een Outlook‑berichtbestand (MSG) met behoud van datums. Het volgende codefragment laat zien hoe je opslaat als MSG met bewaarde datums.
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 opslaan als MHTML
Verschillende MHTML‑opties kunnen worden gebruikt om het gewenste resultaat te bereiken. Het volgende codefragment toont hoe je een EML‑bericht laadt inMailMessage en converteert het naar 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)
Conversie naar MHTML met optionele instellingen
De MhtSaveOptions klasse biedt extra opties voor het opslaan van e‑mailberichten in MHTML‑formaat. De enumerator MhtFormatOptions maakt het mogelijk om extra e‑mailinformatie naar het uitvoer‑MHTML te schrijven. De volgende extra velden kunnen worden geschreven:
- NONE - Er zijn geen specifieke instellingen gespecificeerd.
- WRITE_HEADER - Geeft aan dat header‑informatie moet worden geschreven.
- WRITE_OUTLINE_ATTACHMENTS - Geeft aan dat outline‑bijlagen moeten worden geschreven.
- WRITE_COMPLETE_EMAIL_ADDRESS - Geeft aan dat het volledige e‑mailadres moet worden geschreven in alle e‑mailheaders.
- NO_ENCODE_CHARACTERS - Geeft aan dat er geen overdrachts‑codering van tekens gebruikt mag worden.
- HIDE_EXTRA_PRINT_HEADER - Geeft aan dat de PageHeader onzichtbaar zal zijn.
- WRITE_COMPLETE_TO_EMAIL_ADDRESS - Geeft aan dat het volledige e‑mailadres moet worden geschreven in de ‘To’-header.
- WRITE_COMPLETE_FROM_EMAIL_ADDRESS - Geeft aan dat het volledige e‑mailadres moet worden geschreven in de ‘From’-header.
- WRITE_COMPLETE_CC_EMAIL_ADDRESS - Geeft aan dat het volledige e‑mailadres moet worden geschreven in de ‘Cc’-header.
- WRITE_COMPLETE_BCC_EMAIL_ADDRESS - Geeft aan dat het volledige e‑mailadres moet worden geschreven in de ‘Bcc’-header.
- RENDER_CALENDAR_EVENT - Geeft aan dat tekst van een agenda‑event moet worden geschreven in de uitvoer‑mhtml.
- SKIP_BYTE_ORDER_MARK_IN_BODY - Geeft aan dat Byte Order Mark (BOM)-bytes naar de body moeten worden geschreven.
- RENDER_V_CARD_INFO - Geeft aan dat tekst uit VCard AlternativeView moet worden geschreven in de uitvoer‑mhtml.
- DISPLAY_AS_OUTLOOK - Geeft aan dat de From‑header wordt weergegeven zoals in Outlook.
- RENDER_TASK_FIELDS - Geeft aan dat de specifieke taakvelden moeten worden geschreven in de uitvoer‑mhtml.
Het volgende codefragment toont hoe je een EML‑bestand converteert naar MHTML met optionele instellingen.
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)
Agenda‑evenementen renderen tijdens conversie naar MHTML
De MhtFormatOptions.RenderCalendarEvent rendert de agenda‑evenementen naar de MHTML‑output. Het volgende codefragment toont hoe je agenda‑evenementen rendert tijdens de conversie naar 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)
E‑mail exporteren naar MHT zonder inline‑afbeeldingen
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)
E‑mail exporteren naar MHT met aangepaste tijdzone
MailMessage klasse biedt de TimeZoneOffset‑eigenschap om een aangepaste tijdzone in te stellen bij het exporteren naar MHT. Het volgende codefragment toont hoe je een e‑mail exporteert naar MHT met een aangepaste tijdzone.
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‑mail exporteren naar EML
Het volgende codefragment toont hoe je een e‑mail exporteert naar 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)
Bericht opslaan als HTML
De HtmlSaveOptions klasse stelt je in staat de bericht‑body naar HTML te exporteren met de optie om ingesloten resources op te slaan. Het volgende codefragment toont hoe je een bericht opslaat als HTML waarbij de standaardwaarde van embed_resources true is.
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)
Bericht opslaan als Outlook‑sjabloon (.oft)‑bestand
Het volgende codefragment toont hoe je een bericht opslaat als Outlook‑sjabloon (.oft)‑bestand.
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)