## UI * [x] List `mailboxes` all in the `Email Provider`, identifying those *registered* locally. * [x] Select which to *register* or unregister for watching. * [x] List *registered* `mailboxes`. * [x] List `messages` for selected `mailbox`. * [x] Schedule `attachments` downloads. * [ ] Download `attachments` (*encrypted* & *decrypted*). ## CLI * [x] Get `mailboxes` from **[API]** then run `grab messages` job in **[API]** for each one. * [x] Get `pending attachments` jobs from **[API]** and run. ## API * [x] Grab all `mailboxes` from `Email Provider`, identifying those that are registered. * [x] Register `mailboxes` into **[database]** and grab latest `messages`. * [x] Grab new `messages` from `Email Provider` for selected `mailboxes` and store them in the `database`. * [x] Grab `messages` from **[database]** for selected `mailboxes`. * [x] Grab `attachments` from `Email Provider` for selected `messages`. * [x] Register `messages` for `attachment` job. * [x] Decrypt `attachments`. ## Workflow * **[User]** Choose `mailboxes` to register or unregister -> **[API]** Register selected `mailboxes` and get `messages` for recently registered. * **[Cron]** Get registered `mailboxes` -> **[API]** Get `messages` * **[User]** Check messages found -> **[API]** Schedule `attachments` * **[Cron]** Get `attachment download` jobs -> **[API]** grab `attachments`