Hantera digitalt signerade meddelanden
Aspose.Email implementerar hela S/MIME‑e‑postobjektalgoritmen. Detta ger API:t full möjlighet att lägga till digitala signaturer i e‑postmeddelanden, bevara dem vid konvertering mellan format, ta bort dem osv.
Bifoga en signatur till ett e‑postmeddelande
Den SecureEmailManager.attachSignature metod låter dig bifoga digitala signaturer till e‑postmeddelanden. Efter att signaturen har bifogats, verifiera resultaten via egenskaper som IsSigned, MessageClass, samt detaljer för bifogning.
Du kan tillhandahålla ett MailMessage eller MapiMessage, ett privat certifikat och signaturalternativ för att anpassa signaturbifogningsprocessen med SignatureOptions klass som låter användare ange olika alternativ för signaturbifogning, inklusive fristående eller icke‑fristående signaturer.
Följande kodexempel visar hur du läser in ett meddelande från en fil, bifogar en fristående och en icke‑fristående digital signatur med ett privat certifikat, och sedan kontrollerar om signaturerna bifogades korrekt.
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.");
}
Bevara signatur vid konvertering från EML till MSG
Aspose.Email bevarar den digitala signaturen vid konvertering från EML till MSG. Följande kodexempel visar hur du konverterar från EML till 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());
Ta bort signatur från en Outlook‑meddelandefil
Om du behöver ta bort signaturen från ett meddelande i MAPI‑format, till exempel av kompatibilitetsskäl, erbjuder Aspose.Email MapiMessage.removeSignature metod och den MapiMessage.isSigned egenskap.
Följande kodexempel visar hur du läser in ett MAPI‑meddelande från en fil, kontrollerar om det är digitalt signerat, och i så fall skapar ett nytt meddelande utan den digitala signaturen:
MapiMessage msg = MapiMessage.load(fileName);
if (msg.isSigned()) {
MapiMessage unsignedMsg = msg.removeSignature();
}
Konvertera S/MIME‑meddelanden från MSG till EML
Aspose.Email bevarar den digitala signaturen vid konvertering från MSG till EML, som visas i följande kodexempel.
// 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");
Dekryptera en MSG‑fil med certifikat
Om du har krypterade MAPI‑meddelanden och behöver dekryptera dem med den privata nyckeln som lagras i ett certifikat, kan följande funktioner i Aspose.Email vara användbara:
- MapiMessage.isEncrypted - Hämtar ett värde som indikerar om meddelandet är krypterat.
- MapiMessage.decrypt() - Avkrypterar detta meddelande (metoden söker i den aktuella användarens och datorns My‑lagring efter lämpligt certifikat och privat nyckel).
- MapiMessage.decrypt(X509Certificate2 certificate) - Avkrypterar detta meddelande med certifikat.
Följande kodexempel visar hur man arbetar med krypterade MAPI‑meddelanden:
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");
}