But implementing an IMAP client is vastly easier. Still frustrating, and the IMAP spec is a giant stinking turd, but most of the most horrific things in implementing an IMAP server is down to all the crap you need to support in case some weird client uses it (and one inevitably does), while a client can choose to stick to a very small subset of the spec.