# Papero Un coso per le email
# Riassuntone sulle email
# SMTP - protocollo con cui i server mail parlano tra di loro - protocollo con cui un client delega un server per consegnare una mail
# POP(3) - protocollo con cui un client chiede delle email ad un server e le salva in locale
# IMAP(v4rev1) - protocollo con cui un client chiede al server, che conserva le email per lei, di leggere qualche messaggio - in generale, protocollo con cui si accede ad un albero di cartelle, in cui le email possono essere organizzate
### Lo stack ![The local software stack](./data/mailstack.drawio.svg) [https://github.com/boyska/mailbundle](https://github.com/boyska/mailbundle)
### Con papero ![The local software stack](./data/mailstack-papero.drawio.svg) [https://github.com/boyska/mailbundle](https://github.com/boyska/mailbundle)
### Anatomia di papero ![Le due cli](./data/papero-cli.png) [https://git.sr.ht/~blallo/papero](https://git.sr.ht/~blallo/papero)
Due eseguibili: - `papero`: per interagire senza stato con un server IMAP - `paperod`: un demone, per sincronizzare delle cartelle IMAP remote con una Maildir locale
### `papero` ``` $ papero --help USAGE: papero [--config --debug --account] SUBCOMMAND [subcommand opts] SUBCOMMANDS: get set add del ```
### `papero` Fin'ora: - `get`: `content`, `subscriptions`, `mailboxes`, `messages` - `set`: `flags` - `add`: `message`, `mailbox` - `del`: `message`, `mailbox`
# `paperod`
Sincronizza in locale su formato `Maildir`: - `new` - `cur` - `tmp` (il percorso è configurabile per account)
Copia dal server in locale: - `new` ⬅️ - `cur` - `tmp` ciclicamente (ogni 30s, per ora)
Copia da locale sul server: - `new` - `cur` ⬅️ - `tmp` ogni volta che un file viene cambiato in `cur`
### Prossimi passi - Inserire in `mailbundle` - Rendere intervallo di sync configurabile
### Poi (`paperod`) - Supportare connessioni via proxy (i.e. Tor) - Aggiungere filtri in locale (pipe a script/eseguibili e anche script python) - Supporare salvataggio in db `sqlite` - Permettere log in json (?)
### Poi (`papero`) - creare e rimuovere subscriptions - muovere (`mv`) o copiare (`cp`) email tra mailbox diverse
### Collaborare? # Volentieri!
### Collaborare? ## `blallo@autistici.org`
### Collaborare? ## `git format-patch`