Gérer les pièces jointes dans les fichiers Outlook MSG

Aspose.Email for C++ fournit une API riche pour accéder, enregistrer, supprimer et intégrer les pièces jointes lors du travail avec les fichiers Microsoft Outlook MSG. Les pièces jointes sont gérées via le MapiMessage classe, en utilisant son Attachments propriété, qui expose un MapiAttachmentCollection.

Enregistrer les pièces jointes d’un fichier MSG

Pour extraire et enregistrer les pièces jointes d’un fichier MSG :

  1. Chargez le message en utilisant MapiMessage::Load.
  2. Itérer à travers le MapiAttachmentCollection.
  3. Enregistrez chaque pièce jointe en utilisant le MapiAttachment::Save() méthode.
// Create an instance of MapiMessage from file
System::SharedPtr<MapiMessage> message = MapiMessage::Load(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());
    }
}

Supprimer les pièces jointes

Aspose.Email for C++ propose deux façons de supprimer les pièces jointes des fichiers MSG :

Il prend le chemin du fichier de message en paramètre. Il est implémenté comme une méthode statique publique, vous n’avez donc pas besoin d’instancier l’objet. Cette méthode d’aide statique supprime toutes les pièces jointes d’un fichier de message.

L’extrait de code suivant montre comment utiliser cette méthode.

Cela fonctionne plus rapidement car il supprime les pièces jointes sans analyser complètement le fichier MSG.

Ajouter des pièces jointes MSG

Les fichiers MSG peuvent contenir d’autres fichiers MSG soit comme pièces jointes standards, soit comme pièces jointes incorporées. Utilisez la surcharge Add méthodes dans MapiAttachmentCollection pour intégrer des messages Outlook.

L’exemple de code suivant montre comment créer un nouveau message MAPI avec l’expéditeur, le destinataire, l’objet et le corps spécifiés, puis attacher un fichier MSG existant comme message incorporé, et enfin enregistrer le message résultant avec la pièce jointe intégrée dans un nouveau fichier MSG.

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::Load(L"Message.msg");
message->get_Attachments()->Add(L"Weekly report.msg", attachMsg);
message->Save(dataDir + L"WithEmbeddedMsg_out.msg");