C# 在Exchange web服务器管理的API中访问电子邮件属性
我对EWS完全是个新手,但我正在尝试将一个功能良好的IMAP程序转换为EWS&在访问托管API中的简单字段时遇到问题,例如发件人、发件人、BodyType。谁能看出我做错了什么?非常感谢各位C# 在Exchange web服务器管理的API中访问电子邮件属性,c#,exchangewebservices,C#,Exchangewebservices,我对EWS完全是个新手,但我正在尝试将一个功能良好的IMAP程序转换为EWS&在访问托管API中的简单字段时遇到问题,例如发件人、发件人、BodyType。谁能看出我做错了什么?非常感谢各位 ItemView view = new ItemView(99); SearchFilter.Exists filter = new SearchFilter.Exists(EmailMessageSchema.Id); FindItemsResults<
ItemView view = new ItemView(99);
SearchFilter.Exists filter = new SearchFilter.Exists(EmailMessageSchema.Id);
FindItemsResults<Item> inboxMessageList = service.FindItems(WellKnownFolderName.Inbox, view);
Console.WriteLine("Inbox message count: " + inboxMessageList.TotalCount);
int messageCounter = 1;
//message loop
foreach (Item thisMessage in inboxMessageList)
{
//Collect info about current email message
Item thisItem = Item.Bind(service, thisMessage.Id);
Console.WriteLine("Current message ID: " + thisMessage.Id);
string uniqueID = "EMAIL-" + DateTime.UtcNow.ToString("yyyyMMdd-HHmmss-fff");
string messageTo = thisItem.DisplayTo;
string messageCC = thisItem.DisplayCc;
string messageFrom = //cant get this to work
string messageSubject = thisItem.Subject;
string messageDate = thisMessage.DateTimeReceived.ToString();
int noOfAttachments = 0;
Boolean messageHasAttachments = thisMessage.HasAttachments;
if (messageHasAttachments) noOfAttachments = thisMessage.Attachments.Count();
string isBodyHtml = //cant seem to implement this either
Boolean domainblacklistResult = fn.CheckIfDomainBlacklisted(messageFrom);
Boolean emailblacklistResult = fn.CheckIfEmailBlacklisted(messageFrom);
ItemView=newitemview(99);
SearchFilter.Exists filter=新的SearchFilter.Exists(EmailMessageSchema.Id);
FindItemsResults inboxMessageList=service.FindItems(WellKnownFolderName.Inbox,视图);
Console.WriteLine(“收件箱邮件计数:”+inboxMessageList.TotalCount);
int messageCounter=1;
//消息循环
foreach(inboxMessageList中的项目thisMessage)
{
//收集有关当前电子邮件的信息
Item thisItem=Item.Bind(服务,thisMessage.Id);
Console.WriteLine(“当前消息ID:+thisMessage.ID”);
字符串uniqueID=“EMAIL-”+DateTime.UtcNow.ToString(“yyyyMMdd HHmmss fff”);
字符串messageTo=thisItem.DisplayTo;
字符串messageCC=thisItem.DisplayCc;
字符串messageFrom=//无法使其工作
string messageSubject=thisItem.Subject;
字符串messageDate=thisMessage.DateTimeReceived.ToString();
int noOfAttachments=0;
布尔messagehasaAttachments=thisMessage.hasaAttachments;
if(messagehasaattachments)noOfAttachments=thisMessage.Attachments.Count();
string isBodyHtml=//似乎也无法实现此功能
Boolean domainblacklistResult=fn.CheckIfDomainBlackList(messageFrom);
布尔值emailblacklistResult=fn.CheckIfEmailBlacklisted(messageFrom);
要访问有关电子邮件的信息,您需要将其绑定为电子邮件
,而不是项
。示例:
EmailMessage message = EmailMessage.Bind(service, thisMessage.Id);
嗨,MadDev,我似乎无法让它工作:(尝试将view.PropertySet添加到foreach循环之外,但仍然无法访问属性。尝试扩展该项。绑定以包括第三个PropertySet重载,但也不起作用。请提供更多想法??谢谢!当您调用
Item.Bind
时,此项
是否为空?我不确定您是否需要Item.Bind
code。另外,请注意,并非所有项目都是电子邮件(可能会有会议请求等)。请参见Hi MadDev,再次感谢!答案是将其绑定为电子邮件,而不是项目。这就成功了:)谢谢!酷,没问题:)。我已更新了我的答案,以帮助将来可能遇到此问题的其他人。请随时将其标记为答案