Objective-C
Objective-C
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 Objective-C Downloads
#import <CkoMailMan.h>
#import <CkoCert.h>
#import <CkoEmail.h>
BOOL success = NO;
// 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.
CkoMailMan *mailman = [[CkoMailMan alloc] init];
// Set the SMTP server.
mailman.SmtpHost = @"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.
CkoCert *cert1 = [[CkoCert alloc] init];
success = [cert1 LoadFromFile: @"recipient1.cer"];
if (success != YES) {
NSLog(@"%@",cert1.LastErrorText);
return;
}
CkoCert *cert2 = [[CkoCert alloc] init];
success = [cert2 LoadFromFile: @"recipient2.cer"];
if (success != YES) {
NSLog(@"%@",cert2.LastErrorText);
return;
}
CkoCert *cert3 = [[CkoCert alloc] init];
success = [cert3 LoadFromFile: @"recipient3.cer"];
if (success != YES) {
NSLog(@"%@",cert3.LastErrorText);
return;
}
// Create a new email object
CkoEmail *email = [[CkoEmail alloc] init];
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 AddEncryptCert: cert1];
if (success == YES) {
success = [email AddEncryptCert: cert2];
}
if (success == YES) {
success = [email AddEncryptCert: cert3];
}
if (success != YES) {
NSLog(@"%@",email.LastErrorText);
return;
}
// Add 3 recipients to the email (2 TO addresses, and 1 CC address)
success = [email AddTo: @"Recipient 1" emailAddress: @"admin@cknotes.com"];
success = [email AddTo: @"Recipient 2" emailAddress: @"somebody001122@yahoo.com"];
success = [email AddCC: @"Recipient 3" emailAddress: @"somebody123xyz@gmail.com"];
// Indicate that the email is to be sent encrypted.
email.SendEncrypted = YES;
// Send the encrypted email...
success = [mailman SendEmail: email];
if (success != YES) {
NSLog(@"%@",mailman.LastErrorText);
}
else {
NSLog(@"%@",@"Encrypted Email Sent!");
}