如何在 Outlook 中完成重新绑定 and/or 实现事件处理程序?
How to accomplish a rebind and/or implement event handler in Outlook?
我创建了一个 Outlook 2013 加载项,我想在其中更新 FROM 字段中显示的内容,即发件人。在我的事件处理程序中,ThisAddIn_Startup(),AI 添加另一个事件处理程序,Application.NewMailEx += Application_NewMail_Ex。在这个事件处理程序 Application_NewMail_Ex() 中,我设置了以下属性:
void Application_NewMailEx(string entryId)
{
object item = this.Session.GetItemFromID(entryId);
Outlook.MailItem mailItem = (Outlook.MailItem)item;
String contactInfo = getContact(mailItem); // gets the property I want...
mailItem.PropertyAccessor.SetProperty(PR_SENDER_NAME, contactInfo);
mailItem.PropertyAccessor.SetProperty(PR_SENT_REPRESENTING_NAME, contactInfo);
}
这几乎完美,但这是我观察到的:
- 在我的主 Outlook window 中,在电子邮件列表(列表视图?)中,当收到新电子邮件时,不会 显示预期的 contactInfo 第一次查看,例如假设我的光标在另一个订单项上。
- 当我从电子邮件列表视图中点击那封新电子邮件时,它现在被选中并且预览窗格(朝向下半部分)执行 显示正确的 contactInfo.
- 当我 双击 同一封电子邮件时,当电子邮件加载为新 window 时,发件人地址 DOES 显示正确的 contactInfo.
- 当我移动到主 Outlook window 电子邮件(列表视图?)中的另一封电子邮件时,之前 SELECTED 电子邮件 DOES 现在在 FROM 字段中显示正确的 contactInfo。
如何解决#4?
我还应该关注哪些其他事件?
我需要重新绑定吗?
此外,如何解决我的收件箱中已有电子邮件的问题?
您需要致电 MailItem.Save 以确保更改已提交。
我创建了一个 Outlook 2013 加载项,我想在其中更新 FROM 字段中显示的内容,即发件人。在我的事件处理程序中,ThisAddIn_Startup(),AI 添加另一个事件处理程序,Application.NewMailEx += Application_NewMail_Ex。在这个事件处理程序 Application_NewMail_Ex() 中,我设置了以下属性:
void Application_NewMailEx(string entryId)
{
object item = this.Session.GetItemFromID(entryId);
Outlook.MailItem mailItem = (Outlook.MailItem)item;
String contactInfo = getContact(mailItem); // gets the property I want...
mailItem.PropertyAccessor.SetProperty(PR_SENDER_NAME, contactInfo);
mailItem.PropertyAccessor.SetProperty(PR_SENT_REPRESENTING_NAME, contactInfo);
}
这几乎完美,但这是我观察到的:
- 在我的主 Outlook window 中,在电子邮件列表(列表视图?)中,当收到新电子邮件时,不会 显示预期的 contactInfo 第一次查看,例如假设我的光标在另一个订单项上。
- 当我从电子邮件列表视图中点击那封新电子邮件时,它现在被选中并且预览窗格(朝向下半部分)执行 显示正确的 contactInfo.
- 当我 双击 同一封电子邮件时,当电子邮件加载为新 window 时,发件人地址 DOES 显示正确的 contactInfo.
- 当我移动到主 Outlook window 电子邮件(列表视图?)中的另一封电子邮件时,之前 SELECTED 电子邮件 DOES 现在在 FROM 字段中显示正确的 contactInfo。
如何解决#4?
我还应该关注哪些其他事件?
我需要重新绑定吗?
此外,如何解决我的收件箱中已有电子邮件的问题?
您需要致电 MailItem.Save 以确保更改已提交。