我使用EWS來獲取交換電子郵件,但是我怎樣才能從電子郵件正文獲得純文本,沒有html?
現在我用這個:EWS正文純文本
EmailMessage item = (EmailMessage)outbox.Items[i];
item.Load();
item.Body.Text
我使用EWS來獲取交換電子郵件,但是我怎樣才能從電子郵件正文獲得純文本,沒有html?
現在我用這個:EWS正文純文本
EmailMessage item = (EmailMessage)outbox.Items[i];
item.Load();
item.Body.Text
在你的項目的屬性集,你需要設置RequestedBodyType到BodyType.Text。這裏有一個例子:
PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties);
itempropertyset.RequestedBodyType = BodyType.Text;
ItemView itemview = new ItemView(1000);
itemview.PropertySet = itempropertyset;
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, "subject:TODO", itemview);
Item item = findResults.FirstOrDefault();
item.Load(itempropertyset);
Console.WriteLine(item.Body);
可以使用
service.LoadPropertiesForItems(findResults, itempropertyset);
加載屬性的所有項目
或如果你知道項目唯一ID:'PropertySet plainTextPropertySet = new PropertySet(BasePropertySet。 FirstClassProperties) { RequestedBodyType = BodyType.Text, }; EmailMessage emailMessage = EmailMessage.Bind(service,uniqueId,plainTextPropertySet); string body = emailMessage.Body.Text;' – SamFlushing
在PowerShell中:
.........
$message = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($event.MessageData,$itmId)
$PropertySet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$PropertySet.RequestedBodyType = [Microsoft.Exchange.WebServices.Data.BodyType]::Text
$message.Load($PropertySet)
$bodyText= $message.Body.toString()
在這種情況下'$ event'是什麼? '$ itmId' ???? - 我有一個EmailMessage,並且使用與最後4行完全相同的代碼,但它仍然返回HTML而不是明文。如果我想出來,我會盡力記得回來......: - / –
我有同樣的問題。您所要做的就是設置您正在使用的屬性集的RequestedBodyType屬性。
PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.Subject, EmailMessageSchema.Body);
propSet.RequestedBodyType = BodyType.Text;
var email = EmailMessage.Bind(service, item.Id, propSet);
做的最簡單的辦法是這樣的:
item.Load(新屬性集(BasePropertySet.IdOnly,ItemSchema.TextBody,EmailMessageSchema.Body));
這樣做的好處是你得到了文本正文和HTML身體
謝謝,它的工作原理。 – JNM
請注意PropertySet必須用於service.FindItems()和item.Load()才能正常工作。 – Dave
我得到這個異常,這樣做Microsoft.Exchange.WebServices.Data.ServiceObjectPropertyException:您必須加載或分配此屬性之前,您可以讀取其值 – kolexinfos