从 Outlook 互操作 C# 中的“已发送邮件”文件夹中获取目标电子邮件地址



我正在使用Outlook Interop和C#来获取一些邮件信息以创建Excel报告。我有来自"已发送邮件"文件夹中的电子邮件项目列表,我想获取我发送邮件的电子邮件地址。我找到了"To"属性,但只返回人名而不是地址。

任何人都可以帮我从Outlook.MailItem对象返回电子邮件地址吗?如果您需要更多信息,您可以问我。谢谢!!!!

这是我设置属性的代码:

    foreach (object mail in mails)
    //mails is a list from Sent Items folder
        {
            if (mail is Outlook.MailItem)
            {
                var item = (Outlook.MailItem)mail;
                //i need the address in provider email
                var providerEmail = someProperty(????);
                var name = item.To;
                var request= "Other Request";
                var emailDate= item.ReceivedTime;
                var status = "Closed";
                var responseDate= item.CreationTime;
                var reportObject = new ReportModel
                {
                    Email = providerEmail ,
                    Name = name,
                    Solicitud = request,
                    EmailDate = emailDate,
                    Status = status,
                    ResponseDate = responseDate
                };
            }
        }

MailItem 具有 Recipients 属性,您可以使用它来获取每种类型的收件人:

  • 抄送
  • 密件抄送。

使用收件人。键入以识别收件人类型和收件人。用于获取其电子邮件地址的地址。例:

protected override void getRecepients(MailItem OLitem, StringBuilder toStringBuilder,
        StringBuilder ccStringBuilder, StringBuilder bccStringBuilder)
    {
        try
        {
            var recipients = OLitem.Recipients;
            string parent = string.Empty;
            foreach (Microsoft.Office.Interop.Outlook.Recipient recipient in recipients)
            {
                switch (recipient.Type)
                {
                    case (int)Microsoft.Office.Interop.Outlook.OlMailRecipientType.olTo:
                        toStringBuilder.Append(recipient.Address + ", ");
                        if (parent == string.Empty)
                        {
                            parent = recipient.Address;
                        }
                        break;
                    case (int)Microsoft.Office.Interop.Outlook.OlMailRecipientType.olCC:
                        ccStringBuilder.Append(recipient.Address + ", ");
                        break;
                    case (int)Microsoft.Office.Interop.Outlook.OlMailRecipientType.olBCC:
                        bccStringBuilder.Append(recipient.Address + ", ");
                        break;
                    default:
                        break;
                }
            }
        }
        catch (Exception ex)
        {
            // do something with error
        }
    }

相关内容

最新更新