Sample code for 30+ languages & platforms
React Native

IMAP Capability

Demonstrates how to send the CAPABILITY command to request a listing of capabilities that the IMAP server supports. A capability name which begins with "AUTH=" indicates that the server supports that particular authentication mechanism.

Chilkat React Native Downloads

React Native
import { Imap } from '@chilkat/react-native'

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

  const imap = new Imap();

  // Use TLS
  imap.ssl = true;
  imap.port = 993;
  try {
    await imap.connectAsync('MY-IMAP-DOMAIN');
  } catch {
    console.log(imap.lastErrorText);
    return;
  }

  // Authenticate
  try {
    await imap.loginAsync('MY-IMAP-LOGIN', 'MY-IMAP-PASSWORD');
  } catch {
    console.log(imap.lastErrorText);
    return;
  }

  // Get the list of capabilities:
  const caps = await imap.capabilityAsync();
  console.log(`Capabilities: ${caps}`);

  // Here is an example of the string returned:
  // * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 
  // UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT APPENDLIMIT=35882577
  // LIST-EXTENDED LIST-STATUS

  // Chilkat v9.5.0.58 introduces the HasCapability method to
  // check to see if a particular capability exists:
  if (imap.hasCapability('QUOTA', caps)) {
    console.log('IMAP server supports the QUOTA extension.');
  }

  if (imap.hasCapability('IDLE', caps)) {
    console.log('IMAP server supports IDLE.');
  }

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