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

List Yahoo Mail IMAP Mailboxes

See more Yahoo Mail Examples

List Yahoo Mail mailboxes.

Chilkat Dart Downloads

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

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  // See Get Yahoo Mail OAuth2 Access Token for Desktop App 
  // for sample code showing how to obtain a Yahoo Mail access token.

  // In this example, our access token was previously saved to the following file which contains JSON like this:
  // {
  //   "access_token": "kCVQdnOdul...LHucA--",
  //   "refresh_token": "AIenVXETSo0jklFBVkPS8vVm8E.Ej9ToRG.xDbDYmZ65WIs5t6CZhDrD",
  //   "expires_in": 3600,
  //   "token_type": "bearer",
  //   "xoauth_yahoo_guid": "HGDQCVF5JB4YDOWHITQJFBHCWA"
  // }

  final json = CkJsonObject();
  try {
    json.loadFile('qa_data/tokens/yahooMail.json');
  } on ChilkatException {
    print('Failed to load Yahoo Mail access token file.');
    return;
  }

  final accessToken = json.stringOf('access_token');

  // Do OAuth2 authentication by using the access token as the password in the Login method below...
  final imap = CkImap();

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

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

  // Indicate that XOAUTH2 authentication is to be used:
  imap.authMethod = 'XOAUTH2';

  // Login
  // Use the email address of the Yahoo Mail account that granted authorization.
  try {
    imap.login('user@yahoo.com', accessToken);
    print('Successfully authenticated with Yahoo IMAP using XOAUTH2!');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
  }

  // 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
  // Bulk Mail
  // Draft
  // Inbox
  // Inbox/emailsWithAttach
  // Inbox/test
  // Sent
  // Trash

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