メールのセキュリティと暗号化
メッセージの暗号化/復号化
Aspose.Email は X509Certificates を使用してメールメッセージの暗号化と復号化を行う機能を提供します。本記事では、既存または新規メッセージをロードし、次を使用して暗号化する方法を示します。 MailMessage。 Encrypt() および Decrypt() メソッドは、 MailMessage 適用された効果のためのオブジェクトであり、メッセージの暗号化/復号化時に注意が必要です。メッセージの暗号化と復号化には以下の手順が含まれます。
- 新しいメッセージを作成するか、既存のものをロードする
- X509Certificate オブジェクトを使用して暗号化証明書をロードする
- 証明書を使用してメッセージを暗号化する
- メッセージを送信するか保存する
- 必要に応じてメッセージを復号化する
以下のコードスニペットは、メッセージを暗号化および復号化する方法を示しています。
メッセージ暗号化の検証
Aspose.Email MailMessage メッセージが暗号化されているかどうかをチェックできるクラスです。 IsEncryptedのプロパティ MailMessage 以下のコードサンプルに示すように、これを確認できます。
セキュアメールの署名チェック
この SecureEmailManager クラスは、セキュアな MailMessage オブジェクトの署名をチェックできるようにします。
この SmimeResult クラスはチェック結果を格納します。
以下のメソッドは SecureEmailManager クラスとコードスニペットにより、署名を処理できるようになります。
- SecureEmailManager.CheckSignature(MailMessage msg) メソッド。
- SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt) メソッド。
- SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) メソッド。
var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);
var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MailMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
var result = new SecureEmailManager().CheckSignature(eml, cert, store);
DKIM でメールに署名
注: この機能は .NET Framework 向けのライブラリ バージョンでのみ利用可能です。.NET Core 向けのバージョンにはこの機能はありません。
Aspose.Email は DKIM(DomainKeys Identified Mail)でメールに署名することを可能にします。これにより、組織は送信中のメッセージに対して責任を負うことができます(詳細情報)。DKIM はメールヘッダーにデジタル署名を付与し、受信者が検証できるようにします。送信者の公開鍵により、受信者は署名がメッセージ内容と一致しているかを確認できます。 DKIMSign メソッド( MailMessage メッセージに署名するための暗号化および署名情報を設定するクラスです。以下のコードスニペットは、DKIM を使用してメールに署名する方法を示します。
var eml = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text");
string privateKeyFile = "key2.pem";
RSACryptoServiceProvider rsa = PemReader.GetPrivateKey(privateKeyFile);
DKIMSignatureInfo signInfo = new DKIMSignatureInfo("test", "somedomain.com");
var signedEml = eml.DKIMSign(rsa, signInfo);