onServerResponse method

void onServerResponse(
  1. List<String> responseTexts
)

Handles server responses

Implementation

void onServerResponse(List<String> responseTexts) {
  if (isLogEnabled) {
    for (final responseText in responseTexts) {
      log(responseText, isClient: false);
    }
  }
  final response = SmtpResponse(responseTexts);
  final cmd = _currentCommand;
  if (cmd != null) {
    try {
      final next = cmd.next(response);
      final text = next?.text;
      final data = next?.data;
      if (text != null) {
        writeText(text);
      } else if (data != null) {
        writeData(data);
      } else if (cmd.isCommandDone(response)) {
        if (response.isFailedStatus) {
          cmd.completer.completeError(SmtpException(this, response));
        } else {
          cmd.completer.complete(response);
        }
        //_log("Done with command ${_currentCommand.command}");
        _currentCommand = null;
      }
    } catch (exception, stackTrace) {
      log('Error proceeding to nextCommand: $exception');
      _currentCommand?.completer.completeError(exception, stackTrace);
      _currentCommand = null;
    }
  }
}