【发布时间】:2016-03-30 22:54:10
【问题描述】:
在我更改或添加一些属性后,我在 Outlook 插件中保存 mailitem 时遇到问题。代码抛出错误:“由于消息已更改,无法执行操作”。插件的思路是:右键点击邮件,点击新选项“发送到系统”,然后邮件发送,并获得图标作为发送成功的标记。 这是我的代码:
mail.UserProperties.Add("exportedToCompany", OlUserPropertyType.olText, true, OlFormatText.olFormatTextText);
mail.UserProperties["exportedToCompany"].Value = "exported";
try
{
try
{
mail.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8582000B", false);
mail.MessageClass = "IPM.Note.ExportedMail";
mail.Save(); //throws error
}
catch (System.Exception ex) { logger.Error(ex.Message); logger.Error(ex.StackTrace); }
DeleteUselessMsg(mail);
}
catch (System.Exception ex)
{
Debug.WriteLine(ex.StackTrace);
logger.Error(ex.Message);
logger.Error(ex.StackTrace);
}
SendMail(GetNextMail());
在调试期间,我无法真正模拟发生这种情况的情况,我只是从客户端获取日志文件,该错误经常发生。 我想知道为什么如此随机,以至于我根本没有得到这个错误,而客户得到了很多,但不是每次都得到它。我的一个想法是 IMAP 在我保存邮件之前会以某种方式更新邮件——这可能吗? 代码执行后出现错误后的其他事情:Outlook 在您尝试关闭程序后要求保存未保存的项目,并且假设程序在草稿文件夹中创建邮件副本(但我不确定它是否与我的问题有关)。我可以以某种方式强制保存 MailItem 吗? 使用 Outlook 2013
【问题讨论】:
标签: c# vsto outlook-addin