Outlook ファイルの作成と保存
Aspose.Email は Outlook メッセージ (MSG) ファイルの作成をサポートします。本記事では以下の方法を説明します:
Outlook メッセージの作成と保存
この MailMessage クラスは…を持っています Save() Outlook MSG ファイルをディスクまたはストリームに保存できるメソッドです。以下のコードスニペットは、… のインスタンスを作成します。 MailMessage クラスで、From、To、Subject、Body などのプロパティを設定します。 Save() メソッドはファイル名を引数として受け取ります。さらに、Outlook メッセージは … で作成できます。 圧縮 RTF 本文 使用して MapiConversionOptions.
- 新しいインスタンスを作成します MailMessage クラスで From、To、Subject、Body プロパティを設定します。
- 呼び出す MapiMessage クラス FromMailMessage オブジェクトを受け取るメソッド MailMessage タイプです。 FromMailMessage メソッドは…を変換します MailMessage へ MapiMessage (MSG)。
- 呼び出す MapiMessage.Save() MSG ファイルを保存するメソッド。
Windows アプリケーションのボタンコントロールのクリックイベントに、以下のコードを書きます。
添付ファイル付き MSG ファイルの作成
上記の例では、シンプルな MSG ファイルを作成しました。Aspose.Email は添付ファイル付きのメッセージファイルの保存もサポートしています。必要なのは添付ファイルを対象に追加することだけです。 MailMessage インスタンスです。Add() メソッドを呼び出して添付ファイルを追加します。 MailMessage.Attachments コレクションに追加されます。上記で作成したフォームにリストボックスを追加し、添付ファイルの追加と削除のための2つのボタンを配置します。アプリケーションの動作は次のとおりです:
- Add Attachment ボタンがクリックされると、Open File Dialog が表示され、ユーザーが添付ファイルを参照して選択できるようになります。
- ファイルが選択されると、フルパスがリストに追加されます。
- MSG ファイルが作成されると、添付ファイルのパスがリストから取得され、 MailMessage.Attachments コレクション。
Add Attachment ボタンのクリックイベントに以下のコードを書きます。
Remove Attachment ボタンがクリックされたとき、リストボックスから選択項目を削除します。Remove Attachment ボタンのクリックイベントに以下のコードを書きます。
添付ファイルを追加するコードを MailMessage インスタンスです。Write Msg 関数の最終コードは以下の通りです。
RTF 本文付き MSG ファイルの作成
Aspose.Email では、リッチテキスト (RTF) 本文を持つ Outlook メッセージ (MSG) ファイルも作成できます。RTF 本文はテキストの書式設定をサポートしています。次のように設定して作成します。 MailMessage.HtmlBody プロパティ。変換する際は MailMessage インスタンスを MapiMessage インスタンスでは、HTML 本文が RTF に変換されます。この方法でメール本文の書式が保持されます。
以下の例は RTF 本文を持つ MSG ファイルを作成します。HTML 本文には見出しが1つ、太字と下線の書式が適用されています。この書式は HTML が RTF に変換されても保持されます。
MAPI メッセージ本文の RTF 圧縮
NOTE: 圧縮プロセスはメッセージ作成時のパフォーマンスを低下させる可能性があります。この事実を理解し、ファイルサイズとパフォーマンスの間のトレードオフに基づいて圧縮フラグを設定することで、開発者はメールメッセージを扱う際に MSG および PST ファイルの作成を効果的に管理できます。
RTF 圧縮は、メッセージのサイズと、Microsoft Outlook がメールメッセージやその他のデータを保存するために使用する PST(Personal Storage Table)ファイルのサイズを削減することを目的としています。メッセージ本文の設定時に RTF 圧縮を使用することで、開発者はメールメッセージの保存に必要なメモリ量を減らしたり、メッセージ送信時のネットワーク帯域幅を最適化したりできます。
この目的のために、2つのオーバーロードされたメソッドが設計されています:
-
MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): このメソッドは、指定された文字列コンテンツと本文の contentType(例:プレーンテキスト、HTML など)を使用してメッセージ本文を設定できます。オプションの compression パラメータは、コンテンツを RTF 圧縮で圧縮するかどうかを指定する値です。compression が true の場合、コンテンツは圧縮され、メッセージサイズが小さくなります。
-
MapiMessageItemBase.SetBodyRtf(string content, bool compression): このメソッドは、メッセージ本文を RTF 形式で設定します。content パラメータは、メッセージ本文として設定される RTF コンテンツを表す文字列です。前述のメソッドと同様に、compression パラメータは RTF 圧縮を適用するかどうかを決定します。compression が true の場合、RTF コンテンツは圧縮されてサイズが縮小されます。
以下のコードサンプルは、HTML 本文を設定し圧縮したままにする方法を示しています。
var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);
また、 MapiConversionOptions.UseBodyCompression プロパティです。このプロパティが有効になると、MailMessage から MapiMessage への変換時に RTF 本文圧縮が適用され、MSG ファイルのサイズが小さくなります。以下のコードサンプルに示されています:
var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);
ドラフト状態でメッセージを保存
メールは編集中で後で続きを編集したい場合に下書きとして保存されます。Aspose.Email はメッセージフラグを設定することでメールを下書き状態で保存することをサポートしています。以下は Outlook のメールメッセージ (MSG) を下書きとして保存するサンプルコードです。