Mesajı Yükleme ve Kaydetme
Dosya Formatlarını Tespit Etme
Aspose.Email API, sağlanan mesaj dosyasının dosya formatını tespit etme yeteneği sağlar. FileFormatUtil sınıfının DetectFileFormat yöntemi bu amaçla kullanılabilir. Yüklenen dosya formatını tespit etmek için aşağıdaki sınıflar ve yöntemler kullanılabilir.
- Enum FileFormatType
- Sınıf FileFormatInfo
- Sınıf FileFormatUtil
- detect_file_format(stream) yöntemi
- detect_file_format(file_path) yöntemi
Aşağıdaki kod örneği, dosya formatlarını nasıl tespit edeceğinizi gösterir.
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))
Yükleme Seçenekleriyle Mesaj Yükleme
Aşağıdaki kod parçacığı, bir mesajı yükleme seçenekleriyle nasıl yükleyeceğinizi gösterir.
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)
Yükleme Sırasında Gömülü Mesaj Formatını Korumak
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))
Mesajları Kaydetme ve Dönüştürme
Aspose.Email, herhangi bir mesaj tipini başka bir formata dönüştürmeyi kolaylaştırır. Bu özelliği göstermek için, bu makaledeki kod diskten üç tip mesaj yükleyip bunları diğer formatlarda geri kaydeder. Temel sınıf SaveOptions ve sınıflar EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions kaydederken ek ayarlar için MailMessage diğer formatlarda mesaj kaydetmek için kullanılabilir. Makale, bu sınıfları kullanarak örnek bir e-postayı şu şekilde kaydetmeyi gösterir:
- EML formatı.
- Outlook MSG.
- MHTML formatı.
- HTML formatı.
EML’yi Yükleme ve EML Olarak Kaydetme
Aşağıdaki kod örneği, bir EML mesajını yükleyip aynı formatta diske nasıl kaydedeceğinizi gösterir.
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’yi Yükleme ve Özgün Sınırları Koruyarak EML Olarak Kaydetme
Aşağıdaki kod örneği, EML’yi yükleyip özgün sınırları koruyarak EML olarak kaydetmeyi gösterir.
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)
TNEF Eklerini Koruyarak EML Olarak Kaydetme
Aşağıdaki kod örneği, TNEF eklerini koruyarak EML olarak kaydetmeyi gösterir.
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’yi Yükleme, MSG’ye Kaydetme
Aşağıdaki kod parçacığı, bir EML mesajını nasıl yükleyeceğinizi ve uygun seçenek kullanarak MSG’ye dönüştüreceğinizi gösterir 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)
Tarihler Korunarak MSG Olarak Kaydetme
Bu MsgSaveOptions sınıf, kaynak mesajı tarihleri koruyarak bir Outlook Mesaj dosyası (MSG) olarak kaydetmenizi sağlar. Aşağıdaki kod parçacığı, Tarihleri Koruyarak MSG Olarak Kaydetmeyi gösterir.
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 Olarak Kaydetme
İstenen sonuçları elde etmek için farklı MHTML seçenekleri kullanılabilir. Aşağıdaki kod örneği, bir EML mesajını nasıl yükleyeceğinizi gösterirMailMessage ve bunu MHTML’ye dönüştürür.
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)
İsteğe Bağlı Ayarlarla MHTML’ye Dönüştürme
Bu MhtSaveOptions sınıf, e-posta mesajlarını MHTML formatında kaydetmek için ek seçenekler sağlar. Enumerator MhtFormatOptions çıktı MHTML’ye ek e-posta bilgileri yazılmasını mümkün kılar. Aşağıdaki ek alanlar yazılabilir:
- NONE - Belirli bir ayar belirtilmemiştir.
- WRITE_HEADER - Başlık bilgilerinin yazılacağını gösterir.
- WRITE_OUTLINE_ATTACHMENTS - Outline eklerinin yazılacağını gösterir.
- WRITE_COMPLETE_EMAIL_ADDRESS - Tam e-posta adresinin tüm e-posta başlıklarına yazılacağını gösterir.
- NO_ENCODE_CHARACTERS - Karakterlerin transfer kodlamasının kullanılmayacağını gösterir.
- HIDE_EXTRA_PRINT_HEADER - PageHeader’ın görünmez olacağını gösterir.
- WRITE_COMPLETE_TO_EMAIL_ADDRESS - Tam e-posta adresinin ‘To’ başlığına yazılacağını gösterir.
- WRITE_COMPLETE_FROM_EMAIL_ADDRESS - Tam e-posta adresinin ‘From’ başlığına yazılacağını gösterir.
- WRITE_COMPLETE_CC_EMAIL_ADDRESS - Tam e-posta adresinin ‘Cc’ başlığına yazılacağını gösterir.
- WRITE_COMPLETE_BCC_EMAIL_ADDRESS - Tam e-posta adresinin ‘Bcc’ başlığına yazılacağını gösterir.
- RENDER_CALENDAR_EVENT - Takvim etkinliğinden metnin çıktıda mhtml olarak yazılacağını gösterir.
- SKIP_BYTE_ORDER_MARK_IN_BODY - Byte Order Mark (BOM) baytlarının gövdeye yazılmaması gerektiğini gösterir.
- RENDER_V_CARD_INFO - VCard AlternativeView’den metnin çıktıda mhtml olarak yazılacağını gösterir.
- DISPLAY_AS_OUTLOOK - From başlığının Outlook’ta olduğu gibi görüntüleneceğini gösterir.
- RENDER_TASK_FIELDS - Belirli Görev alanlarının çıktıda mhtml olarak yazılacağını gösterir.
Aşağıdaki kod örneği, isteğe bağlı ayarlarla eml dosyasını MHTML’ye nasıl dönüştüreceğinizi gösterir.
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’ye Dönüştürürken Takvim Etkinliklerini Render Etme
Bu MhtFormatOptions.RenderCalendarEvent Takvim etkinliklerini çıkış MHTML’ye render eder. Aşağıdaki kod örneği, MHTML’ye dönüştürürken takvim etkinliklerinin nasıl render edileceğini gösterir.
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)
Satır İçi Görseller Olmadan E-postayı MHT’ye Dışa Aktarma
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)
Özelleştirilmiş Saat Dilimiyle E-postayı MHT’ye Dışa Aktarma
MailMessage Sınıf, MHT’ye dışa aktarırken özelleştirilmiş saat dilimi ayarlamak için TimeZoneOffset özelliğini sağlar. Aşağıdaki kod örneği, özelleştirilmiş saat dilimiyle bir e-postayı MHT’ye nasıl dışa aktaracağınızı gösterir.
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-postayı EML’ye Aktarma
Aşağıdaki kod örneği, e-postayı eml olarak dışa aktarmayı gösterir.
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)
Mesajı HTML Olarak Kaydetme
Bu HtmlSaveOptions Sınıf, mesaj gövdesini HTML’ye dışa aktarmanıza ve gömülü kaynakları kaydetme seçeneği sunar. Aşağıdaki kod örneği, embed_resources varsayılan değeri true iken Mesajı HTML olarak nasıl kaydedeceğinizi gösterir.
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)
Mesajı Outlook Şablonu (.oft) dosyası olarak Kaydetme
Aşağıdaki kod örneği, mesajı Outlook şablonu (.oft) dosyası olarak nasıl kaydedeceğinizi gösterir.
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)