Загрузка, сохранение и преобразование различных форматов электронных сообщений в C++
Загрузка сообщения с параметрами загрузки
Следующий фрагмент кода показывает, как загрузить сообщение с параметрами загрузки.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
// Load Eml, html, mhtml, msg and dat file | |
System::SharedPtr<MailMessage> mailMessage = MailMessage::Load(dataDir + L"Message.eml", System::MakeObject<EmlLoadOptions>()); | |
MailMessage::Load(dataDir + L"description.html", System::MakeObject<HtmlLoadOptions>()); | |
MailMessage::Load(dataDir + L"Message.mhtml", System::MakeObject<MhtmlLoadOptions>()); | |
MailMessage::Load(dataDir + L"Message.msg", System::MakeObject<MsgLoadOptions>()); | |
// loading with custom options | |
System::SharedPtr<EmlLoadOptions> emlLoadOptions = System::MakeObject<EmlLoadOptions>(); | |
emlLoadOptions->set_PrefferedTextEncoding(System::Text::Encoding::get_UTF8()); | |
emlLoadOptions->set_PreserveTnefAttachments(true); | |
MailMessage::Load(dataDir + L"description.html", emlLoadOptions); | |
System::SharedPtr<HtmlLoadOptions> htmlLoadOptions = System::MakeObject<HtmlLoadOptions>(); | |
htmlLoadOptions->set_PrefferedTextEncoding(System::Text::Encoding::get_UTF8()); | |
htmlLoadOptions->set_ShouldAddPlainTextView(true); | |
htmlLoadOptions->set_PathToResources(dataDir); | |
MailMessage::Load(dataDir + L"description.html", emlLoadOptions); |
Сохранение и конвертация сообщений
Aspose.Email упрощает преобразование любого типа сообщения в другой формат. Чтобы продемонстрировать эту функцию, код в этой статье загружает три типа сообщений с диска и сохраняет их в других форматах. Для сохранения сообщений в другие форматы можно использовать базовый класс SaveOptions и классы EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions для дополнительных настроек при сохранении MailMessage. Статья показывает, как использовать эти классы для сохранения примера электронной почты в следующем виде:
- Формат EML.
- Outlook MSG.
- Формат MHTML.
- Формат HTML.
Загрузка EML и сохранение в формате EML
Следующий фрагмент кода показывает, как загрузить сообщение EML и сохранить его на диск в том же формате.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
// Initialize and Load an existing EML file by specifying the MessageFormat | |
System::SharedPtr<MailMessage> mailMessage = MailMessage::Load(dataDir + L"Attachments.eml"); | |
mailMessage->Save(dataDir + L"LoadAndSaveFileAsEML_out.eml", SaveOptions::get_DefaultEml()); |
Загрузка EML и сохранение в формате EML с сохранением оригинальных границ
Следующий фрагмент кода показывает, как загрузить EML и сохранить в формате EML с сохранением оригинальных границ.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
System::SharedPtr<MailMessage> mailMessage = MailMessage::Load(dataDir + L"Attachments.eml"); | |
// Save as eml with preserved original boundares | |
System::SharedPtr<EmlSaveOptions> emlSaveOptions = System::MakeObject<EmlSaveOptions>(MailMessageSaveType::get_EmlFormat()); | |
emlSaveOptions->set_PreserveOriginalBoundaries(true); | |
mailMessage->Save(dataDir + L"PreserveOriginalBoundaries_out.eml", emlSaveOptions); |
Сохранение в формате EML с сохранением вложений TNEF
Следующий фрагмент кода показывает, как сохранить в формате EML с сохранением вложений TNEF.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
System::SharedPtr<MailMessage> mailMessage = MailMessage::Load(dataDir + L"PreserveOriginalBoundaries.eml"); | |
// Save as eml with preserved attachment | |
System::SharedPtr<EmlSaveOptions> emlSaveOptions = System::MakeObject<EmlSaveOptions>(MailMessageSaveType::get_EmlFormat()); | |
emlSaveOptions->set_FileCompatibilityMode(Aspose::Email::Mail::FileCompatibilityMode::PreserveTnefAttachments); | |
mailMessage->Save(dataDir + L"PreserveTNEFAttachment_out.eml", emlSaveOptions); |
Загрузка EML, сохранение в MSG
Следующий фрагмент кода показывает, как загрузить сообщение EML и преобразовать его в MSG с использованием соответствующей опции из SaveOptions.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// Data directory for reading and writing files | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
// Initialize and Load an existing EML file by specifying the MessageFormat | |
System::SharedPtr<MailMessage> eml = MailMessage::Load(dataDir + L"Message.eml"); | |
// Save the Email message to disk in ASCII format and Unicode format | |
eml->Save(dataDir + L"AnEmail_out.msg", SaveOptions::get_DefaultMsgUnicode()); |
Сохранение MailMessage в формате MHTML
Можно использовать различные опции MHTML для достижения желаемых результатов. Следующий фрагмент кода показывает, как загрузить сообщение EML в MailMessage и преобразовать его в MHTML.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// Initialize and Load an existing EML file by specifying the MessageFormat | |
System::SharedPtr<MailMessage> eml = MailMessage::Load(dataDir + L"Message.eml"); | |
eml->Save(dataDir + L"AnEmail_out.mthml", SaveOptions::get_DefaultMhtml()); |
Экспорт электронной почты в MHT с пользовательским смещением времени
Класс MailMessage предоставляет свойство TimeZoneOffset для установки пользовательского часового пояса при экспорте в MHT. Следующий фрагмент кода показывает, как экспортировать электронную почту в MHT с пользовательским часовым поясом.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MailMessage> eml = MailMessage::Load(dataDir + L"Message.eml"); | |
// Set the local time for message date. | |
eml->set_TimeZoneOffset(System::TimeZone::get_CurrentTimeZone()->GetUtcOffset(System::DateTime::get_Now())); | |
// or set custom time zone offset for message date (-0800) | |
// eml.TimeZoneOffset = new TimeSpan(-8,0,0); | |
// The dates will be rendered by local system time zone. | |
System::SharedPtr<MhtSaveOptions> so = System::MakeObject<MhtSaveOptions>(); | |
so->set_MhtFormatOptions(Aspose::Email::Mail::MhtFormatOptions::WriteHeader); | |
eml->Save(dataDir + L"ExportEmailToMHTWithCustomTimezone_out.mhtml", so); |
Экспорт электронной почты в EML
Следующий фрагмент кода показывает, как экспортировать электронную почту в EML.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::String dataDir = RunExamples::GetDataDir_Email(); | |
System::SharedPtr<MailMessage> msg = MailMessage::Load(dataDir + L"Message.eml"); | |
msg->Save(dataDir + L"ExporttoEml_out.eml", SaveOptions::get_DefaultEml()); |