DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMailman
Variant vCert1
Handle hoCert1
Variant vCert2
Handle hoCert2
Variant vCert3
Handle hoCert3
Variant vEmail
Handle hoEmail
String sTemp1
Move False To iSuccess
// 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.
Get Create (RefClass(cComChilkatMailMan)) To hoMailman
If (Not(IsComObjectCreated(hoMailman))) Begin
Send CreateComObject of hoMailman
End
// Set the SMTP server.
Set ComSmtpHost Of hoMailman To "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.
Get Create (RefClass(cComChilkatCert)) To hoCert1
If (Not(IsComObjectCreated(hoCert1))) Begin
Send CreateComObject of hoCert1
End
Get ComLoadFromFile Of hoCert1 "recipient1.cer" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoCert1 To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatCert)) To hoCert2
If (Not(IsComObjectCreated(hoCert2))) Begin
Send CreateComObject of hoCert2
End
Get ComLoadFromFile Of hoCert2 "recipient2.cer" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoCert2 To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatCert)) To hoCert3
If (Not(IsComObjectCreated(hoCert3))) Begin
Send CreateComObject of hoCert3
End
Get ComLoadFromFile Of hoCert3 "recipient3.cer" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoCert3 To sTemp1
Showln sTemp1
Procedure_Return
End
// Create a new email object
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
Set ComSubject Of hoEmail To "This email is encrypted and sent to 3 recipients"
Set ComBody Of hoEmail To "This is an S/MIME encrypted mail sent to 3 recipients"
Set ComFrom Of hoEmail To "Chilkat Support <support@chilkatsoft.com>"
// Make each of the certificates available for encrypting the email
// by calling AddEncryptCert for each.
Get pvComObject of hoCert1 to vCert1
Get ComAddEncryptCert Of hoEmail vCert1 To iSuccess
If (iSuccess = True) Begin
Get pvComObject of hoCert2 to vCert2
Get ComAddEncryptCert Of hoEmail vCert2 To iSuccess
End
If (iSuccess = True) Begin
Get pvComObject of hoCert3 to vCert3
Get ComAddEncryptCert Of hoEmail vCert3 To iSuccess
End
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoEmail To sTemp1
Showln sTemp1
Procedure_Return
End
// Add 3 recipients to the email (2 TO addresses, and 1 CC address)
Get ComAddTo Of hoEmail "Recipient 1" "admin@cknotes.com" To iSuccess
Get ComAddTo Of hoEmail "Recipient 2" "somebody001122@yahoo.com" To iSuccess
Get ComAddCC Of hoEmail "Recipient 3" "somebody123xyz@gmail.com" To iSuccess
// Indicate that the email is to be sent encrypted.
Set ComSendEncrypted Of hoEmail To True
// Send the encrypted email...
Get pvComObject of hoEmail to vEmail
Get ComSendEmail Of hoMailman vEmail To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoMailman To sTemp1
Showln sTemp1
End
Else Begin
Showln "Encrypted Email Sent!"
End
End_Procedure