我编写了一个 Outlook vsto 插件,它将通过功能区上的按钮添加的文件转换为链接。首先,我单击功能区上的“创建链接”按钮,然后选择要上传的文件。然后我上传文件并将它们添加到邮件正文中。我创建新邮件时没有问题。
但是,当我在单击电子邮件中的“回复”或“全部回复”后尝试创建文件链接并将其附加到邮件正文时,我想要附加的链接会添加到收件箱中的邮件,而不是回复屏幕。如果我单击回复并在新选项卡中打开,则没有问题,因为检查器不为空。简而言之,当我点击回复邮件时,我无法获取正确的 mailItem 对象,我该如何获取正确的呢?
Microsoft.Office.Interop.Outlook.Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
if (inspector == null)
{
mi = (MailItem)Globals.ThisAddIn.Application.ActiveExplorer().Selection[1];
if (mi == null)
{
return;
}
}
else
{
mi = (MailItem)inspector.CurrentItem;
}
我正在使用此代码来获取mailItem。
我尝试将链接添加到上图中的绿色区域,但它更改了收件箱中电子邮件的正文并将其添加到那里。
如您所见,该链接已添加到收件箱中之前收到的电子邮件的正文中。
如果您需要内联响应,请使用
Globals.ThisAddIn.Application.ActiveExplorer().ActiveInlineResponse
但是您可以同时拥有独立检查器和内联响应。您确实需要检查
Globals.ThisAddIn.Application.ActiveWindow
返回什么,Inspector
或 Explorer
。