回复邮件时如何获取mailItem?

问题描述 投票:0回答:1

我编写了一个 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。

我尝试将链接添加到上图中的绿色区域,但它更改了收件箱中电子邮件的正文并将其添加到那里。

如您所见,该链接已添加到收件箱中之前收到的电子邮件的正文中。

c# outlook vsto outlook-addin
1个回答
0
投票

如果您需要内联响应,请使用

Globals.ThisAddIn.Application.ActiveExplorer().ActiveInlineResponse

但是您可以同时拥有独立检查器和内联响应。您确实需要检查

Globals.ThisAddIn.Application.ActiveWindow
返回什么,
Inspector
Explorer

© www.soinside.com 2019 - 2024. All rights reserved.