Správa digitálně podepsaných zpráv

Aspose.Email implementuje kompletní algoritmus objektu e‑mailu S/MIME. To dává API úplnou kontrolu nad přidáváním digitálních podpisů k e‑mailovým zprávám, jejich zachováváním při konverzi mezi formáty, odstraňováním a podobně.

Připojit podpis k e‑mailu

The SecureEmailManager.attachSignature metoda umožňuje připojit digitální podpisy k e‑mailovým zprávám. Po připojení podpisu ověřte výsledky pomocí vlastností jako IsSigned, MessageClass, a podrobnosti o příloze.

Můžete poskytnout MailMessage nebo MapiMessage, soukromý certifikát a možnosti podpisu k přizpůsobení procesu připojení podpisu pomocí SignatureOptions třída, která umožňuje uživatelům specifikovat různé možnosti pro připojení podpisu, včetně oddělených nebo neoddělených podpisů.

Následující ukázka kódu vám ukáže, jak načíst zprávu ze souboru, připojit oddělený i neoddělený digitální podpis pomocí soukromého certifikátu a následně zkontrolovat, zda byly podpisy úspěšně připojeny.

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

Zachování podpisu při konverzi z EML do MSG

Aspose.Email zachovává digitální podpis při konverzi z EML do MSG. Následující úryvek kódu vám ukazuje, jak provést konverzi z EML do 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());

Odstranění podpisu ze souboru Outlook zprávy

Pokud potřebujete odstranit podpis ze zprávy ve formátu MAPI, například z důvodů kompatibility, Aspose.Email nabízí MapiMessage.removeSignature metodu a MapiMessage.isSigned vlastnost.

Následující úryvek kódu ukazuje, jak načíst MAPI zprávu ze souboru, zkontrolovat, zda je digitálně podepsaná, a pokud ano, vytvořit novou zprávu bez digitálního podpisu:

MapiMessage msg = MapiMessage.load(fileName);

if (msg.isSigned()) {
    MapiMessage unsignedMsg = msg.removeSignature();
}

Konverze S/MIME zpráv z MSG do EML

Aspose.Email zachovává digitální podpis při konverzi z MSG do EML, jak je ukázáno v následujícím úryvku kódu.

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

Dešifrovat soubor MSG pomocí certifikátu

Pokud máte šifrované MAPI zprávy a potřebujete je dešifrovat pomocí soukromého klíče uloženého v certifikátu, mohou být užitečné následující funkce Aspose.Email:

Následující úryvek kódu ukazuje, jak pracovat s šifrovanými MAPI zprávami:

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