FAQ
Question
こんにちは!以下のコードについてです:
Aspose.Email.Mime.ContentType ct = new Aspose.Email.Mime.ContentType();
ct.MediaType = "application/msword";
ct.CharSet = "ISO-2022-JP";
Attachment att = new Attachment("Test.doc", ct);
Console.WriteLine(att.ContentType.Name);
att.ContentType.Name は添付ドキュメントの名前を返します。これは期待通りの動作ですか?
回答: はい、期待通りの動作です。ContentType.Name が明示的に設定されていない場合、ファイル名の値が名前として使用されます。
質問:
なぜ ExchangeWebServiceClient.FetchMessage は埋め込み画像を添付ファイルとして扱うのでしょうか?
回答: Microsoft Exchange Server にはそのような機能があります。’コンテンツ変換、これは各受信者向けにメッセージを正しくフォーマットするプロセスです。メッセージのコンテンツ変換を実行するかどうかの判断は、処理対象のメッセージの送信先と形式に依存します。
言い換えれば、未知のクライアントに対しては、サーバーはサーバー設定に従ってメッセージのフォーマットを行い(最適なメッセージ形式を選択します)。ご理解の通り、すべてのクライアントに対して最も汎用的な形式は ’text/plain’ であり、これらの設定はサーバー上で構成可能です。
ご注意ください:Outlook は Microsoft Exchange Server 用の有名なメールクライアントです(Outlook のバージョンがサーバーより古い場合)。これは、Exchange Server が Outlook の機能に合わせてメッセージ形式を渡すことを意味します。今回、ExchangeWebServiceClient がメッセージ取得を試みる際、当社コンポーネントの機能が Exchange に認識されていません。そのため、サーバーは最もシンプルな形式(text/plain)でメッセージをコンポーネントに渡します。言い換えれば、サーバー応答に HTML 部分が存在しません。この状況では、画像は添付ファイルとしてメッセージに含まれます。
記述された問題を回避する方法があります。サーバー上のメッセージが Content‑Type: multipart/alternative を持ち、その一部が text/plain である場合、メッセージはそのままクライアントに渡ります。この場合、メッセージに HTML 部分も含まれるため、画像はメッセージ本文に表示されます。現在のシナリオでは、メッセージは MS Outlook を介して MS Exchange に追加されるため、メッセージの Content‑Type が ‘multipart/alternative’ になっていません。その結果、メッセージ取得時に問題が発生します。例えば、同様の問題のサンプルは以下です:1つ目 (http://support.risualblogs.com/blog/2011/02/24/html-mails-sent-via-owa-and-outlook-2011-are-received-as-plain-text-mails-externally/), 2つ目 (http://forums.mozillazine.org/viewtopic.php?f=39&t=628678), 3つ目 (http://stackoverflow.com/questions/4681798/how-do-i-send-html-multipart-alternative-from-exchange-web-services-2010-sp1)As 結論として、問題で記述されている状況(画像が添付ファイルとしてメッセージに含まれる)は Aspose コンポーネントのバグではなく、Exchange サーバー特有の機能です。
Question: OLE オブジェクトが埋め込まれた MapiMessage を読み取った結果得られる "oleData.mso" 添付ファイルからデータを抽出するにはどうすればよいですか?
Answer: "oleData.mso" のようなファイルは Microsoft Compound Document ファイル (MCDF) 形式を指し、残念ながらこの種のファイルのサポートは Aspose.Email の範囲外です。ただし、OpenMCDF などのオープンソース .NET ライブラリがあり、これらのファイルの内容を読み取り、ディスクに保存するために使用できます。
Question: 同じオブジェクトを使用して、並列スレッドで同じ PST ファイルに書き込むことはできますか?
Answer: いいえ、そのような場合はスレッドセーフは保証されません。メッセージの書き込みは単一スレッドで行う必要があります。ただし、製品は異なるスレッドの異なるオブジェクトでも正しく動作しなければなりません。