Objective-C
Objective-C
Subscribe to Mailboxes and List Subscribed Mailboxes
See more IMAP Examples
Demonstrates how to list subscribed mailboxes, and unsubscribe/subscribe to a mailbox.Chilkat Objective-C Downloads
#import <CkoImap.h>
#import <NSString.h>
#import <CkoMailboxes.h>
BOOL success = NO;
// This example assumes 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: @"myLogin" password: @"myPassword"];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
// First examine the already subscribed mailboxes.
NSString *refName = @"";
NSString *wildcardedMailbox = @"*";
BOOL subscribed = YES;
CkoMailboxes *mboxes = [[CkoMailboxes alloc] init];
success = [imap MbxList: subscribed reference: refName mbxPattern: wildcardedMailbox mboxes: mboxes];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
int i = 0;
while (i < [mboxes.Count intValue]) {
NSLog(@"%@",[mboxes GetName: [NSNumber numberWithInt: i]]);
i = i + 1;
}
NSLog(@"%@",@"----");
// Sample output.
// INBOX
// INBOX/recent
// INBOX/misc
// INBOX/misc/solutions
// ...
// Outbox
// Deleted Items
// Sent Items
// Drafts
// Junk E-mail
// Trash
// Sent
// Templates
// Let's unsubscribe to "INBOX/misc/solutions".
success = [imap Unsubscribe: @"INBOX/misc/solutions"];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
// Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
success = [imap MbxList: subscribed reference: @"" mbxPattern: @"INBOX/misc*" mboxes: mboxes];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
i = 0;
while (i < [mboxes.Count intValue]) {
NSLog(@"%@",[mboxes GetName: [NSNumber numberWithInt: i]]);
i = i + 1;
}
NSLog(@"%@",@"----");
// Re-subscribe to "INBOX/misc/solutions".
success = [imap Subscribe: @"INBOX/misc/solutions"];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
// Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
success = [imap MbxList: subscribed reference: @"" mbxPattern: @"INBOX/misc*" mboxes: mboxes];
if (success == NO) {
NSLog(@"%@",imap.LastErrorText);
return;
}
i = 0;
while (i < [mboxes.Count intValue]) {
NSLog(@"%@",[mboxes GetName: [NSNumber numberWithInt: i]]);
i = i + 1;
}
NSLog(@"%@",@"----");
// Disconnect from the IMAP server.
success = [imap Disconnect];