从 Outlook 插件获取接收电子邮件地址(收件人地址)



我试图找到收件人电子邮件地址,在从Outlook阅读邮件时,我已经尝试了这些事情,但是得到了包括抄送在内的所有收件人,但我只需要邮件中的电子邮件地址

foreach (Microsoft.Office.Interop.Outlook.MailItem mail in myInbox.Items)
{
        string smtpAddress = string.Empty;
        Subject = mail.Subject;
        Description = mail.Body;
        FromEmail = mail.SenderEmailAddress;
        Microsoft.Office.Interop.Outlook.Recipients recips = mail.Recipients;
        string mailids = string.Empty;
        foreach (Microsoft.Office.Interop.Outlook.Recipient recip in recips)
        {
            Microsoft.Office.Interop.Outlook.PropertyAccessor pa = recip.PropertyAccessor;
            smtpAddress = pa.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x39FE001E").ToString();
            ToEmail = smtpAddress;
            break;
        }
        MailedDateTime = mail.CreationTime;
        Direction = 1;
        CompanyID = CompanyID;
        UserID = UserID;
        ID = mail.EntryID;
}

我也试过

ToEmail = mail.To;

在我得到有时接收者的名字

可以使用收件人类的 Type 属性来检测"收件人"。它将是以下 OlMailRecipientType 常量之一:olBCC、olCC、olOriginator 或 olTo。看起来您需要检查 Type 属性。

请注意,Microsoft 当前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)自动化Microsoft Office 应用程序,因为在此环境中运行 Office 时 Office 可能会表现出不稳定的行为和/或死锁。

如果要生成在服务器端上下文中运行的解决方案,则应尝试使用已安全执行无人参与的组件。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方法。如果使用服务器端解决方案中的 Office 应用程序,则该应用程序将缺少成功运行所需的许多功能。此外,您将承担整体解决方案稳定性的风险。可以在 Office 服务器端自动化的注意事项一文中阅读有关此内容的详细信息。

最新更新