(JavaScript) S/MIME Encrypt .eml without Sending
Demonstrates how to encrypt an email using the recipient's digital certificate. This example just encrypts, and does not send the email.
var success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
var email = new CkEmail();
success = email.LoadEml("c:/temp/email/unencrypted.eml");
if (success == false) {
console.log(email.LastErrorText);
return;
}
// The email content is encrypted using AES with a 256-bit key, operating in GCM mode, which provides authenticated encryption.
email.Pkcs7CryptAlg = "aes-gcm";
email.Pkcs7KeyLength = 256;
email.OaepPadding = true;
email.OaepHash = "sha256";
email.OaepMgfHash = "sha256";
var cert = new CkCert();
success = cert.LoadFromFile("c/temps/cert/recipient.cer");
if (success == false) {
console.log(cert.LastErrorText);
return;
}
email.SendEncrypted = true;
email.SetEncryptCert(cert);
var sbSmime = new CkStringBuilder();
// The mailman object applies the encryption by rendering the email according to the instructions (property settings) provided in the email object.
// No email is sent.
var mailman = new CkMailMan();
success = mailman.RenderToMimeSb(email,sbSmime);
if (success == false) {
console.log(mailman.LastErrorText);
return;
}
success = sbSmime.WriteFile("c:/temp/encryptedEmail.eml","utf-8",false);
if (success == false) {
console.log(mailman.LastErrorText);
return;
}
console.log("Success!");
|