In Emacs I use mu4e pointed at a local Maildir and sync against an imap server using mbsync (switched away from offlineimap because of UID validity issues, which is apparently offlineimap's only method of tracking messages, may be a flaw with microsoft's imap implementation, but offlineimap can't handle it).
mbsync needs (setq mu4e-change-filenames-when-moving t) so it can properly handle file moves.
Haven't used it against gmail, but because microsoft wants you using outlook only, imap is a bit buggy so you need to set PipelineDepth 1 in your .mbsyncrc IMAPAccount block because it seems that the microsoft imap server has account global variables so multiple threads/connections will step on each other.
And perversely, (setq mu4e-view-prefer-html t) has to be set because many rich html composing clients will send a text version that's completely blank, leaving you staring at a blank body if the client defaulted to text only.
You'll have to find a html rendering command that works for you. Something like (setq mu4e-html2text-command "html2text -utf8 -nobs -width 72")
Or google around for custom commands other people have published.
mbsync needs (setq mu4e-change-filenames-when-moving t) so it can properly handle file moves.
Haven't used it against gmail, but because microsoft wants you using outlook only, imap is a bit buggy so you need to set PipelineDepth 1 in your .mbsyncrc IMAPAccount block because it seems that the microsoft imap server has account global variables so multiple threads/connections will step on each other.
And perversely, (setq mu4e-view-prefer-html t) has to be set because many rich html composing clients will send a text version that's completely blank, leaving you staring at a blank body if the client defaulted to text only.
You'll have to find a html rendering command that works for you. Something like (setq mu4e-html2text-command "html2text -utf8 -nobs -width 72")
Or google around for custom commands other people have published.