authenticate method

  1. @override
Future<void> authenticate(
  1. ServerConfig serverConfig, {
  2. ImapClient? imap,
  3. PopClient? pop,
  4. SmtpClient? smtp,
})
override

Implementation

@override
Future<void> authenticate(ServerConfig serverConfig,
    {ImapClient? imap, PopClient? pop, SmtpClient? smtp}) async {
  final name = userName!;
  final tkn = token!;
  switch (serverConfig.type) {
    case ServerType.imap:
      await imap!.authenticateWithOAuth2(name, tkn);
      break;
    case ServerType.pop:
      await pop!.login(name, tkn);
      break;
    case ServerType.smtp:
      await smtp!.authenticate(name, tkn, AuthMechanism.xoauth2);
      break;
    default:
      throw StateError('Unknown server type ${serverConfig.typeName}');
  }
}