MHTにメール

Microsoft Outlook やその他の一般的な電子メール クライアントは、標準形式として EML(MIME RFC 822 標準) を使用します。EML は、電子メールまたは電子メールの略語です。同様に、電子メール メッセージのインターネット メッセージ形式プロトコルでファイルに保存される電子メール メッセージのファイル拡張子です。EML ファイルには、通常、メインのメッセージ本文、ヘッダーとハイパーリンク、および添付ファイルのプレーン ASCII テキストが含まれています。ただし、EML 形式に関連する脅威が 1 つあります。それは、フィッシング メールである可能性があり、添付ファイルが次のいずれかである可能性があることです。添付ファイルを開くと、コンピューターがマルウェアに感染する。

さらに、これらのファイルのオフラインコピーを保存すると、マルウェアが簡単に影響を受け、データが失われる可能性があります。また、EMLファイルを開くには、サポートされているアプリケーション(Microsoft Outlook 365、Microsoft Windows Mail、Mozilla Thunderbirdなど)が必要です。したがって、予防策として、MHT形式に変換することが考えられます。

無料のメール処理API

Aspose.Email Cloud は、人気のメール形式を作成、操作、およびサポートされている他の形式に変換する機能を提供する、受賞歴のある API です。OAuth をサポートする独自のクラウドベースのメール管理ソリューションを作成し、添付ファイルの有無にかかわらず、シンプルなメール メッセージまたは MIME メールを送信できます。Windows、Linux、macOS などのあらゆるプラットフォーム、およびデスクトップ、モバイル、Web、ハイブリッドなどのあらゆるアプリケーション タイプで API にアクセスできます。

プログラミング言語内で API を直接使用するには、Cloud SDK のラッパーである言語固有の Cloud SDK を使用してください。この記事では、Aspose.Email Cloud SDK for .NET を使用して EML ファイルを MHT 形式に変換することに焦点を当てます。SDK を使用するには、サポートされている (またはサポートされているものと互換性がある).NET フレームワークのいずれかが必要です。

  • .NET フレームワーク 2.0
  • .NETフレームワーク4.5.2
  • .NET標準2.0
  • モノアンドロイド 6.0
  • Xamarin.iOS 1.0
  • Xamarin.Mac 2.0

インストール

Cloud SDK を使用するには、まずインストールする必要があります。NuGet および GitHub からダウンロードできます。ターミナル ウィンドウで次のコマンドを実行して、NuGet のインストールを実行します。

nuget install Aspose.Email-Cloud

.NET CLI を使用する場合:

dotnet add package Aspose.Email-Cloud

Visual Studio を使用している場合は、パッケージ マネージャー コンソールを使用してパッケージをインストールすることもできます。次のコマンドを実行してください。

PM> Install-Package Aspose.Email-Cloud

NuGet パッケージ マネージャー – Visual Studio

もう 1 つの最も簡単な方法は、Visual Studio IDE 内の NuGet パッケージ マネージャーを使用して SDK をインストールすることです。

  1. ソリューション エクスプローラーを開きます。
  2. プロジェクトを展開し、ソリューション内のパッケージ フォルダーを右クリックします。
  3. NuGetパッケージの管理オプションを選択します
  4. 参照タブをクリックし、「Aspose.Email-Cloud」を検索します。
  5. Aspose.Email-Cloudパッケージをクリックし、右側のタブで適切なバージョンを選択して、パッケージの追加ボタンをクリックします。

クラウドアカウントサブスクリプション

クラウド ストレージに保存されたデータはクラウド API 経由でアクセスできるため、当社の API には許可されたユーザーのみがアクセスできます。サブスクリプションは無料で、前払いの詳細は必要ありません。最大 150 件のドキュメント処理操作を無料で実行できます。API の機能に満足したら、API 呼び出しあたり 0.005 ドルという低価格のライセンス サブスクリプションを選択することを検討してください。詳細については、価格 をご覧ください。

次に、Aspose.Cloud ダッシュボード にアクセスしてアカウント作成に進みます。クレジットカードやその他の支払い情報は必要ありません。GitHub または Google アカウントをお持ちの場合は、サインアップするか、新しいアカウントを作成 ボタンをクリックして必要な情報を入力します。資格情報を使用してダッシュボードにログインし、ダッシュボードからアプリケーション セクションを展開して、クライアント資格情報セクションまで下にスクロールして、クライアント ID とクライアント シークレットの詳細を確認します。

クライアントの資格情報

画像 3: Aspose.Cloud ダッシュボードのクライアント資格情報。

C# で EML を MHT に変換する

C# .NET を使用して EML ファイルを MHT 形式に変換するには、以下の手順に従ってください。

  • 最初のステップは、ClientIDとClient Secretの詳細を引数として渡してEmailCloudクラスのオブジェクトを作成することです。
  • 次に、ソースメールファイルをFile.OpenReadインスタンスに読み込みます。
  • 3番目に、入力ファイル形式、結果ファイル形式、および入力EMLファイルを保持するストリームオブジェクトを渡しながら、EmailConvertRequestのインスタンスを作成します。
  • Email.Convert(…) メソッドを呼び出して変換操作を開始します。
  • 最後に、File.Createインスタンスを使用して結果のファイルをローカルドライブに保存するカスタムメソッドを呼び出します。
// 完全な例とデータファイルについては、 
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet

// https://dashboard.aspose.cloud/ からクライアント資格情報を取得します。
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// EmailCloud Apiのインスタンスを作成する
var emailApi = new EmailCloud(clientSecret, clientID);
       
// ソースEMLファイル名
string name = "sample.eml";
// 結果の MHT ファイルの名前
string resultantFile = "converted.mht";
// 入力メールファイルの形式
string fromFormat = "eml";
// 結果ファイルの形式
string toFormat = "Mhtml";

 try
{
    // ソースEMLをストリームオブジェクトに読み込む
    using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
    {
    
        // 入力、出力形式、ファイルストリームを渡す EmailConvert リクエストインスタンスを作成します。
        var convertRequest = new EmailConvertRequest(fromFormat, toFormat, file);
        
        // 変換操作を実行する
        var response = emailApi.Email.Convert(convertRequest);

        // 変換が成功した場合は成功メッセージを出力します
        if (response != null && response.Equals("OK"))
        {
            // 成功メッセージを印刷する
            Console.WriteLine("Successfully converted EML to MHT !");
            Console.ReadKey();
        }
        
        // 結果のファイルストリームをローカルドライブに保存する
        saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
    }
}catch (Exception ex)
{
    // コンソールに例外を出力する
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// 出力をシステムドライブに保存するカスタムメソッド
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}
EMLからMHTへのプレビュー

画像 4: EML から MHT への変換プレビュー。

上記の例で使用したファイルは、sample.emlおよびconverted.mhtからダウンロードできます。

cURL を使用して EML を MHT に変換する

Aspose.Email CloudはRESTアーキテクチャに従って開発されているため、cURLコマンドで簡単にアクセスできます。ターミナルアプリケーション/コマンドプロンプトを使用してAPIにアクセスします。最初のステップは、Aspose.Cloudダッシュボードで指定されたクライアント資格情報に基づいてJWTアクセストークンを生成することです。JWTトークンを生成するには、次のコマンドを実行してください。

curl -v "https://api.aspose.cloud/connect/token" \
 -X POST \
 -d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Accept: application/json"

ここでは、cURL コマンドを使用して、クラウド ストレージにすでに存在する .eml ファイルを MHTML 形式に変換する手順について説明します。出力は、-o パラメータを使用してシステムに保存されます。

curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Mhtml" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o resultant.mht

ローカル ドライブからアップロードする .eml ファイルの変換を実行する必要がある場合は、次の cURL コマンドを使用してみてください。

curl -X PUT "https://api.aspose.cloud/v4.0/email/convert?fromFormat=Eml&toFormat=Mhtml" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d @sample.eml \
-o converted.mht

結論

この記事では、一般的な電子メール形式の処理のための Aspose.Email Cloud の機能について説明しました。API を使用すると、電子メール メッセージにレッド フラグを適用したり、電子メールの添付ファイルを適用したり、電子メールの添付ファイルをダウンロードしたりする電子メール操作アプリケーションを作成できます。C# .NET と cURL コマンドを使用して EML ファイルを MHT に変換する手順について説明しました。さらに、.NET Cloud SDK は MIT ライセンスに従って開発されています。完全に無料でダウンロードしてカスタマイズできます。完全なソース コードは GitHub で入手できます。

また、クラウド API の Swagger ビュー も提供しており、Web ブラウザ内で API をテストすることができます。また、問題が発生した場合やご質問がある場合は、無料カスタマー サポート フォーラム からお気軽にお問い合わせください。

関連記事

詳細については、次のリンクにアクセスすることをお勧めします。