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