デジタル署名付きメッセージの管理
Aspose.Email は完全な S/MIME 電子メールオブジェクトアルゴリズムを実装しています。これにより、API はメールメッセージにデジタル署名を追加し、フォーマット間の変換時にそれらを保持し、削除するなどの完全な機能を提供します。
メールに署名を添付
この SecureEmailManager.attachSignature メソッドはメールメッセージにデジタル署名を添付することを可能にします。署名を添付した後、次のようなプロパティで結果を検証してください: IsSigned, MessageClass、添付の詳細。
MailMessage または MapiMessage、プライベート証明書、署名オプションを提供して、署名添付プロセスを次でカスタマイズできます: SignatureOptions 署名の添付オプション(分離型または非分離型署名を含む)を指定できるクラスです。
以下のコードサンプルは、ファイルからメッセージをロードし、プライベート証明書を使用して分離型および非分離型のデジタル署名を付与し、署名が正常に付与されたかを確認する方法を示します。
String fileName = "message.msg";
String privateCertFile = "certFile.pfx";
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "password");
MapiMessage msg = MapiMessage.load(fileName);
SignatureOptions opt = new SignatureOptions();
opt.setDetached(true);
MapiMessage signedDetached = new SecureEmailManager().attachSignature(msg, privateCert, opt);
if (signedDetached.isSigned()) {
System.out.println("Detached Signature Attached Successfully.");
}
opt.setDetached(false);
MapiMessage signedNonDetached = new SecureEmailManager().attachSignature(msg, privateCert, opt);
if (signedNonDetached.isSigned()) {
System.out.println("Non-Detached Signature Attached Successfully.");
}
EML から MSG への変換時に署名を保持
Aspose.Email は EML から MSG への変換時にデジタル署名を保持します。以下のコードスニペットは、EML から MSG へ変換する方法を示しています。
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Load mail message
MailMessage message = MailMessage.load(dataDir + "Message.eml", new EmlLoadOptions());
// Save as MSG
message.save(dataDir + "ConvertEMLToMSG_out.msg", SaveOptions.getDefaultMsgUnicode());
Outlook メッセージファイルから署名を削除
互換性のためなど、MAPI 形式のメッセージから署名を削除する必要がある場合、Aspose.Email は以下を提供します: MapiMessage.removeSignature メソッドと MapiMessage.isSigned プロパティです。
以下のコードスニペットは、ファイルから MAPI メッセージをロードし、デジタル署名されているかを確認し、もし署名されていればデジタル署名のない新しいメッセージを作成する方法を示しています:
MapiMessage msg = MapiMessage.load(fileName);
if (msg.isSigned()) {
MapiMessage unsignedMsg = msg.removeSignature();
}
MSG から EML への S/MIME メッセージ変換
以下のコードスニペットに示すように、Aspose.Email は MSG から EML への変換時にデジタル署名を保持します。
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
MailMessage msg = MailMessage.load(dataDir + "message.eml");
MapiMessage mapi = MapiMessage.fromMailMessage(msg, new MapiConversionOptions(OutlookMessageFormat.Unicode));
// Save File to disk
mapi.save(dataDir + "ConvertMIMEMessagesFromMSGToEML_out.msg");
証明書で MSG ファイルを復号
暗号化された MAPI メッセージ(encrypted MAPI messages)があり、証明書に保存されたプライベートキーを使用して復号する必要がある場合、以下の Aspose.Email の機能が役立ちます:
- MapiMessage.isEncrypted - メッセージが暗号化されているかどうかを示す値を取得します。
- MapiMessage.decrypt() - このメッセージを復号化します(メソッドは現在のユーザーとコンピューターの My ストアから適切な証明書と秘密鍵を検索します)。
- MapiMessage.decrypt(X509Certificate2 certificate) - 証明書でこのメッセージを復号化します。
以下のコードスニペットは、暗号化された MAPI メッセージを扱う方法を示しています:
X509Certificate2 privateCert = new X509Certificate2("privateCertFile", "password");
MapiMessage msg = MapiMessage.load("encrypted.msg");
if (msg.isEncrypted()) {
MapiMessage decryptedMsg = msg.decrypt(privateCert);
//MapiMessage decryptedMsg = msg.decrypt(/*byte[]*/rawPrivateCert, "password");
}