uidSearchMessages method

Future<SearchImapResult> uidSearchMessages([
  1. String searchCriteria = 'UNSEEN',
  2. List<ReturnOption>? returnOptions
])

Searches messages by the given searchCriteria like 'UNSEEN' or 'RECENT' or 'FROM sender@domain.com'. Is only supported by servers that expose the UID capability. When augmented with zero or more returnOptions, requests an extended search.

Implementation

Future<SearchImapResult> uidSearchMessages(
    [String searchCriteria = 'UNSEEN', List<ReturnOption>? returnOptions]) {
  final hasReturnOptions = returnOptions != null;
  final parser = SearchParser(true, hasReturnOptions);
  Command cmd;
  final buffer = StringBuffer('UID SEARCH ');
  if (hasReturnOptions) {
    buffer..write('RETURN (')..write(returnOptions!.join(' '))..write(') ');
  }
  buffer.write(searchCriteria);
  final cmdText = buffer.toString();
  buffer.clear();
  final searchLines = cmdText.split('\n');
  if (searchLines.length == 1) {
    cmd = Command(cmdText);
  } else {
    cmd = Command.withContinuation(searchLines);
  }
  return sendCommand<SearchImapResult>(cmd, parser);
}