C# 从Outlook新邮件检索收件人

C# 从Outlook新邮件检索收件人,c#,visual-studio,outlook,vsto,C#,Visual Studio,Outlook,Vsto,我们有一个应用程序,用户可以单击一个按钮,在Outlook中打开一封新电子邮件。我正在编写一个外接程序,允许用户将此电子邮件添加到我们编写的电子邮件计划应用程序中。(Outlook中的延迟交付功能不太可靠) 无论如何,用户需要能够修改电子邮件,使用我创建的自定义表单更改交付日期/时间,然后单击按钮将其添加到调度程序数据库 我的问题是,当我尝试访问“收件人”集合时,如果无法解析收件人,则无法识别该收件人,并且除非保存邮件项目,否则该收件人不会出现在“收件人”集合中 但是,如果我保存邮件项目,它会断

我们有一个应用程序,用户可以单击一个按钮,在Outlook中打开一封新电子邮件。我正在编写一个外接程序,允许用户将此电子邮件添加到我们编写的电子邮件计划应用程序中。(Outlook中的延迟交付功能不太可靠)

无论如何,用户需要能够修改电子邮件,使用我创建的自定义表单更改交付日期/时间,然后单击按钮将其添加到调度程序数据库

我的问题是,当我尝试访问“收件人”集合时,如果无法解析收件人,则无法识别该收件人,并且除非保存邮件项目,否则该收件人不会出现在“收件人”集合中

但是,如果我保存邮件项目,它会断开呼叫应用程序之间的连接,该应用程序希望确认电子邮件已发送。目前,我正在发送电子邮件回用户后,它被添加到我们的调度系统,以满足呼叫应用程序。但是如果我先保存邮件,它会抛出一个错误。我也无法访问调用应用程序的源代码


因此,我需要的是一种访问“收件人”字段中输入的地址而不保存邮件的方法。这可能吗?

本文可能有助于:

您可以创建邮件项目并解析地址,而无需保存

在示例中查找这一行:

mailRecipient.Resolve(); 

什么类型的应用程序正在调用Outlook?

当您与未解析的收件人保存消息时,为什么会出现错误?何时访问收件人?如果光标仍在“收件人”编辑框中,则在将焦点从“收件人”编辑框移开或保存邮件之前,新收件人确实将不可见。问题是收件人集合为空,因此我无法调用mailRecipient.Resolve()。用户在“收件人:”字段中输入smtp地址。当我尝试调用recipients.ResolveAll()时,它只是从文本框中清除输入的地址。mailItem.To字段也为空。如果我看收信人的话,计数是零。我相信调用应用程序是用Delphi编写的。在遍历收件人之前,请尝试调用YourMailItem.Save()。