2017-06-15 1 views
2

J'essaie d'obtenir toutes les pièces jointes d'un message électronique contenant des pièces jointes. Je dois en quelque sorte recurse à travers les pièces jointes pour trouver tous les fichiers attachements.Comment obtenir des pièces jointes à partir d'e-mails imbriqués à l'aide de l'API EWS

Par exemple, j'ai un email qui a 2 pièces jointes. La première pièce jointe est un fichier. Deuxième est un autre email. Ce deuxième email a également 2 pièces jointes. La première pièce jointe est un fichier. Deuxième est le troisième email. Ce troisième email a seulement une pièce jointe qui est un fichier. Donc, je dois terminer avec 3 pièces jointes, mais je n'arrive pas à comprendre comment faire la boucle.

Doug

Répondre

1

Voici une solution récursive:

Private Function GetFileAttachments(aItem As Item) As IEnumerable(Of FileAttachment) 

    Dim result = New List(Of FileAttachment) 

    For Each att In aItem.Attachments 

     If TypeOf att Is ItemAttachment Then 

      Dim itemAttachment = CType(att, ItemAttachment) 
      itemAttachment.Load() 
      result.AddRange(GetFileAttachments(itemAttachment.Item)) 

     Else 

      result.Add(att) 

     End If 

    Next 

    Return result 

End Function