searchMessages method
Future<SearchImapResult>
searchMessages({
- String searchCriteria = 'UNSEEN',
- List<
ReturnOption> ? returnOptions, - Duration? responseTimeout,
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.
This request times out after the specified responseTimeout
Implementation
Future<SearchImapResult> searchMessages({
String searchCriteria = 'UNSEEN',
List<ReturnOption>? returnOptions,
Duration? responseTimeout,
}) {
final parser =
SearchParser(isUidSearch: false, isExtended: returnOptions != null);
final buffer = StringBuffer('SEARCH ');
if (returnOptions != null) {
buffer
..write('RETURN (')
..write(returnOptions.join(' '))
..write(') ');
}
buffer.write(searchCriteria);
final cmdText = buffer.toString();
buffer.clear();
final searchLines = cmdText.split('\n');
final cmd = searchLines.length == 1
? Command(
cmdText,
writeTimeout: defaultWriteTimeout,
responseTimeout: responseTimeout,
)
: Command.withContinuation(
searchLines,
writeTimeout: defaultWriteTimeout,
responseTimeout: responseTimeout,
);
return sendCommand<SearchImapResult>(cmd, parser);
}