README.md 5.08 KB
Newer Older
David's avatar
David committed
1
# Lighten Mailbox (Béta) - Allégez votre boîte mail
David's avatar
David committed
2

David's avatar
David committed
3
Lighten Mailbox est une interface web qui permet de faire du ménage dans sa boîte mail. Ce ménage ce fait  soit en supprimant des vieux messages, soit en les téléchargeant au format EML ou HTML/TXT. Le ménage ce fait par critère de date (début/fin)  puis en sélectionnant les dossiers IMAP concernés.
David's avatar
David committed
4

David's avatar
David committed
5
Exemple d'utilisation : Télécharger et archiver ([exemple de rendu](https://lighten-mailbox.zici.fr/archive/example/)) ces emails vieux de 2 ans et les enregistrant sur un disque dur externe, puis (quand vous vous êtes assuré de l’intégrité des donnée) supprimer ces messages.
David's avatar
David committed
6

David's avatar
David committed
7
Instance de test : http://lighten-mailbox.zici.fr/
David's avatar
David committed
8

David's avatar
David committed
9
10
11
12
13
14
15
Exemple d'index d'archive : https://lighten-mailbox.zici.fr/archive/example/ (utilisable hors ligne, dans un navigateur internet depuis une clé usb par exemple...)

## Installation

Pré-requis

* PHP > 7.0
David's avatar
David committed
16
  * php pdo mysql
17
  * php-imap
David's avatar
David committed
18
  * php yaml
David's avatar
David committed
19
  * php cli
David's avatar
David committed
20
21
22
23
24
25
26
27
28
29
30
31
32
  * composer
    * php-mime-mail-parser
    * net_dns2
    * phpmailer
* Apache http serveur (for htaccess but nginix is possible)
* Mysql
* openssl

Télécharger le dépôt git et le rendre accessible en HTTP

Installation des dépendances php : 

```bash
David's avatar
David committed
33
34
35
#### Dépendance système (debian 10)
apt install php-imap php-yaml php-mailparse curl php-cli php-mbstring git unzip composer
cd /var/www/lighten-mailbox.zici.fr/web # Chemin de votre installation puis
David's avatar
David committed
36
#### Mail parse : 
David's avatar
David committed
37
composer require php-mime-mail-parser/php-mime-mail-parser
David's avatar
David committed
38
### net_dns2
David's avatar
David committed
39
composer require pear/net_dns2
David's avatar
David committed
40
### phpmailer
David's avatar
David committed
41
composer require phpmailer/phpmailer
David's avatar
David committed
42
```
David's avatar
David committed
43

David's avatar
David committed
44
Créer une base de donnée Mysql et y injecter le contenu de  *	*
David's avatar
David committed
45

David's avatar
David committed
46
47
48
```bash
cat SQL/lightmb.sql | mysql -u utilisateur -p base
```
David's avatar
David committed
49

David's avatar
David committed
50
Copier le fichier config.yaml
David's avatar
David committed
51

David's avatar
David committed
52
53
54
```bash
cp config.yaml_default config.yaml
```
David's avatar
David committed
55

David's avatar
David committed
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Editer le fichier config.yaml et paramétrer ce dont vous avez besoin, notaement les accès Mysql, le mailer, le répertoire de travail (minimum) :

```yaml
baseUrl: https://lighten-mailbox.zici.fr/:
[...]
db:
    dsn: 'mysql:host=localhost;dbname=lightmb'
    user: 'lightmb'
    password: '**********'
[...]
mailer:
    host: "mail.exemple.com"
    port: 587
    secure: "tls" # ssl or tls or comment for unsecure
    certverify: false
    auth: true
    username: "vous@exemple.com"
    password : "***********"
    from: "vous@exemple.com"
    replyto: "vous@exemple.com"
[...]
url: 
    archive: 'https://lighten-mailbox.zici.fr/archive/'
[...]
dir:
    absolut: '/var/www/lighten-mailbox.zici.fr/web' # Votre répertoire de travail
[...]
crypt:   # https://www.php.net/manual/fr/function.openssl-encrypt.php
    method: 'AES-128-CTR'
    key: 'LesBoitesMailsDoiventMaigrires'
    iv: 'ck98sle98zy39eft'
```

Assurez vous que le dossier "archive" soit accessible en écriture par votre serveur web :

```bash
mkdir /var/www/lighten-mailbox.zici.fr/web/archive
chown -R www-data /var/www/lighten-mailbox.zici.fr/archive/
```
David's avatar
David committed
95

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Assurez vous que le fichier de log soit créé et accessible en écriture par votre serveur web.

Exemple de fichier de config : 

```yaml
log:
    path: /var/www/lighten-mailbox.zici.fr/private/lighten.log
    level: 4
```

Créer le répertorie (un endroit non accessible sur le web de préférence), et s'assurer que votre utilisateur php (ici www-data) est accès en écriture à celui-ci :

```bash
mkdir -p /var/www/lighten-mailbox.zici.fr/private
touch /var/www/lighten-mailbox.zici.fr/private/lighten.log
chown -R www-data /var/www/lighten-mailbox.zici.fr/private/
```

Pour le daemon, le script ini.d se trouve dans *init.d/lighten-mailbox* éditer le début du script pour indiquer (a minima) : 

```bash
###### Configure THIS !!
# Chemin de l'application : 
DIR="/var/www/lighten-mailbox.zici.fr/web"
# Utilisateur qui lance le daemon (le même qui exécute php sur votre serveur web, souvent www-data)
USER="web242"
#USER="www-data" 
```
David's avatar
David committed
124

125
126
127
## Changelog

* Futur :
128
  * Orientation "serveur dédier" limiter a une liste de @domaine et ou un serveur
129
130
131
132
133
134
135
136
137
138
139
140
  * BUG index.html si eml masque lien des archives !
  * MAX usage... par IP et/ou cookies... ? (pour éviter que le service ne soit détourné)
  * Estimer temps/durée  (avant validation)
  * Prévenir de "combien de personne avant vous" avant validation et combien de temps ça va prendre (estimation possible avec le size de tout les spooler en cours + config débit download)
  * Mot de passe personnalisé sur archive (pour l'instant on met le mot de passe mail)
  * Tabulator : 
    * Faire meilleur recherche (avec OU / ET...  (plusieurs champs quoi)
    * recherche dans toutes les colonnes
    * transformer en PDF jsPDF http://tabulator.info/docs/4.5/download#pdf
    * imprimer
  * Multi serveur ?

David's avatar
David committed
141
## Licence 
David's avatar
David committed
142

David's avatar
David committed
143
By [David Mercereau](https://david.mercereau.info)  Licence : [![Créative Common Zero](https://lighten-mailbox.zici.fr/assets/img/CC-Zero-badge.svg)](https://creativecommons.org/publicdomain/zero/1.0/deed.fr) 
David's avatar
David committed
144

David's avatar
David committed
145
Theme en Wizard based on "Material Bootstrap Wizard" (free responsive Bootstrap form wizard download it on <a href="http://azmind.com"><strong>AZMIND</strong></a> !)
David's avatar
David committed
146

David's avatar
David committed
147
Les projets libre utilisé dans ce projet : 
David's avatar
David committed
148

David's avatar
David committed
149
150
* Tabulator http://tabulator.info
* Jquery