Ste*_*ack 25 c# asp.net exchange-server exchangewebservices
谁能告诉我如何使用Exchange Web服务API获取电子邮件正文,收据,发件人,CC信息?我只知道如何获得主题.
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Credentials = new NetworkCredential("user", "password", "domain");
service.Url = new Uri("https://208.243.49.20/ews/exchange.asmx");
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
FindItemsResults<Item> findResults = service.FindItems(
WellKnownFolderName.Inbox,
new ItemView(10));
foreach (Item item in findResults.Items)
{
div_email.InnerHtml += item.Subject+"<br />";
}
Run Code Online (Sandbox Code Playgroud)
我的开发环境是asp.net c#Exchange-server 2010谢谢.
Vee*_*ond 34
由于原始问题特别要求"电子邮件正文,收据,发件人和CC信息",我以为我会解决这些问题.我假设"收据"是收件人信息,而不是没有人使用的电子邮件的"通知发件人"功能.CC看起来像收件人一样处理.
我喜欢Henning的答案,将功能减少到两个电话,但是有点难以弄清楚如何处理PropertySet.谷歌搜索没有立即清楚,我最终使用别人的教程:
// Simplified mail item
public class MailItem
{
public string From;
public string[] Recipients;
public string Subject;
public string Body;
}
public MailItem[] GetUnreadMailFromInbox()
{
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(128));
ServiceResponseCollection<GetItemResponse> items =
service.BindToItems(findResults.Select(item => item.Id), new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.From, EmailMessageSchema.ToRecipients));
return items.Select(item => {
return new MailItem() {
From = ((Microsoft.Exchange.WebServices.Data.EmailAddress)item.Item[EmailMessageSchema.From]).Address,
Recipients = ((Microsoft.Exchange.WebServices.Data.EmailAddressCollection)item.Item[EmailMessageSchema.ToRecipients]).Select(recipient => recipient.Address).ToArray(),
Subject = item.Item.Subject,
Body = item.Item.Body.ToString(),
};
}).ToArray();
}
Run Code Online (Sandbox Code Playgroud)
Hen*_*use 11
使用FindItems只会到达目前为止,因为它只返回正文的前255个字节.您应该做的是组合FindItem请求邮件的ID并发出一个或多个GetItem调用以获取您感兴趣的属性.
| 归档时间: |
|
| 查看次数: |
46940 次 |
| 最近记录: |