Зареждане и запазване на съобщение
Откриване на файлови формати
Aspose.Email API предоставя възможност за откриване на файловия формат на предоставения файл със съобщение. Методът DetectFileFormat от класа FileFormatUtil може да се използва за постигане на това. Следните класове и методи могат да се използват за откриване на заредения файлов формат.
- Изброяване FileFormatType
- Клас FileFormatInfo
- Клас FileFormatUtil
- Метод detect_file_format(stream)
- Метод detect_file_format(file_path)
Следният кодов фрагмент показва как се откриват файлови формати.
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))
Зареждане на съобщение с опции за зареждане
Следният фрагмент от код показва как да заредите съобщение с опции за зареждане.
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)
Запазване на формата на вградени съобщения по време на зареждане
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))
Записване и конвертиране на съобщения
Aspose.Email улеснява конвертирането на всеки тип съобщение в друг формат. За да демонстрира тази функция, кодът в тази статия зарежда три вида съобщения от диск и ги запазва обратно в други формати. Базовият клас SaveOptions и класовете EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions за допълнителни настройки при запазване MailMessage може да се използва за запазване на съобщения в други формати. Статията показва как да използвате тези класове, за да запазите примерен имейл като:
- EML формат.
- Outlook MSG.
- MHTML формат.
- HTML формат.
Зареждане на EML и записване като EML
Следният кодов фрагмент показва как да се зареди EML съобщение и да се запише на диск в същия формат.
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 и записване като EML, запазвайки оригиналните граници
Следният кодов фрагмент показва как да заредите EML и да го запишете като EML, запазвайки оригиналните граници.
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)
Запазване като EML, запазвайки TNEF прикачени файлове
Следният кодов фрагмент показва как да запишете като EML, запазвайки TNEF прикачени файлове.
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, записване в MSG
Следният примерен код показва как се зарежда EML съобщение и се конвертира в MSG, използвайки съответната опция от 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)
Записване като MSG със запазени дати
Този MsgSaveOptions клас ви позволява да запазите изходното съобщение като Outlook Message файл (MSG), запазвайки датите. Следният примерен код показва как да запазите като MSG със запазени дати.
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 като MHTML
Различни опции на MHTML могат да се използват за постигане на желаните резултати. Следният кодов фрагмент показва как да се зареди EML съобщение вMailMessage и го конвертира в 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)
Конвертиране към MHTML с опционални настройки
Този MhtSaveOptions клас предоставя допълнителни опции за запазване на имейл съобщения във формат MHTML. Перечисление MhtFormatOptions прави възможно записването на допълнителна имейл информация във изходен MHTML. Следните допълнителни полета могат да бъдат записани:
- NONE - Не са зададени специфични настройки.
- WRITE_HEADER - Означава, че информацията от заглавието трябва да бъде записана.
- WRITE_OUTLINE_ATTACHMENTS - Означава, че outline прикачените файлове трябва да бъдат записани.
- WRITE_COMPLETE_EMAIL_ADDRESS - Означава, че пълният имейл адрес трябва да бъде записан във всички заглавия на имейл.
- NO_ENCODE_CHARACTERS - Означава, че не трябва да се използва кодиране при трансфер на символите.
- HIDE_EXTRA_PRINT_HEADER - Означава, че PageHeader ще бъде невидим.
- WRITE_COMPLETE_TO_EMAIL_ADDRESS - Означава, че пълният имейл адрес трябва да бъде записан в заглавието ‘To’.
- WRITE_COMPLETE_FROM_EMAIL_ADDRESS - Означава, че пълният имейл адрес трябва да бъде записан в заглавието ‘From’.
- WRITE_COMPLETE_CC_EMAIL_ADDRESS - Означава, че пълният имейл адрес трябва да бъде записан в заглавието ‘Cc’.
- WRITE_COMPLETE_BCC_EMAIL_ADDRESS - Означава, че пълният имейл адрес трябва да бъде записан в заглавието ‘Bcc’.
- RENDER_CALENDAR_EVENT - Означава, че текстът от календарното събитие трябва да бъде записан в изходния mhtml.
- SKIP_BYTE_ORDER_MARK_IN_BODY - Указва, че байтовете на маркировка за реда на байтовете (BOM) трябва да се изпишат в тялото.
- RENDER_V_CARD_INFO - Означава, че текстът от VCard AlternativeView трябва да бъде записан в изходния mhtml.
- DISPLAY_AS_OUTLOOK - Означава, че заглавието From ще се показва както в Outlook.
- RENDER_TASK_FIELDS - Означава, че специфичните полета на Task трябва да бъдат записани в изходния mhtml.
Следният кодов фрагмент показва как да конвертирате eml файл към MHTML с опционални настройки.
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)
Рендериране на календарни събития при конвертиране към MHTML
Този MhtFormatOptions.RenderCalendarEvent извежда събитията от календара в изходен MHTML. Следният кодов фрагмент показва как да рендерирате календарните събития при конвертиране към 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)
Експортиране на имейл към MHT без вградени изображения
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)
Експортиране на имейл в MHT с персонализиран часови пояс
MailMessage класът предоставя свойството TimeZoneOffset за задаване на персонализиран часови пояс при експортиране в MHT. Следният кодов фрагмент показва как да експортирате имейл в MHT с персонализиран часови пояс.
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)
Експортиране на имейл в EML
Следният кодов фрагмент показва как да експортирате имейл в формат 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)
Записване на съобщение като HTML
Този HtmlSaveOptions класът позволява експортиране на тялото на съобщението в HTML с възможност за запазване на вградени ресурси. Следният кодов фрагмент показва как да запишете съобщение като HTML, където стойността по подразбиране на embed_resources е 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)
Записване на съобщение като Outlook шаблон (.oft) файл
Следният кодов фрагмент показва как да запишете съобщение като Outlook шаблон (.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)