start method

Future<void> start()

Implementation

Future<void> start() async {
  // IMAPS 993 (implicit TLS)
  var secureServer = _secureServer = await SecureServerSocket.bind(
    InternetAddress.anyIPv4,
    imapsPort,
    securityContext,
  );

  _log.info('IMAPS Server listening on port: $imapsPort');

  secureServer.listen((socket) {
    _IMAPClientHandler(
      serverPort: imapsPort,
      socket: socket,
      hostname: hostname,
      mailboxStore: mailboxStore,
      authProvider: authProvider,
      securityContext: securityContext,
      imaps: true,
    ).handle();
  });

  // IMAP 143 (plaintext + STARTTLS)
  var server = _server = await ServerSocket.bind(
    InternetAddress.anyIPv4,
    imapPort,
  );

  _log.info('IMAP Server listening on port: $imapPort');

  server.listen((socket) {
    _IMAPClientHandler(
      serverPort: imapPort,
      socket: socket,
      hostname: hostname,
      mailboxStore: mailboxStore,
      authProvider: authProvider,
      securityContext: securityContext,
      imaps: false,
    ).handle();
  });
}