Trabalhando com Anexos de Mensagens do Outlook usando a API de Análise de E-mail em C++
Gerenciando Anexos com Aspose Outlook
Criar e Salvar Arquivos de Mensagem do Outlook (MSG) explicou como criar e salvar mensagens, e como criar arquivos MSG com anexos. Este artigo explica como gerenciar anexos do Microsoft Outlook com Aspose.Email. Anexos de um arquivo de mensagem são acessados e salvos no disco usando a propriedade Attachments da classe MapiMessage. A propriedade Attachments é uma coleção do tipo MapiAttachmentCollection.
Salvar Anexos de Arquivo de Mensagem do Outlook (MSG)
Para salvar anexos de um arquivo MSG:
- Percorra a coleção MapiAttachmentCollection e obtenha os anexos individuais.
- Para salvar os anexos, chame o método Save() da classe MapiAttachment.
O seguinte trecho de código mostra como salvar anexos no disco local.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// Create an instance of MapiMessage from file | |
System::SharedPtr<MapiMessage> message = MapiMessage::FromFile(dataDir + fileName); | |
// Iterate through the attachments collection | |
{ | |
auto attachment_enumerator = (message->get_Attachments())->GetEnumerator(); | |
decltype(attachment_enumerator->get_Current()) attachment; | |
while (attachment_enumerator->MoveNext() && (attachment = attachment_enumerator->get_Current(), true)) | |
{ | |
// Save the individual attachment | |
attachment->Save(dataDir + attachment->get_FileName()); | |
} | |
} |
Removendo Anexos
A biblioteca Aspose Outlook fornece a funcionalidade para remover anexos de arquivos de Mensagem do Microsoft Outlook (.msg):
- Chame o método RemoveAttachments(). Ele recebe o caminho do arquivo de mensagem como um parâmetro. É implementado como um método estático público, portanto, você não precisa instanciar o objeto.
O seguinte trecho de código mostra como remover Anexos usando a Biblioteca de Análise de E-mail em C++.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
MapiMessage::RemoveAttachments(dataDir + L"AttachmentsToRemove_out.msg"); |
Você também pode chamar o método estático da classe MapiMessage DestroyAttachment(). Ele funciona mais rápido que RemoveAttachment(), porque o método RemoveAttachment() analisa o arquivo de mensagem.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
MapiMessage::DestroyAttachments(dataDir + L"AttachmentsToDestroy_out.msg"); |
Adicionando Anexos MSG
Uma mensagem do Outlook pode conter outras mensagens do Microsoft Outlook em anexos, seja como mensagens regulares ou incorporadas. A MapiAttachmentCollection fornece membros sobrecarregados do método Add para criar mensagens do Outlook com ambos os tipos de anexos.
Incorporando Mensagem como Anexo
O seguinte trecho de código mostra como os arquivos MSG do Outlook incorporados em um arquivo MSG contêm um PR_ATTACH_METHOD cujo valor é igual a 5.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MapiMessage> message = System::MakeObject<MapiMessage>(L"from@test.com", L"to@test.com", L"Subj", L"This is a message body"); | |
System::SharedPtr<MapiMessage> attachMsg = MapiMessage::FromFile(dataDir + L"Message.msg"); | |
message->get_Attachments()->Add(L"Weekly report.msg", attachMsg); | |
message->Save(dataDir + L"WithEmbeddedMsg_out.msg"); |