2

저는 Exchange Server의 메일을 읽는 데 EWS를 사용하는 WinForms 응용 프로그램을 만들고 있습니다. Exchange는 Version 2007입니다. EWS를 통해 이메일을 읽고, 이동하고, 삭제하고, 보낼 수있었습니다. Autodiscover를 사용하여 사서함을 인증하고 선택합니다. 유일한 문제는 보낸 사람의 전자 메일 주소를받지 못한다는 것입니다. 내가받는 유일한 것은 보낸 사람의 이름이지만 주소는 없습니다.C# EWS 2007 비어있는 주소

이 내 코드는 지금까지 있습니다 :

Screenshot

사람이 나에게 내가 여기 착각하고있는 무슨 제안을 줄 수 :

Service1 = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
Service1.Credentials = new WebCredentials(Properties.Settings.Default.Username, Properties.Settings.Default.Password); 
Service1.Url = new Uri(Properties.Settings.Default.Serviceurl); 
EmailMessage messageAtt = EmailMessage.Bind(Service1, item.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments, ItemSchema.HasAttachments, EmailMessageSchema.IsRead)); 
EmailMessage messageData = (EmailMessage)item; 

foreach (Attachment attachment in messageAtt.Attachments) 
{ 
    String from = messageData.Sender.Address.ToString(); 
} 

이것은 내가 디버깅 할 때 내가 무엇을 얻을? 내가 쓴 것과 관련된 문제가 있습니까? Exchange Server의 설정 문제 일 수 있습니까? 모든 속성이 새 개체로 옮겨진에 geting되어 있지 명시 적 변환으로 EmailMessage을 정의하여

:

답변

1

문제는 EmailMessage 객체의 정의를 것 같다. .Bind() 메소드에 의해 정의 된 상위 EmailMessage 객체로 시도한다면, 역시 작동하지 않을 것이다. 그 이유는 PropertySet이 세 번째 매개 변수로 전달 되었기 때문입니다.

EmailMessage messageInfo = EmailMessage.Bind(useService, item.Id); 

이 Object의 단점은 당신이 항목이 첨부 파일이 있거나하지 않으면 볼 수 없을 것입니다 : 내가 찾은 유일한 해결책은 제 3 개체를 만드는 것입니다. 희망은이 같은 어리석은 실수에 시간을 보내지 않는 사람을 돕는다;)