ユーティリティ機能 - MailMessage

メッセージの暗号化と復号化

Aspose.Email はメールメッセージの暗号化と復号化機能を提供します。このトピックでは、既存または新規のメッセージをロードし、以下を使用して暗号化する方法を示します。 MailMessageencrypt() および decrypt() メソッドは適用された効果のために MailMessage オブジェクトを返し、暗号化/復号化時には注意が必要です。メッセージの暗号化および復号化は以下の手順で行われます:

  1. 新しいメッセージを作成するか、既存のものをロードする
  2. 証明書ファイルを使用してメッセージを暗号化する
  3. メッセージを送信するか保存する
  4. 必要に応じてメッセージを復号化する

以下のコードスニペットは、メッセージを暗号化および復号化する方法を示しています。

メッセージの暗号化状態の確認

Aspose.Email MailMessage このクラスは、メッセージが暗号化されているかどうかを確認できるようにします。 isEncrypted MailMessage のプロパティにより、以下のコードサンプルのようにこれを確認できます。

X509Certificate を使用したメッセージ暗号化

Aspose.Email は X509Certificate を使用した暗号化メッセージを扱うための API を提供します:

MailMessage このクラスは、メッセージ暗号化を扱うための以下のメソッドを持ちます:

Aspose.Email のロケールオプションを設定

使用できます LocaleOptions 未認識のデフォルトロケールの場合に、Aspose Email ライブラリに最適なロケールを設定するクラスです。タスクを実行するために以下のメソッドを提供します:

  • getLocale() - Aspose.Email のデフォルトロケールを返します。
  • setLocale(Locale locale) および setLocale(String localeName) - Aspose.Email のデフォルトロケールを設定します。
  • clear() - Aspose.Email のデフォルトロケールをクリアします。Java のデフォルトロケールとして使用されます。

以下のコードサンプルは、指定されたロケール設定を使用してファイルからメールメッセージをロードする方法を示しています:

final Locale locale = new Locale("en", "DE");
Locale.setDefault(locale);

// set Locale for Aspose Email lib
LocaleOptions.setLocale("en-US");
// or
//LocaleOptions.setLocale(new Locale("en", "US"));

MailMessage.load("document.msg");

このコードは、アプリケーションと Aspose.Email ライブラリが言語、国、および文化的慣習を処理するために指定されたロケールを使用することを保証します。

TNEF 添付ファイルを含む MailMessage

Transport Neutral Encapsulation Format(TNEF)は、Microsoft Outlook および Microsoft Exchange Server が使用する独自のメール添付形式です。Aspose.Email API を使用すると、TNEF 添付ファイルを含むメールメッセージを読み取り、その内容を変更できます。その後、メールは通常のメールとして、または同じ形式で TNEF 添付ファイルを保持したまま保存できます。本記事では、TNEF 添付ファイルを含むメッセージを扱うためのさまざまなコードサンプルを示します。

TNEF 添付ファイルを保持したままメッセージを読む

以下のコードスニペットは、TNEF 添付ファイルを保持したままメッセージを読み取る方法を示しています。

TNEF 添付ファイルのリソースを更新し、TNEF 形式を保持

以下のコードスニペットは、TNEF 添付ファイルのリソースを更新し、TNEF 形式を保持する方法を示しています。

TNEF を含むメインメッセージに新しい添付ファイルを追加

MSG から TNEF EML を作成

Outlook MSG には、テーブルやテキストスタイルなどの情報が含まれることがありますが、EML に変換すると乱れる可能性があります。このような MSG ファイルから TNEF メッセージを作成することで、書式を保持し、メールクライアント経由で書式を保持したまま送信することができます。 

TNEF を作成するには、以下のサンプルコードを使用できます。

メッセージが TNEF かどうかを検出

バウンスメッセージの処理

受信者に送信されたメッセージは、無効な受信者アドレスなどの理由でバウンスすることが非常に一般的です。Aspose.Email API には、そのようなメッセージを処理し、バウンスメールか通常のメールかを確認する機能があります。 バウンス確認 メソッド( MailMessage このクラスは、メールメッセージがバウンスメールである場合に有効な結果を返します。

この記事では、以下の使用方法を示します。 BounceResult このクラスは、メッセージがバウンスメールかどうかをチェックする機能を提供します。また、受信者、実行されたアクション、通知の理由に関する詳細情報も提供します。

例外を無視する

ライブラリは以下を提供します ExceptionManager 例外を無視する機能をアプリケーションに実装するためのクラスです。以下のコードスニペットは、例外処理のコールバックを設定する方法を示しています:

 ExceptionManager.setIgnoreExceptionsHandler( new IgnoreExceptionsCallback() {

   //exception path: {Module}\{Method}\{Action}\{GUID}

   //example: MailMessage\Load\DecodeTnefAttachment\64149867-679e-4645-9af0-d46566cae598

   public boolean invoke(AsposeException ex, String path) {

       //Ignore all exceptions on MailMessage.Load

       return path.equals("MailMessage\\Load");

   }

});

または 代替手段 を使用:

 ExceptionManager.setIgnoreAll(true);

また、無視された 例外ログ のコールバックを設定できます:

ExceptionManager.setIgnoreExceptionsLogHandler( new IgnoreExceptionsLogCallback() {

   public void invoke(String message) {

        System.out.println("=== EXCEPTION IGNORED === " + message);

   }

});

ユーザーには例外を無視できることがエラーメッセージで通知されます。例:

メッセージの例外:

AsposeArgumentException: properties should not be empty.

例外を無視して処理を続行したい場合は、次を使用できます:

ExceptionManager.getIgnoreList().add("MailMessage\\Load\\DecodeTnefAttachment\\64149867-679e-4645-9af0-d46566cae598")

Invalid TNEF Attachment will be interpreted as regular attachment.

ベイジアン スパムアナライザー

Aspose.Email はベイズスパムアナライザーを使用したメールフィルタリング機能を提供します。機能は次のとおりです。 SpamAnalyzer この目的のためのクラスです。本記事では、単語データベースに基づいてスパムと通常のメールを区別するフィルタのトレーニング方法を示します。

EML メッセージから前文とエピローグを取得する

MIME 形式では、前文 はヘッダーの後、最初のマルチパート境界の前に現れるテキストです。エピローグ は最後の境界の後、メッセージの終わりの前に現れるテキストです。このテキストは通常、メールリーダーではユーザーに表示されませんが、一部の MIME 実装では、MIME に準拠しないプログラムでメッセージを読む受信者向けに注釈を挿入するために使用されることがあります。

以下のコードスニペットは、対応するメソッドを使用して EML メッセージから前文とエピローグを取得する方法を示しています。 MailMessage クラス:

// Gets or sets a preamble text.
public String getPreamble, setPreamble

// Gets or sets an epilogue text.
public String getEpilogue, setEpilogue