I was thinking @udan11 might be a good person to review this.
This looks good to me.
When I originally designed this, I thought about syncing multiple mailboxes at once and then decided to only implement support for one. Now, I think that could have been helpful to sync Inbox and Junk folders, have an
IncomingEmail.mailbox field and make a decision based on that.