EWS体纯文本(EWS body plain text)

2019-06-25 20:20发布

我用EWS让Exchange电子邮件,但我怎么可以从电子邮件正文中的纯文本,不包含HTML?
现在我用这个:

EmailMessage item = (EmailMessage)outbox.Items[i];
item.Load();
item.Body.Text

Answer 1:

在您的项目的属性集,你需要设置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);


Answer 2:

在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()


Answer 3:

我遇到过同样的问题。 所有你需要做的就是设定您所使用的属性集RequestedBodyType财产。

    PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.Subject, EmailMessageSchema.Body);
    propSet.RequestedBodyType = BodyType.Text;
    var email = EmailMessage.Bind(service, item.Id, propSet);


Answer 4:

您可以使用

service.LoadPropertiesForItems(findResults, itempropertyset);

加载所有项目性质



Answer 5:

做到这一点的最简单的办法是这样的:

item.Load(new PropertySet(BasePropertySet.IdOnly, ItemSchema.TextBody, EmailMessageSchema.Body));

这已经得到了你两个,文字的身体和HTML的身体优势。



文章来源: EWS body plain text