Searching Messages
Make sure you're able to handle multiple SEARCH replies returning messages non-ordered:
1 UID SEARCH ALL * SEARCH 5 2 * SEARCH 1 6 1 OK
When searching non-ASCII text, you'll have to specify CHARSET parameter. There is no way to list supported charsets, but you do get a [BADCHARSET] tag if the used charset isn't supported. So you can only guess. UTF-8 should be supported by all servers nowadays, and there probably isn't much point in trying to guess any others.
8bit parameters must be sent only using literals:
1 SEARCH CHARSET UTF-8 TEXT "pää" 1 BAD 8bit text in quoted string. 2 SEARCH CHARSET UTF-8 TEXT {5} + OK pää * SEARCH 3 2 OK