1

サーバーから電子メールを取得するために EWS Java API 1.2 を使用しています。そして、私には問題があります: 私は次のようなプロパティを使用します:

PropertySet itemPropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
itemPropertySet.setRequestedBodyType(BodyType.Text);
...
String body = message.getBody().toString();

この例では、本文をプレーン テキストとして取得します。しかし、本文の書式を保存する必要があります (例: 空行)。BodyType.HTML を使用すると、すべての html タグ、css スタイルなどを取得します。フォーマットを保存し、html タグ、css スタイルなどを除外してメッセージの本文を取得する最良の方法は何ですか。返信ありがとうございます!

私の解決策で更新してください: 私はこのバリアントで停止しました。私の問題は空の行にあったので、次の関数で BR および P タグを処理します。

public void handleStartTag(Tag t, MutableAttributeSet a, int pos)  //To handle Tag.BODY
public void handleSimpleTag(Tag t, MutableAttributeSet a, int pos) //To handle Tag.BR and adding '\n'
public void handleEndTag(Tag t, int pos) //To handle Tag.P (and adding '\n') and Tag.BODY
public void handleText(char[] data, int pos) 
4

1 に答える 1

2

プレーン テキストまたは HTML のいずれかで、他の種類はありません。したがって、維持できる唯一の「レイアウト」は改行であるか、HTML 全体を blob として処理する必要があります。

より手の込んだものが必要な場合は、HTML を解析するためのライブラリを見つけることができるかもしれませんが、次に必要な形式を決定する必要があります。HTMLからRTFに?
(また、EWS にも書き戻す場合は、HTML への RTF を再度実行する必要があります)。

ところで、「空行など」と書いていることに驚いています。テキストには改行含まれています。

(あなたのコメントに応えて 22-1-2014 を追加しました:)
Outlook でメールを次のように編集すると:

- Sample text starts -
Next line followed by 1 empty line

Next line followed by 2 empty lines


- Sample text ends -

SOAPUIでテキストとして取得します。

<t:Body BodyType="Text">- Sample text starts -
Next line followed by 1 empty line

Next line followed by 2 empty lines


- Sample text ends -</t:Body>

改行が消えている場合は、コードまたは EWS Java API のコードをよく確認することをお勧めします。

SOAPUI は実際のデータを照会するための優れたツールですが、SOAP 要求を作成する方法を学ぶ必要があります。そのためにInside Microsoft® Exchange Server 2007 Web Servicesを使用しました。

于 2014-01-21T16:01:18.350 に答える