如何使用EWS API从嵌套电子邮件中获取文件附件

时间:2017-06-15 20:23:53

标签: vb.net exchangewebservices email-attachments

我正在尝试从包含电子邮件作为附件的电子邮件中获取所有附件。我需要以某种方式通过附件递归来查找所有fileAttachments。

例如,我有一封包含2个附件的电子邮件。第一个附件是一个文件。第二个是另一封邮件。这第二封电子邮件也有2个附件。第一个附件是一个文件。第二是第三封邮件。第三封电子邮件只有一个附件,即文件。所以我需要结束3个文件附件,但无法弄清楚如何循环这个。

道格

1 个答案:

答案 0 :(得分:2)

这是一个递归解决方案:

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