
HTMLは広く使用されているアクセスしやすい形式で、デスクトップコンピュータやモバイルデバイスを含む多くのプラットフォームやウェブブラウザで表示できます。対照的に、EMLおよびMSGファイルは、特定のソフトウェアやメールクライアントが必要な場合があり、時間が経つにつれてアクセスや表示が難しくなることがあります。したがって、MSGまたはEMLファイルをHTMLに変換することで、特に互換性のあるメールクライアントやソフトウェアを持たない受信者にとって、表示が容易になります。
さらに、HTMLファイルはアーカイブが容易で、検索可能でインデックスされた形式で保持されます。
本記事では、C#を使用してMSGまたはEMLファイルをHTML形式に迅速かつ簡単に変換するアルゴリズムを紹介します。私たちの信頼できる方法は、埋め込まれた画像を含むメールの内容が損なわれることなく完全に保持されることを保証します。これにより、変換プロセス全体を通じてメールの整合性が維持されます。
記事では以下のトピックを扱います:
- C# APIを使用してEML/MSGファイルをHTMLに変換
- 画像を別に保存してEML/MSGファイルをHTMLに変換
- HTML内に画像を保存してEML/MSGファイルをHTMLに変換
- ヘッダー付きでHTMLを保存
C# APIを使用してEML/MSGファイルをHTMLに変換
EML/MSGファイルをHTMLに変換するために、Aspose.Email for .NETを使用します。これは、メールを操作し、ThunderbirdやOutlookなどの人気のあるメールクライアントのファイル形式で作業できるメール処理APIです。以下のコマンドを使用して、APIのDLLをダウンロードするか、NuGetからインストールできます:
PM> Install-Package Aspose.Email
画像を別に保存してEML/MSGファイルをHTMLに変換
典型的なMSGファイルは以下のように表示されます:

当社のAPIを使用すると、デバイス上の任意のディレクトリを設定し、ターゲットHTMLファイルを画像を別のフォルダーに保存することができます:

以下のコード例を使用して、MSGまたはEML形式のメールメッセージを画像がターゲットディレクトリに保存されるHTMLファイルに変換します。このコードは以下の手順を実行します:
- まず、ソースMSG/EMLファイルとHTMLファイルのソースおよびターゲットパス、ならびにリソースのターゲットディレクトリを指定します。
- MailMessage.Loadメソッドを使用してMSGまたはEMLファイルをロードします。
- HtmlSaveOptionsオブジェクトを作成し、ResourceRenderingModeプロパティをSaveToFileに設定します。
- HtmlSaveOptionsのSaveResourceHandlerイベントのデリゲートを定義します。
- デリゲート内でリソースのためのターゲットディレクトリを作成します(既に存在しない場合)。
- リソースのコンテンツタイプに基づいて、デリゲート内でファイル名を付けて各リソースをファイルに保存します。
- MailMessageインスタンスのSaveメソッドを呼び出し、ターゲットHTMLファイル名とHtmlSaveOptionsインスタンスを渡して、メールをHTML形式で保存します。
HTML内に画像を保存してEML/MSGファイルをHTMLに変換
場合によっては、埋め込まれた画像をHTML内に保持したままEML/MSGファイルをHTMLに変換することを好むかもしれません。

以下のコードスニペットは、MSGまたはEMLファイルをC#でHTML形式に変換し、画像をHTML内に保存する方法を示しています。このコードは以下の手順を実行します:
- メールファイルとHTML出力のためのソースおよびターゲットパスを定義します。
- MailMessage.Loadメソッドを使用してMSGまたはEMLファイルをロードします。
- メールをHTMLとして保存する方法を構成するHtmlSaveOptionsクラスの新しいインスタンスを作成します。
- リソース(画像を含む)をHTMLに直接埋め込むようにHtmlSaveOptionsインスタンスを構成します。
- MailMessageインスタンスのSaveメソッドを呼び出し、ターゲットHTMLファイル名とHtmlSaveOptionsインスタンスを渡して、メールをHTML形式で保存します。
ヘッダー付きでHTMLを保存
オプションのバリアントとして、ヘッダー付きでHTMLを保存することができます。以下のコードスニペットは、C#でヘッダー付きのHTMLを保存する方法を示しています:
その結果、テキストヘッダーがターゲットHTMLに追加されます:

結論
要約すると、この記事では、ファイルをアーカイブおよび管理するためのHTML形式の便利さと、Aspose.Email for .NETライブラリを使用してEMLまたはMSGからC#で変換を実行する方法について学びました。数行のコードで、変換プロセスがどれほど迅速かつ簡単であるかを見ることができました。質問がある場合は、無料サポートフォーラムに気軽にお問い合わせください。また、Aspose.Email for .NET、機能や施設については、ドキュメントからさらに学ぶことができます。