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.

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)