Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

Office365 IMAP List Mailboxes

See more Office365 Examples

List the Office365 IMAP mailboxes.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // An Office365 OAuth2 access token must first be obtained prior
  // to running this code.

  // Getting the OAuth2 access token for the 1st time requires the O365 account owner's 
  // interactive authorizaition via a web browser.  Afterwards, the access token
  // can be repeatedly refreshed automatically.

  // See the following examples for getting and refreshing an OAuth2 access token

  // Get Office365 SMTP/IMAP/POP3 OAuth2 Access Token
  // Refresh Office365 SMTP/IMAP/POP3 OAuth2 Access Token

  // First get our previously obtained OAuth2 access token.
  final jsonToken = CkJsonObject();
  try {
    jsonToken.loadFile('qa_data/tokens/office365.json');
  } on ChilkatException {
    print('Failed to open the office365 OAuth JSON file.');
    return;
  }

  final imap = CkImap();

  imap.ssl = true;
  imap.port = 993;

  // Connect to the Office365 IMAP server.
  try {
    imap.connect('outlook.office365.com');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Use OAuth2 authentication.
  imap.authMethod = 'XOAUTH2';

  // Login using our username (i.e. email address) and the access token for the password.
  try {
    imap.login('OFFICE365_EMAIL_ADDRESS', jsonToken.stringOf('access_token'));
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('O365 OAuth authentication is successful.');

  // Get the list of mailboxes.
  final refName = '';
  final wildcardedMailbox = '*';
  final subscribed = false;

  final mboxes = CkMailboxes();
  try {
    imap.mbxList(subscribed, refName, wildcardedMailbox, mboxes);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  var i = 0;
  while (i < mboxes.count) {
    print(mboxes.getName(i));
    i++;
  }

  // Sample output looks like this:
  // Archive
  // Calendar
  // Calendar/Birthdays
  // Calendar/United States holidays
  // Contacts
  // Conversation History
  // Deleted Items
  // Drafts
  // INBOX
  // INBOX/abc
  // INBOX/misc
  // INBOX/misc/birdeye
  // INBOX/old
  // INBOX/old/large
  // INBOX/receipts
  // Journal
  // Junk Email
  // Notes
  // Outbox
  // RSS Subscriptions
  // Sent Items
  // Sync Issues
  // Sync Issues/Conflicts
  // Sync Issues/Local Failures
  // Sync Issues/Server Failures
  // Tasks
  // Trash

  // Disconnect from the IMAP server.
  imap.disconnect();
}