打开多封邮件时获取发件人电子邮件地址c#
我在outlook中有一个c#加载项,我正在尝试获取当前收件人的电子邮件地址。如果只打开一个包含一封邮件的窗口,则下面的代码可以工作。如果打开了多封电子邮件,下面的代码将返回上次打开的电子邮件地址。选择。计数为1,即使我打开3封电子邮件。你能帮帮我吗 我也尝试过迭代它们,但在选择中,只检索最后打开的电子邮件地址打开多封邮件时获取发件人电子邮件地址c#,c#,outlook-addin,C#,Outlook Addin,我在outlook中有一个c#加载项,我正在尝试获取当前收件人的电子邮件地址。如果只打开一个包含一封邮件的窗口,则下面的代码可以工作。如果打开了多封电子邮件,下面的代码将返回上次打开的电子邮件地址。选择。计数为1,即使我打开3封电子邮件。你能帮帮我吗 我也尝试过迭代它们,但在选择中,只检索最后打开的电子邮件地址 foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer(
foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection)
{
yield return email;
}
不要使用
Application.ActiveExplorer
,而是使用Application.ActiveWindow
,检查它是Explorer
(使用Explorer.Selection
集合)还是Inspector
(使用Inspector.CurrentItem
).A将是必需的。当然,您希望在活动邮件窗口上进行迭代,您的代码显示没有尝试进行此操作。MSDN网站上有一个基于此的示例--您需要使用选择。计数来获得所选项目的数量,并使用除[1]之外的索引进行迭代。