Carregando, Salvando e Convertendo diferentes formatos de Mensagem de Email em C++

Carregando uma Mensagem com Opções de Carregamento

O código a seguir mostra como carregar uma mensagem com opções de carregamento.

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

Salvando e Convertendo Mensagens

Aspose.Email facilita a conversão de qualquer tipo de mensagem para outro formato. Para demonstrar esse recurso, o código neste artigo carrega três tipos de mensagens do disco e as salva de volta em outros formatos. A classe base SaveOptions e as classes EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions para configurações adicionais ao salvar MailMessage podem ser usadas para salvar mensagens em outros formatos. O artigo mostra como usar essas classes para salvar um email de exemplo como:

  • Formato EML.
  • Outlook MSG.
  • Formato MHTML.
  • Formato HTML.

Carregando EML e Salvando como EML

O código a seguir mostra como carregar uma mensagem EML e salvá-la no disco no mesmo formato.

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

Carregando EML e Salvando como EML Preservando as Fronteiras Originais

O código a seguir mostra como carregar EML e salvar como EML preservando as fronteiras originais.

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

Salvando como EML Preservando Anexos TNEF

O código a seguir mostra como salvar como EML preservando anexos 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);

Carregando EML, Salvando como MSG

O código a seguir mostra como carregar uma mensagem EML e convertê-la para MSG usando a opção apropriada do 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());

Salvando MailMessage como MHTML

Diferentes opções de MHTML podem ser usadas para obter os resultados desejados. O código a seguir mostra como carregar uma mensagem EML em MailMessage e convertê-la para 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());

Exportando Email para MHT com TimeZone Personalizado

A classe MailMessage fornece a propriedade TimeZoneOffset para definir um Timezone personalizado ao exportar para MHT. O código a seguir mostra como exportar um email para MHT com TimeZone personalizado.

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

Exportando Email para EML

O código a seguir mostra como exportar email para 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());