Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开多封邮件时获取发件人电子邮件地址c#_C#_Outlook Addin - Fatal编程技术网

打开多封邮件时获取发件人电子邮件地址c#

打开多封邮件时获取发件人电子邮件地址c#,c#,outlook-addin,C#,Outlook Addin,我在outlook中有一个c#加载项,我正在尝试获取当前收件人的电子邮件地址。如果只打开一个包含一封邮件的窗口,则下面的代码可以工作。如果打开了多封电子邮件,下面的代码将返回上次打开的电子邮件地址。选择。计数为1,即使我打开3封电子邮件。你能帮帮我吗 我也尝试过迭代它们,但在选择中,只检索最后打开的电子邮件地址 foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer(

我在outlook中有一个c#加载项,我正在尝试获取当前收件人的电子邮件地址。如果只打开一个包含一封邮件的窗口,则下面的代码可以工作。如果打开了多封电子邮件,下面的代码将返回上次打开的电子邮件地址。选择。计数为1,即使我打开3封电子邮件。你能帮帮我吗

我也尝试过迭代它们,但在选择中,只检索最后打开的电子邮件地址

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]之外的索引进行迭代。