Sample code for 30+ languages & platforms
Tcl

Find Certificate for Email Encryption

Demonstrates finding the recipient's certificate in the Windows certificate store and using it to send encrypted email.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set mailman [new_CkMailMan]

# Set the SMTP server.
CkMailMan_put_SmtpHost $mailman "smtp.example.com"

# Create a new email object
set email [new_CkEmail]

CkEmail_put_Subject $email "This email is encrypted"
CkEmail_put_Body $email "This is a digitally encrypted mail"
CkEmail_put_From $email "Joe <joe@example.com>"
# Emails are encrypted using the recipient's certificate.
set recipientEmailAddr "jane@example2.com"
CkEmail_AddTo $email "Jane" $recipientEmailAddr

# Indicate that the email is to be sent encrypted.
CkEmail_put_SendEncrypted $email 1

# This example demonstrates finding the email encryption certificate
# on a Windows system where the certificate is stored in the Windows 
# certificate store.

set cert [new_CkCert]

# The recipient's certificate is used to encrypt.
# (Because the recipient is the only one in possession of the private key to decrypt.)
set success [CkCert_LoadByEmailAddress $cert $recipientEmailAddr]
if {$success != 1} then {
    puts [CkCert_lastErrorText $cert]
    delete_CkMailMan $mailman
    delete_CkEmail $email
    delete_CkCert $cert
    exit
}

# Specify the certificate to be used for encryption.
set success [CkEmail_SetEncryptCert $email $cert]

set success [CkMailMan_SendEmail $mailman $email]
if {$success != 1} then {
    puts [CkMailMan_lastErrorText $mailman]
} else {
    puts "Encrypted Mail Sent!"
}


delete_CkMailMan $mailman
delete_CkEmail $email
delete_CkCert $cert