searchMessages method
Future<SearchImapResult>
searchMessages([
- String searchCriteria = 'UNSEEN',
- List<
ReturnOption> ? returnOptions
Searches messages by the given searchCriteria
like 'UNSEEN'
or 'RECENT'
or 'FROM sender@domain.com'
.
When augmented with zero or more returnOptions
, requests an extended search. Note that the IMAP server needs to support ESEARCH capability for this.
Implementation
Future<SearchImapResult> searchMessages(
[String searchCriteria = 'UNSEEN', List<ReturnOption>? returnOptions]) {
final hasReturnOptions = returnOptions != null;
final parser = SearchParser(false, hasReturnOptions);
Command cmd;
final buffer = StringBuffer('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);
}