Sample code for 30+ languages & platforms
Lua

Send Encrypted Email to Multiple Recipients

Demonstrates how to create and send an S/MIME encrypted email to multiple recipients. The digital certificate of each recipient is required. The encrypting/sending process uses each recipient's digital certificate (which internally contains the public key). Each recipient decrypts the received email using his/her private key.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

-- The mailman object is used for sending and receiving email.
local mailman = chilkat.MailMan.new()

-- Set the SMTP server.
mailman.smtp_host = "smtp.mymailserver.com"

-- Load each recipient's certificate into a Chilkat certificate object.
-- This example loads the certificates from files.  However, the Chilkat
-- certificate object provides other means for loading certificates,
-- such as from in-memory PEM strings, or in-memory binary DER encoded form, etc.
local cert1 = chilkat.Cert.new()
local success = cert1:load_from_file("recipient1.cer")
if not success then
    print(cert1.last_error_text)
    return
end

local cert2 = chilkat.Cert.new()
success = cert2:load_from_file("recipient2.cer")
if not success then
    print(cert2.last_error_text)
    return
end

local cert3 = chilkat.Cert.new()
success = cert3:load_from_file("recipient3.cer")
if not success then
    print(cert3.last_error_text)
    return
end

-- Create a new email object
local email = chilkat.Email.new()

email.subject = "This email is encrypted and sent to 3 recipients"
email.body = "This is an S/MIME encrypted mail sent to 3 recipients"
email.from = "Chilkat Support <support@chilkatsoft.com>"

-- Make each of the certificates available for encrypting the email
-- by calling AddEncryptCert for each.
success = email:add_encrypt_cert(cert1)
if success then
    success = email:add_encrypt_cert(cert2)
end

if success then
    success = email:add_encrypt_cert(cert3)
end

if not success then
    print(email.last_error_text)
    return
end

-- Add 3 recipients to the email (2 TO addresses, and 1 CC address)
success = email:add_to("Recipient 1", "admin@cknotes.com")
success = email:add_to("Recipient 2", "somebody001122@yahoo.com")
success = email:add_cc("Recipient 3", "somebody123xyz@gmail.com")

-- Indicate that the email is to be sent encrypted.
email.send_encrypted = true

-- Send the encrypted email...
success = mailman:send_email(email)
if not success then
    print(mailman.last_error_text)
else
    print("Encrypted Email Sent!")
end