如何为新创建的邮件项目禁用“地址栏”?

时间:2019-06-05 05:44:01

标签: c# vsto outlook-addin

我正在使用Outlook插件,该插件执行创建新邮件项目并发送给用户的任务。
现在我想要的是,我不想允许用户在“收件人”字段中添加电子邮件,总之,我需要“收件人”字段以保持对用户的禁用,但是我没有任何办法来禁用它。

MailApp.Application oApp = new MailApp.Application();
oMailItem =(MailApp.MailItem)oApp.CreateItem(MailApp.OlItemType.olMailItem);
oMailItem.To = "abc@gg.com"; // need to disable this for end user.
oMailItem.Subject = "Xyz";
oMailItem.HTMLBody = "Xyz";
oMailItem.Display(false);

oMailItem.Actions[1].Enabled = false; //它允许从1到4的索引,从而禁用当前邮件的“回复”,“全部答复”,“回复和转发”选项,而不是“收件人”字段。

请在我的插件中帮助实现此目标。如何为最终用户禁用“收件人”字段?

3 个答案:

答案 0 :(得分:0)

禁用“到”字段地址控件的唯一方法是自定义表单设计,删除控件并将该表单定义发布到该用户的“个人表单”库。有关更多信息,请参见https://docs.microsoft.com/en-ca/office/vba/outlook/concepts/forms/customizing-form-pages-and-form-regions

答案 1 :(得分:0)

除了Eric的建议之外,您还可以尝试挂起MailIem.PropertyChange事件,并在(如果有!)“ To”属性被修改后,将其重置。

答案 2 :(得分:0)

无需自定义内置的Outlook表单,然后重新发布它。这是一项非常古老的技术,外接程序开发人员已不再使用。

您可以使用Outlook表单区域并将表单放置到Replace-all布局中,该布局将整个Outlook表单替换为表单区域。在MSDN上的Create Outlook form regions文章中了解有关此内容的更多信息。

此外,您可以考虑使用Add-in Express。它们提供CompleteReplacement布局,该布局也可以完全替换任何Inspector窗口的所有页面。

enter image description here

请注意,在两种情况下,您都可以使用任何.net控件在Outlook中创建自定义UI