Vb.net Can';t从Outlook.MailItem中删除附件

Vb.net Can';t从Outlook.MailItem中删除附件,vb.net,outlook,vsto,add-in,Vb.net,Outlook,Vsto,Add In,我的Outlook加载项检查(当用户单击“发送”时)是否附加了大型附件。如果是这样,它应该删除它,取消发送,并将焦点返回给用户 这是我的Outlook加载项代码示例 Private Sub ThisApplication_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend Dim mail As Outlook.MailItem = CType(Me.Applicatio

我的Outlook加载项检查(当用户单击“发送”时)是否附加了大型附件。如果是这样,它应该删除它,取消发送,并将焦点返回给用户

这是我的Outlook加载项代码示例

Private Sub ThisApplication_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend
    Dim mail As Outlook.MailItem = CType(Me.Application.ActiveInspector.CurrentItem, Outlook.MailItem)
    For i As Integer = mail.Attachments.Count To 1 Step -1
        mail.Attachments.Remove(i)
    Next
    Cancel = True
End Sub
活动邮件项目仍显示所有附件:(

如何让Outlook删除所有附件(在用户发送邮件之前)并取消发送

万分感谢

魔咒试试这个:

Private Sub Application_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend
    Dim mail As Outlook.MailItem = CType(Me.Application.ActiveInspector.CurrentItem, Outlook.MailItem)
    For Each a As Outlook.Attachment In mail.Attachments
        a.Delete()
    Next
    Cancel = True
End Sub

我知道这是一个老问题,但我在Outlook 2010中遇到了同样的问题并解决了。在添加以下内容之前,删除和删除对我都不起作用:

mail.Save

“我如何让Outlook删除所有附件(在用户发送邮件之前)并取消发送?”我想确认一下,这里确实有两个问题。第一个问题是,您问为什么
mail.attachments.remove(I)
没有按预期工作。第二个问题是为什么
Cancel=True
没有按预期工作。对吗?如果我设置Cancel=True,那么邮件就不会发送,用户可以对邮件进行更改…所以Cancel工作得很好。但是mail.Attachments.Remove(I)也许你会移除背景中的附件,但它们在视觉上仍然在邮件中……我希望它们消失。:)尝试发布文章:@MojoDK我只是澄清一下,因为你的问题不清楚你是否遇到了两个或一个问题。我不想让回答这个问题的人浪费时间调试/猜测
Cancel=True
部分为什么不工作。