fetchRecentMessages method

Future<FetchImapResult> fetchRecentMessages({
  1. int messageCount = 30,
  2. String criteria = '(FLAGS BODY[])',
  3. Duration? responseTimeout,
})

Fetches the specified number of recent messages by the specified criteria.

messageCount optional number of messages that should be fetched, defaults to 30.

criteria optional fetch criteria of the requested elements, e.g. '(ENVELOPE BODY.PEEK[])'. Defaults to '(FLAGS BODY[])'.

Specify a responseTimeout when a response is expected within the given time.

Implementation

Future<FetchImapResult> fetchRecentMessages({
  int messageCount = 30,
  String criteria = '(FLAGS BODY[])',
  Duration? responseTimeout,
}) {
  final box = _selectedMailbox;
  if (box == null) {
    throw InvalidArgumentException(
      'No mailbox selected - call select() first.',
    );
  }
  final upperMessageSequenceId = box.messagesExists;
  var lowerMessageSequenceId = upperMessageSequenceId - messageCount;
  if (lowerMessageSequenceId < 1) {
    lowerMessageSequenceId = 1;
  }

  return fetchMessages(
    MessageSequence.fromRange(
      lowerMessageSequenceId,
      upperMessageSequenceId,
    ),
    criteria,
    responseTimeout: responseTimeout,
  );
}