插件 outlook - 自动保存邮件不适用于标准用户
Addin outlook - Save mail automatically does not work with standard user
我有一个 outlook 插件,我在其中以编程方式更新用户属性。
到目前为止,我都是以管理员权限执行插件和outlook。一切正常。
我将活动附加到转发的邮件中:
void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
try
{
MailItem mail = Inspector.CurrentItem as MailItem;
if (mail != null)
{
((Outlook.ItemEvents_10_Event)mail).Forward += new ItemEvents_10_ForwardEventHandler(Forward_Event);
}
finally
{
Marshal.ReleaseComObject(Inspector);
}
}
然后我更新邮件的用户属性并保存。
void Forward_Event(object Forward, ref bool Cancel)
{
MailItem mail = Forward as MailItem;
if (mail != null && OutlookHelper.GetUserProperty(mail) != null)
{
OutlookHelper.SetUserProperty(mail, null);
EventLog.WriteEntry("Application", "Before save forward : " + mail.Saved); // mail.Saved = false
mail.Save();
EventLog.WriteEntry("Application", "After save forward : " + mail.Saved); // mail.Saved = true
}
}
我可以在日志中看到,我的邮件的 属性 Saved 在调用保存()方法。
但是,由于我使用标准用户执行插件(链接到客户需求),当我关闭电子邮件时,会出现一个弹出窗口,要求我手动保存转发邮件的用户属性。使用管理员权限不会出现此问题。
感谢大家的帮助
嗯,经过一番研究,邮件是"read only"然后调用Save()方法并没有真正保存。当我删除对保存的调用时,弹出窗口消失了......我真的不明白这种行为,但它有效!
希望这对其他人有所帮助。
我有一个 outlook 插件,我在其中以编程方式更新用户属性。
到目前为止,我都是以管理员权限执行插件和outlook。一切正常。
我将活动附加到转发的邮件中:
void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
try
{
MailItem mail = Inspector.CurrentItem as MailItem;
if (mail != null)
{
((Outlook.ItemEvents_10_Event)mail).Forward += new ItemEvents_10_ForwardEventHandler(Forward_Event);
}
finally
{
Marshal.ReleaseComObject(Inspector);
}
}
然后我更新邮件的用户属性并保存。
void Forward_Event(object Forward, ref bool Cancel)
{
MailItem mail = Forward as MailItem;
if (mail != null && OutlookHelper.GetUserProperty(mail) != null)
{
OutlookHelper.SetUserProperty(mail, null);
EventLog.WriteEntry("Application", "Before save forward : " + mail.Saved); // mail.Saved = false
mail.Save();
EventLog.WriteEntry("Application", "After save forward : " + mail.Saved); // mail.Saved = true
}
}
我可以在日志中看到,我的邮件的 属性 Saved 在调用保存()方法。
但是,由于我使用标准用户执行插件(链接到客户需求),当我关闭电子邮件时,会出现一个弹出窗口,要求我手动保存转发邮件的用户属性。使用管理员权限不会出现此问题。
感谢大家的帮助
嗯,经过一番研究,邮件是"read only"然后调用Save()方法并没有真正保存。当我删除对保存的调用时,弹出窗口消失了......我真的不明白这种行为,但它有效!
希望这对其他人有所帮助。