Objective-C
Objective-C
POP3 Verify Signed (S/MIME) Email
Demonstrates how to download and verify digitally signed S/MIME email.Chilkat Objective-C Downloads
#import <CkoMailMan.h>
#import <CkoStringTable.h>
#import <CkoEmail.h>
#import <CkoCert.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoMailMan *mailman = [[CkoMailMan alloc] init];
// Set the POP3 server's hostname
mailman.MailHost = @"pop.example.com";
// Set the POP3 login/password.
mailman.PopUsername = @"myLogin";
mailman.PopPassword = @"myPassword";
CkoStringTable *stUidls = [[CkoStringTable alloc] init];
success = [mailman FetchUidls: stUidls];
if (success == NO) {
NSLog(@"%@",mailman.LastErrorText);
return;
}
CkoEmail *email = [[CkoEmail alloc] init];
CkoCert *cert = [[CkoCert alloc] init];
int count = [stUidls.Count intValue];
int i = 0;
while (i < count) {
// Download the full email.
success = [mailman FetchByUidl: [stUidls StringAt: [NSNumber numberWithInt: i]] headerOnly: NO numBodyLines: [NSNumber numberWithInt: 0] email: email];
if (success == NO) {
NSLog(@"%@",mailman.LastErrorText);
return;
}
NSLog(@"%d",i);
NSLog(@"%@%@",@"From: ",email.From);
NSLog(@"%@%@",@"Subject: ",email.Subject);
// The security layers of signed and/or encrypted emails
// are automatically "unwrapped" when loaded into
// a Chilkat email object.
// An application only needs to check to see if an email
// was received signed or encrypted, and then examine
// the success/failure. For example:
if (email.ReceivedSigned == YES) {
NSLog(@"%@",@"This email was signed.");
// Check to see if the signatures were verified.
if (email.SignaturesValid == YES) {
NSLog(@"%@",@"Digital signature(s) verified.");
NSLog(@"%@%@",@"Signer: ",email.SignedBy);
success = [email LastSignerCert: [NSNumber numberWithInt: 0] cert: cert];
if (success == NO) {
NSLog(@"%@",email.LastErrorText);
return;
}
NSLog(@"%@%@",@"Signing cert: ",cert.SubjectCN);
}
}
else {
NSLog(@"%@",@"Digital signature verification failed.");
}
i = i + 1;
}
[mailman Pop3EndSession];