获取收件人的电子邮件地址

此代码示例展示了如何获取收件人的简单邮件传输协议 (SMTP) 地址。

示例

在下面的代码示例中,GetSMTPAddressForRecipients 方法将 MailItem 对象用作输入参数,然后显示邮件项的每个收件人的 SMTP 地址。 此方法先检索表示邮件项的指定收件人集的 Recipients 集合。 对于该 Recipients 集合中的每个 Recipient ,此方法然后获取与该 Recipient 对象相对应的 PropertyAccessor 对象。 最后, 方法使用 PropertyAccessor 属性获取 MAPI 属性的值,该属性 https://schemas.microsoft.com/mapi/proptag/0x39FE001E映射到 收件人的 PR_SMTP_ADDRESS (PidTagSmtpAddress) 属性。

如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 using 语句直接添加到此代码示例中的函数前面,这个语句必须后跟公共类声明。 下面的代码行演示了如何在 C# 中执行导入和分配。

using Outlook = Microsoft.Office.Interop.Outlook;
private void GetSMTPAddressForRecipients(Outlook.MailItem mail)
{
    const string PR_SMTP_ADDRESS =
        "http://schemas.microsoft.com/mapi/proptag/0x39FE001E";
    Outlook.Recipients recips = mail.Recipients;
    foreach (Outlook.Recipient recip in recips)
    {
        Outlook.PropertyAccessor pa = recip.PropertyAccessor;
        string smtpAddress =
            pa.GetProperty(PR_SMTP_ADDRESS).ToString();
        Debug.WriteLine(recip.Name + " SMTP=" + smtpAddress);
    }
}

另请参阅