2012-10-21 03:14:50 +02:00
|
|
|
<!doctype html>
|
2016-03-20 18:50:14 +01:00
|
|
|
<html>
|
2021-09-03 16:36:18 +02:00
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
|
|
|
|
|
|
<title>reveal.js</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)
|
|
|
|
</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`)
|
|
|
|
|
|
|
|
- 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>
|
2012-08-04 06:33:27 +02:00
|
|
|
</html>
|
2021-09-03 16:36:18 +02:00
|
|
|
<!-- vim: et ts=2 sts=0 sw=0
|