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