Lua
Lua
Send Signed and Encrypted EDI Email (EDIFACT)
Demonstrates how to send a signed and encrypted EDI email (EDIFACT email).Chilkat Lua Downloads
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()
-- Create a new email object
local email = chilkat.Email.new()
-- Build the basic EDI email where the body is the EDIFACT message:
local ediMsg = "UNB+IATB:1+6XPPC ..."
local name = "something"
local filename = "something"
local charset = "iso-8859-1"
email:set_edifact_body(ediMsg, name, filename, charset)
email.subject = "This is the subject"
email.from = "Chilkat Admin <admin@chilkatsoft.com>"
local success = email:add_to("Chilkat Support", "support@chilkatsoft.com")
-- Indicate that the email should be sent signed.
email.send_signed = true
-- Tell the mailman to use a PFX file as a source for locating
-- the certificate and private key required for signing.
-- The certificate chosen for signing will be the one that
-- matches the sender's email address, which also has
-- a private key. All intermediate certs in the chain of
-- authentication, up to and including the root, will
-- be included in the signature.
success = mailman:add_pfx_source_file("/pfx_files/myCertAndPrivateKey.pfx", "secret")
if not success then
print(mailman.last_error_text)
return
end
-- Load the .cer file into a certificate object.
-- When sending S/MIME encrypted email, it is the recipient's
-- certificate that is used for encryption. Only the public key
-- is needed to encrypt. The recipient is the only
-- one possessing the private key, and therefore is the only
-- one able to decrypt.
local cert = chilkat.Cert.new()
success = cert:load_from_file("/certs/recipientCert.cer")
if not success then
print(cert.last_error_text)
return
end
-- Indicate that the email is to be sent encrypted.
email.send_encrypted = true
-- Indicate that we want 192-bit 3DES encryption:
email.pkcs7_crypt_alg = "3des"
email.pkcs7_key_length = 192
-- Specify the certificate to be used for encryption.
success = email:set_encrypt_cert(cert)
-- Tell the mailman to use an opaque signature (as opposed to a detached signature)
mailman.opaque_signing = true
-- SMTP server (use your settings and refer to the online
-- reference documentation for more options)
mailman.smtp_host = "smtp.mymailserver.com"
mailman.smtp_username = "myLogin"
mailman.smtp_password = "myPassword"
mailman.smtp_port = 587
mailman.start_tls = true
-- Send the signed/encrypted EDI email
success = mailman:send_email(email)
if not success then
print(mailman.last_error_text)
else
print("Mail Sent!")
end