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:

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");
}