[英]Delete attachments from outlook mailitem using vsto
我正在为Outlook 2013开发一个Addin。这是一个示例项目,我要做的是从mailitem中删除所有附件。 这就是我的方法
while (mail.Attachments.Count > 0)
{
try
{
mail.Attachments.Remove(1);
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
编辑 :我也尝试过用反向for循环删除它们的方法( for i = mail.Attachments.Count; i > 1; i--
),但是得到了相同的结果
它工作正常,除了它在控制台上抛出此异常:
抛出异常:PCMailAddIn.dll中的“ System.Runtime.InteropServices.COMException”
引发异常:mscorlib.dll中的“ System.Reflection.TargetInvocationException”
// Remove all attachments
var allIndexesList = mailItem.Attachments.Cast<Outlook.Attachment>().ToList();
var descIndexes = allIndexesList.Select(a => a.Index).OrderByDescending(i => i).ToArray();
foreach(var i in indexes)
{
try
{
mailItem.Attachments.Remove(i);
}
catch (COMException e)
{
MessageBox.Show(e.Message);
}
}
您可以访问每个附件,然后删除该索引处的对象。 试试这个://删除所有附件var attachments = mailItem.Attachments.Cast()。ToList(); 如果(attachments.Any()){attachments.Reverse(); attachments.ForEach(att => mailItem.Attachments.Remove(att.Index)); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.