การจัดการข้อความที่มีลายเซ็นดิจิทัล
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();
}
การแปลงข้อความ S/MIME จาก MSG เป็น EML
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 ที่เข้ารหัสและต้องการถอดรหัสด้วยคีย์ส่วนตัวที่เก็บในใบรับรอง คุณลักษณะของ 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");
}