Please note the server response to a SEARCH
command is only collection of UniqueIds (or SequenceNumbers), but the imap.Search()
method do more than just the SEARCH
command. It depends which ImapListFields
you want to receive.
If you want to receive only ImapListFields.UniqueId
or only ImapListFields.SequenceNumber
the imap.Search()
method only parses the response of the SEARCH
command.
If you want to receive more than ImapListFields.UniqueId
the imap.Search()
method requests two commands. The SEARCH
command at first and then appropriate FETCH
command according to the SEARCH
response and a value of the ImapListFields
parameter.
Please compare the log file of the imap.Search(ImapListFields.UniqueId, ImapSearchParameter.All)
and the imap.Search(ImapListFields.Envelope | ImapListFields.Body, ImapSearchParameter.All)
calls.
Therefore the code above doesn't do repetitive actions. It decreases server load.