【问题标题】:Can't delete attachments from Outlook.MailItem无法从 Outlook.MailItem 中删除附件
【发布时间】:2011-08-01 18:39:00
【问题描述】:

如果附加了大附件,我的 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 删除所有附件(在用户发送邮件之前)并取消发送?

谢谢一百万!

魔力

【问题讨论】:

  • "我如何让 Outlook 删除所有附件(在用户发送邮件之前)并取消发送?" 只是想确认一下,这里确实有两个问题.首先是你问为什么mail.Attachments.Remove(i) 没有按预期工作。第二个是质疑为什么Cancel = True 没有按预期工作。对吗?
  • 好吧,如果我设置 cancel = true,那么邮件不会发送,用户可以对邮件进行更改......所以取消工作完美。但是 mail.Attachments.Remove(i) 可能会在后台删除附件,但它们在视觉上仍然在邮件中......我希望它们消失。 :)
  • 尝试发布这里的帖子:add-in-express.com/forum/read.php?FID=5&TID=5621
  • @MojoDK 我只是在澄清,因为您的问题不清楚您是否遇到两个或一个问题。我不希望回答这个问题的人浪费时间调试/推测Cancel = True 部分不起作用的原因。

标签: vb.net outlook vsto add-in


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    我知道的老问题,但我在 Outlook 2010 中遇到了同样的问题并解决了它。在我添加之前,Delete 和 Remove 对我都不起作用:

    mail.Save
    

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2015-04-20
      • 2017-01-12
      相关资源
      最近更新 更多