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.
- Aufzählung FileFormatType
- Klasse FileFormatInfo
- Klasse FileFormatUtil
- Methode detect_file_format(stream)
- Methode detect_file_format(file_path)
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)