Dovecot has some worthwhile instructions here but you can also do it with openssl:
openssl s_client -connect mail.snork.ca:993 * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot (Debian) ready.
a login "username" "password" a OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY] Logged in
b select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft $Forwarded) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $Forwarded \*)] Flags permitted. * 16 EXISTS * 0 RECENT * OK [UIDVALIDITY 1669347300] UIDs valid * OK [UIDNEXT 101] Predicted next UID * OK [HIGHESTMODSEQ 283] Highest b OK [READ-WRITE] Select completed (0.001 + 0.000 secs).
c list "" * * LIST (\HasNoChildren) "." Drafts * LIST (\HasNoChildren \UnMarked) "." Spam * LIST (\HasChildren \UnMarked) "." MyShit * LIST (\HasNoChildren) "." Sent * LIST (\HasNoChildren) "." INBOX c OK List completed (0.003 + 0.000 + 0.002 secs).
d logout * BYE Logging out d OK Logout completed (0.001 + 0.000 secs). closed