Forum
Merhaba,
C#.NEt ile Exchange 2007 mail sunucusundan mail almaya çalışıyorum. Mail listesini alıyorum sorun yok hatta mailin konusu, to, cc gibi bilgileri geliyor fakat mailin içeriğini alamıyorum. Kod ve alınan hata aşağıdaki şekildedir. Yardımlarınızı bekliyorum şimdiden teşekkürler.
Alınana Hata
An unhandled exception of type 'Microsoft.Exchange.WebServices.Data.ServiceObjectPropertyException' occurred in Microsoft.Exchange.WebServices.dll
Additional information: You must load or assign this property before you can read its value.
Kod Bloğu
WebCredentials ww = new WebCredentials("user.name", "password");
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://sunucuadresi/ews/Exchange.asmx");
service.Credentials = ww;
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
ItemView view = new ItemView(1000);
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.DeletedItems, sf, view);
foreach (Item item in findResults)
{
EmailMessage message = (EmailMessage)item;
string mesaj = message.Body.Text;
}
Aykut Bey: Foreach döngüsünün içine bir satır eklemenizi rica edeceğim:
foreach (Item item in findResults)
{
item.Load();
EmailMessage message = (EmailMessage)item;
string mesaj = message.Body.Text;
}
FindItems() metodu mesajın Body bileşenini (ya da 512 byte'dan büyük streaming bileşenini) otomatik olarak yüklemez. Bu tür bileşenlerin yüklenmesi için Load() metodunu doğrudan çağırmanız gerekiyor.
Ben deneyemedim çünkü bağlanabileceğim bir EWS şu anda yok. Sonucu paylaşmanızı rica ederim.