Objective-C
Objective-C
Fetch Single Email by UID or Sequence Number
Assuming the UID is known, download a single email by UID from an IMAP mail server.Chilkat Objective-C Downloads
#import <CkoImap.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.
CkoImap *imap = [[CkoImap alloc] init];
// Connect to an IMAP server.
// Use TLS
imap.Ssl = YES;
imap.Port = [NSNumber numberWithInt:993];
success = [imap Connect: @"imap.example.com"];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
// Login
success = [imap Login: @"***" password: @"***"];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
// Select an IMAP mailbox
success = [imap SelectMailbox: @"Inbox"];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
CkoEmail *email = [[CkoEmail alloc] init];
int uid = 2014;
BOOL isUid = YES;
success = [imap FetchEmail: NO msgId: uid bUid: isUid email: email];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
// Display the From and Subject
NSLog(@"%@",email.FromAddress);
NSLog(@"%@",email.Subject);
// Display the Body property, which is the default body.
// If an email has an HTML body, the Body property contains
// the HTML source. Otherwise it contains the plain-text
// body.
NSLog(@"%@",@"---- EMAIL BODY ----");
NSLog(@"%@",email.Body);
NSLog(@"%@",@"--------------------");
// Display the recipients:
int j;
for (j = 0; j <= [email.NumTo intValue] - 1; j++) {
NSLog(@"%@%@%@",[email GetToName: [NSNumber numberWithInt: j]],@", ",[email GetToAddr: [NSNumber numberWithInt: j]]);
}
for (j = 0; j <= [email.NumCC intValue] - 1; j++) {
NSLog(@"%@%@%@",[email GetCcName: [NSNumber numberWithInt: j]],@", ",[email GetCcAddr: [NSNumber numberWithInt: j]]);
}
// Show the total size of the email, including body and attachments:
NSLog(@"%d",[email.Size intValue]);
// When a full email is downloaded, we would use the
// email.NumAttachments property in conjunction with the
// email.GetMailAttach* methods.
// However, when an email object contains only the header,
// we need to access the attachment info differently:
int numAttach = [[imap GetMailNumAttach: email] intValue];
NSLog(@"%d",numAttach);
for (j = 0; j <= numAttach - 1; j++) {
NSLog(@"%@",[imap GetMailAttachFilename: email attachIndex: [NSNumber numberWithInt: j]]);
int attachSize = [[imap GetMailAttachSize: email attachIndex: [NSNumber numberWithInt: j]] intValue];
NSLog(@"%@%d%@",@" size = ",attachSize,@" bytes");
}
NSLog(@"%@",@"--");
// Disconnect from the IMAP server.
success = [imap Disconnect];