Mengelola Pesan yang Ditandatangani secara Digital
Aspose.Email mengimplementasikan algoritma objek email S/MIME lengkap. Ini memberi API kekuatan penuh untuk menambahkan tanda tangan digital ke pesan email, mempertahankannya saat mengonversi pesan antar format, menghapusnya, dll.
Lampirkan Tanda Tangan ke Email
The SecureEmailManager.attachSignature metode memungkinkan Anda melampirkan tanda tangan digital ke pesan email. Setelah melampirkan tanda tangan, verifikasi hasil melalui properti seperti IsSigned, MessageClass, dan detail lampiran.
Anda dapat menyediakan MailMessage atau MapiMessage, sertifikat pribadi, dan opsi tanda tangan untuk menyesuaikan proses lampiran tanda tangan dengan SignatureOptions kelas yang memungkinkan pengguna menentukan berbagai opsi untuk lampiran tanda tangan, termasuk tanda tangan terlepas atau tidak terlepas.
Contoh kode berikut akan menunjukkan cara memuat pesan dari file, melampirkan tanda tangan digital terlepas dan tidak terlepas menggunakan sertifikat pribadi, lalu memeriksa apakah tanda tangan berhasil dilampirkan.
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.");
}
Mempertahankan Tanda Tangan saat Mengonversi dari EML ke MSG
Aspose.Email mempertahankan tanda tangan digital saat mengonversi dari EML ke MSG. Cuplikan kode berikut menunjukkan cara mengonversi dari EML ke 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());
Menghapus Tanda Tangan dari File Pesan Outlook
Jika Anda perlu menghapus tanda tangan dari pesan dalam format MAPI, misalnya untuk keperluan kompatibilitas, Aspose.Email menawarkan MapiMessage.removeSignature metode dan MapiMessage.isSigned properti.
Cuplikan kode berikut menunjukkan cara memuat pesan MAPI dari file, memeriksa apakah itu ditandatangani secara digital, dan jika iya, membuat pesan baru tanpa tanda tangan digital:
MapiMessage msg = MapiMessage.load(fileName);
if (msg.isSigned()) {
MapiMessage unsignedMsg = msg.removeSignature();
}
Mengonversi Pesan S/MIME dari MSG ke EML
Aspose.Email mempertahankan tanda tangan digital saat mengonversi dari MSG ke EML seperti yang ditunjukkan pada cuplikan kode berikut.
// 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");
Mendekripsi File MSG dengan Sertifikat
Jika Anda memiliki pesan MAPI terenkripsi dan perlu mendekripsinya menggunakan kunci pribadi yang disimpan dalam sertifikat, fitur Aspose.Email berikut dapat berguna:
- MapiMessage.isEncrypted - Mendapatkan nilai yang menunjukkan apakah pesan terenkripsi.
- MapiMessage.decrypt() - Mendekripsi pesan ini (metode mencari di penyimpanan My pengguna dan komputer saat ini untuk sertifikat dan kunci pribadi yang sesuai).
- MapiMessage.decrypt(X509Certificate2 certificate) - Mendekripsi pesan ini dengan sertifikat.
Cuplikan kode berikut menunjukkan cara bekerja dengan pesan MAPI terenkripsi:
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");
}