点击此链接 - change outlook MailItem icon
我设法更改了我的收件箱图标。
这是我一步一步做的。 1)为从Internet到达的新邮件创建自定义邮件类 该类是IPM.Note.Internet
Outlook.NameSpace outlookNameSpace;
Outlook.MAPIFolder inbox;
Outlook.Items items;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
outlookNameSpace = this.Application.GetNamespace("MAPI");
inbox = outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
items = inbox.Items;
items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(items_ItemAdd);
}
void items_ItemAdd(object Item)
{
Outlook.MailItem mailitem = (Outlook.MailItem)Item;
String EmailHeader = mailitem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E");
if (Item != null && EmailHeader.Contains("Look for a string in the headers here that we set for incomming mail") == true)
{
if (mailitem.MessageClass == "IPM.Note")
{
mailitem.MessageClass = "IPM.Note.Internet";
mailitem.Save();
}
}
}
2)创建了与MessageClass匹配的替换Outlook窗体区域。在这种情况下,我使用了IPM.Note.Internet
4)在更新邮件类之后,调试项目和从互联网上传来的下一条消息上印有我的自定义图标。
我现在的问题是我无法预览或打开我更改邮件类的邮件。与此帖没有答案相似 - Change Inbox-icons in Outlook at runtime
我认为问题是我的替换Outlook窗体区域是空白的,因此无法预览该消息。
如果这是真的,那么这是我的问题。将标准IPM.Note消息类模板导出到Visual Studio的最佳方法是什么。我需要覆盖我的IPM.Note.Internet Outlook窗体区域设计。
导入“.OFS”文件。我试图弄清楚如何从Outlook 2010客户端(开发人员工具)导出文件,但我找不到将模板保存为该特定格式的方法。我可以保存到OFT(办公室模板)但不能保存.OFS
提前感谢您的帮助!
答案 0 :(得分:0)
而不是添加表单区域并更改消息类我只是添加了PR_ICON_INDEX属性并设置了它的值。正如Dmitry Link
中选项#2中所述这里有很多图标可供选择。我无法找到包含整数值的列表,因此我只是在Outlook Spy中为PR_ICON_INDEX属性输入了随机数,更改了值,直到找到了我想要的图标。有许多图标可供选择。许多来自600-700和1000及以上的范围。
这是我用来在消息上设置PR_ICON_INDEX属性的行 -
mailitem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x10800003", 4); // change the 4 to something like 600,601...etc to experiment