私はEWSを使用して交換メールを取得していますが、htmlのないメール本文からプレーンテキストを取得するにはどうすればよいですか?あなたはBodyType.TextにRequestedBodyTypeを設定する必要があなたの項目のプロパティセットでEWS本文平文
EmailMessage item = (EmailMessage)outbox.Items[i];
item.Load();
item.Body.Text
私はEWSを使用して交換メールを取得していますが、htmlのないメール本文からプレーンテキストを取得するにはどうすればよいですか?あなたはBodyType.TextにRequestedBodyTypeを設定する必要があなたの項目のプロパティセットでEWS本文平文
EmailMessage item = (EmailMessage)outbox.Items[i];
item.Load();
item.Body.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);
あなたはPowerShellですべての項目
であるか、項目一意のIDを知っている場合は、「PropertySet plainTextPropertySet = new PropertySet(BasePropertySet。 FirstClassProperties) { RequestedBodyType = BodyType.Text、 }; EmailMessage emailMessage = EmailMessage.Bind(service、uniqueId、plainTextPropertySet); 文字列body = emailMessage.Body.Text; ' – SamFlushing
のプロパティをロードするために
service.LoadPropertiesForItems(findResults, itempropertyset);
を使用することができます。
.........
$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
これが正しく動作するには、Property.FindItems()とitem.Load()の両方でPropertySetを使用する必要があることに注意してください。 – Dave
このMicrosoft.Exchange.WebServices.Data.ServiceObjectPropertyExceptionを実行する際にこの例外が発生します。この値を読み取る前にこのプロパティをロードまたは割り当てる必要があります。値が – kolexinfos