You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

176 lines
5.6 KiB

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>papero</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/sky.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown>
# Papero
Un coso per le email
</section>
<section>
<section data-markdown>
# Riassuntone sulle email
</section>
<section data-markdown>
# SMTP
- protocollo con cui i server mail parlano tra di loro
- protocollo con cui un client delega un server per consegnare una mail
</section>
<section data-markdown>
# POP(3)
- protocollo con cui un client chiede delle email ad un server e le salva in locale
</section>
<section data-markdown>
# 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
</section>
</section>
<section>
<section data-markdown>
### Lo stack
![The local software stack](./data/mailstack.drawio.svg)
[https://github.com/boyska/mailbundle](https://github.com/boyska/mailbundle)
</section>
<section data-markdown>
### Con papero
![The local software stack](./data/mailstack-papero.drawio.svg)
[https://github.com/boyska/mailbundle](https://github.com/boyska/mailbundle)
</section>
</section>
<section>
<section data-markdown>
### Anatomia di papero
![Le due cli](./data/papero-cli.png)
[https://git.sr.ht/~blallo/papero](https://git.sr.ht/~blallo/papero)
</section>
<section data-markdown>
Due eseguibili:
- `papero`: per interagire senza stato con un server IMAP
- `paperod`: un demone, per sincronizzare delle cartelle IMAP remote con una Maildir locale
</section>
<section data-markdown>
### `papero`
```
$ papero --help
USAGE: papero [--config --debug --account] SUBCOMMAND [subcommand opts]
SUBCOMMANDS:
get
set
add
del
```
</section>
<section data-markdown>
### `papero`
Fin'ora:
- `get`: `content`, `subscriptions`, `mailboxes`, `messages`
- `set`: `flags`
- `add`: `message`, `mailbox`
- `del`: `message`, `mailbox`
</section>
</section>
<section>
<section data-markdown>
# `paperod`
</section>
<section data-markdown>
Sincronizza in locale su formato `Maildir`:
- `new`
- `cur`
- `tmp`
(il percorso è configurabile per account)
</section>
<section data-markdown>
Copia dal server in locale:
- `new` ⬅️
- `cur`
- `tmp`
ciclicamente (ogni 30s, per ora)
</section>
<section data-markdown>
Copia da locale sul server:
- `new`
- `cur` ⬅️
- `tmp`
ogni volta che un file viene cambiato in `cur`
</section>
</section>
<section>
<section data-markdown>
### Prossimi passi
- Inserire in `mailbundle`
- Rendere intervallo di sync configurabile
</section>
<section data-markdown>
### 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 (?)
</section>
<section data-markdown>
### Poi (`papero`)
- creare e rimuovere subscriptions
- muovere (`mv`) o copiare (`cp`) email tra mailbox diverse
</section>
<section data-markdown>
### Collaborare?
# Volentieri!
</section>
<section data-markdown>
### Collaborare?
## `blallo@autistici.org`
</section>
<section data-markdown>
### Collaborare?
## `git format-patch`
</section>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});
</script>
</body>
</html>
<!-- vim: et ts=2 sts=0 sw=0