Laden und Speichern von Nachrichten

Erkennen von Dateiformaten

Die Aspose.Email‑API bietet die Möglichkeit, das Dateiformat einer angegebenen Nachrichten‑Datei zu erkennen. Die Methode DetectFileFormat der Klasse FileFormatUtil kann hierfür verwendet werden. Die folgenden Klassen und Methoden können zur Erkennung des geladenen Dateiformats verwendet werden.

Der folgende Codeausschnitt zeigt, wie man Dateiformate erkennt.

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

Laden einer Nachricht mit Ladeoptionen

Das folgende Code‑Snippet zeigt, wie Sie eine Nachricht mit Ladeoptionen laden.

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)

Behalten des eingebetteten Nachrichtenformats beim 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))

Nachrichten speichern und konvertieren

Aspose.Email erleichtert die Konvertierung beliebiger Nachrichtentypen in ein anderes Format. Um diese Funktion zu demonstrieren, lädt der Code in diesem Artikel drei Nachrichtentypen von der Festplatte und speichert sie in anderen Formaten zurück. Die Basisklasse SaveOptions und die Klassen EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions für zusätzliche Einstellungen beim Speichern MailMessage kann zum Speichern von Nachrichten in andere Formate verwendet werden. Der Artikel zeigt, wie diese Klassen verwendet werden, um eine Beispiel‑E‑Mail zu speichern als:

  • EML‑Format.
  • Outlook‑MSG.
  • MHTML‑Format.
  • HTML‑Format.

Laden von EML und Speichern als EML

Der folgende Codeausschnitt zeigt, wie man eine EML‑Nachricht lädt und sie auf der Festplatte im selben Format speichert.

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)

Laden von EML und Speichern als EML unter Beibehaltung der ursprünglichen Grenzen

Der folgende Codeausschnitt zeigt, wie man EML lädt und als EML speichert, wobei die ursprünglichen Grenzen erhalten bleiben.

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)

Als EML speichern, wobei TNEF‑Anhänge erhalten bleiben

Der folgende Codeausschnitt zeigt, wie man als EML speichert und dabei TNEF‑Anhänge beibehält.

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)

Laden von EML, Speichern als MSG

Das folgende Code‑Snippet zeigt, wie eine EML‑Nachricht geladen und mithilfe der entsprechenden Option aus 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)

Speichern als MSG mit erhaltenen Datumsangaben

Die MsgSaveOptions Klasse ermöglicht das Speichern der Quellnachricht als Outlook‑Message‑Datei (MSG) mit erhaltenen Datumsangaben. Das folgende Code‑Snippet zeigt, wie man als MSG mit erhaltenen Daten speichert.

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)

Speichern von MailMessage als MHTML

Verschiedene MHTML‑Optionen können verwendet werden, um die gewünschten Ergebnisse zu erzielen. Der folgende Codeausschnitt zeigt, wie man eine EML‑Nachricht lädt inMailMessage und konvertiert sie nach 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)

Konvertieren nach MHTML mit optionalen Einstellungen

Die MhtSaveOptions Klasse stellt zusätzliche Optionen zum Speichern von E‑Mail‑Nachrichten im MHTML‑Format bereit. Der Aufzählungstyp MhtFormatOptions macht es möglich, zusätzliche E‑Mail‑Informationen in das AusgabemHTML zu schreiben. Die folgenden zusätzlichen Felder können geschrieben werden:

  • NONE – Keine spezifischen Einstellungen sind angegeben.
  • WRITE_HEADER – Gibt an, dass Kopfzeileninformationen geschrieben werden sollen.
  • WRITE_OUTLINE_ATTACHMENTS – Gibt an, dass Outline‑Anhänge geschrieben werden sollen.
  • WRITE_COMPLETE_EMAIL_ADDRESS – Gibt an, dass die vollständige E‑Mail‑Adresse in allen E‑Mail‑Kopfzeilen geschrieben werden soll.
  • NO_ENCODE_CHARACTERS – Gibt an, dass keine Transferkodierung für Zeichen verwendet werden soll.
  • HIDE_EXTRA_PRINT_HEADER – Gibt an, dass die Seitenkopfzeile nicht sichtbar sein wird.
  • WRITE_COMPLETE_TO_EMAIL_ADDRESS – Gibt an, dass die vollständige E‑Mail‑Adresse in der ‘To’-Kopfzeile geschrieben werden soll.
  • WRITE_COMPLETE_FROM_EMAIL_ADDRESS – Gibt an, dass die vollständige E‑Mail‑Adresse in der ‘From’-Kopfzeile geschrieben werden soll.
  • WRITE_COMPLETE_CC_EMAIL_ADDRESS – Gibt an, dass die vollständige E‑Mail‑Adresse in der ‘Cc’-Kopfzeile geschrieben werden soll.
  • WRITE_COMPLETE_BCC_EMAIL_ADDRESS – Gibt an, dass die vollständige E‑Mail‑Adresse in der ‘Bcc’-Kopfzeile geschrieben werden soll.
  • RENDER_CALENDAR_EVENT – Gibt an, dass Text aus dem Kalenderereignis in das Ausgabemhtml geschrieben wird.
  • SKIP_BYTE_ORDER_MARK_IN_BODY – Gibt an, dass Byte‑Order‑Mark‑Bytes (BOM) nicht in den Body geschrieben werden sollen.
  • RENDER_V_CARD_INFO – Gibt an, dass Text aus VCard‑AlternativeView in das Ausgabemhtml geschrieben wird.
  • DISPLAY_AS_OUTLOOK – Gibt an, dass die From‑Kopfzeile wie in Outlook angezeigt wird.
  • RENDER_TASK_FIELDS – Gibt an, dass die spezifischen Aufgabenfelder in das Ausgabemhtml geschrieben werden sollen.

Der folgende Codeausschnitt zeigt, wie man eine EML‑Datei mit optionalen Einstellungen nach MHTML konvertiert.

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)

Kalendereignisse beim Konvertieren nach MHTML rendern

Die MhtFormatOptions.RenderCalendarEvent Rendert die Kalendereignisse zur Ausgabe MHTML. Der folgende Codeausschnitt zeigt, wie man Kalendereignisse beim Konvertieren nach MHTML rendert.

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)

Exportieren von E‑Mails nach MHT ohne Inline‑Bilder

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)

Exportieren einer E‑Mail nach MHT mit benutzerdefinierter Zeitzone

MailMessage Die Klasse stellt die Eigenschaft TimeZoneOffset zur Verfügung, um beim Export nach MHT eine benutzerdefinierte Zeitzone festzulegen. Der folgende Codeausschnitt zeigt, wie man eine E‑Mail nach MHT mit angepasster Zeitzone exportiert.

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)

Exportieren von E‑Mails nach EML

Der folgende Codeausschnitt zeigt, wie man eine E‑Mail nach EML exportiert.

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)

Speichern einer Nachricht als HTML

Die HtmlSaveOptions Die Klasse erlaubt das Exportieren des Nachrichtentextes nach HTML mit der Möglichkeit, eingebettete Ressourcen zu speichern. Der folgende Codeausschnitt zeigt, wie man eine Nachricht als HTML speichert, wobei der Standardwert von embed_resources true ist.

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)

Speichern einer Nachricht als Outlook‑Vorlage (.oft) Datei

Der folgende Codeausschnitt zeigt, wie man eine Nachricht als Outlook‑Vorlage (.oft) speichert.

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)