如何通过C#中的Exchange Web服务确定电子邮件的发件人
本文关键字:电子邮件 服务 何通过 中的 Exchange Web | 更新日期: 2023-09-27 18:29:33
我目前正在从exchange收件箱中提取电子邮件,就像…
var exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1)
{
Credentials = new NetworkCredential("user", "password", "domain")
};
exchangeService.AutodiscoverUrl("user@domain.com");
var emails = exchangeService.FindItems(WellKnownFolderName.Inbox, new ItemView(5));
foreach (var email in emails)
{
//var senderEmail = email.???
}
电子邮件对象似乎没有任何用于获取发件人电子邮件地址的属性。我该怎么做?
以下是我从一个工作项目示例中获得的一些快速源代码。
基本上,您只需将结果转换为EmailMessage就可以获得次要的细节。但是,如果您想获得有关发件人的更丰富的详细信息(显示名称等),则必须对消息进行特定的附加绑定(Web服务请求)。
findResults = exchangeService.FindItems(folder.Id, messageFilter, view);
foreach (Item item in findResults)
{
if (item is EmailMessage)
{
EmailMessage message;
if (!toFromDetails)
message = (EmailMessage)item;
else
message = EmailMessage.Bind(exchangeService, item.Id);
正如您在这段代码中看到的,我可以选择执行额外的绑定,因为这可能需要一段时间,而且我经常处理来自数百个邮箱的数千个结果。有时,对于特定的客户来说,额外的时间可能不值得。