Sortie de la version 1.0 d’emailPoubelle.php – email jetable auto-hébergeable

nepasjeterEdit (05/01/2014) : prise en compte des commentaires

Vous avez besoin d’un service comme jetable.org, mail-temporaire.fr…  emailPoubelle.php c’est pareil… mais en mieux (parce que « à la maison »)

emailPoubelle.php est donc une page qu’il faut typiquement inclure dans votre site. Elle permet d’administrer des adresses email (des alias plus précisément) jetable ou temporaire. Ces adresses peuvent avoir une durée de vie limitée ou non. Elles peuvent être désactivé (>/dev/null) à tout moment.

Le (petit) projet

Le plus gros changement sur version 1.0 est l’utilisation d’une base de données (sqlite, postgresql, mysql.. au choix, c’est du PDO). Mais vous pouvez continuer à utiliser la version 0.3 qui est en full plain text

Le script dépend de Postfix, un service web avec PHP,  php-pdo et (en option) de la lib pear Net_DNS2

Les fonctionnalités dans leurs grandes lignes :

  • Activer / supprimer / suspendre une adresse email
  • NoScript compatible
  • Multi-base (sqlite, postgresql, mysql.. au choix, c’est du PDO)
  • Multi-domaine compatible
  • Expiration des adresses email possible
  • Ajout d’un commentaire sur l’email poubelle
  • Email blackliste
  • Full UTF-8
  • voir le changelog…

Installation

Télécharger & décompresser les sources :

srv:~$ mkdir -p /www/emailPoubelle
srv:~$ cd /tmp
srv:~$ wget -O emailPoubelle.zip http://forge.zici.fr/p/emailpoubelle-php/source/download/master/
srv:~$ unzip emailPoubelle.zip
srv:~$ cp emailpoubelle-php-master/* /www/emailPoubelle

Configurer apache (d’autres serveur web sont compatibles) pour que le DocumentRoot  pointe dans /www/emailPoubelle/www (dans notre exemple)

Configurer Postfix :

srv:~$ vi /etc/postfix/main.cf
[...]
virtual_alias_maps = hash:/www/emailPoubelle/var/virtual
srv:~$ touch /www/emailPoubelle/var/virtual
srv:~$ postmap /www/emailPoubelle/var/virtual
srv:~$ chown www-data /www/emailPoubelle/var/virtual
srv:~$ chown www-data /www/emailPoubelle/var/virtual.db

Ajouter dans le fichier /etc/aliases le devnull (pour la fonction de suspension de l’adresse email)

srv:~$ echo "devnull:/dev/null" >> /etc/aliases
srv:~$ newaliases

32 réflexions au sujet de « Sortie de la version 1.0 d’emailPoubelle.php – email jetable auto-hébergeable »

  1. Merci pour emailPoubelle !

    La copie du kit doit être récursive :

    cp -r emailpoubelle-php-master/* /www/emailPoubelle

    Tu écris qu’il faut ajouter dans /etc/alias le devnull, c’est dans /etc/aliases, comme le montre bien ta ligne de commande.

    README.md doit aussi être corrigé. ;o)

  2. Merci pour ce script.

    Par rapport à ton tuto il y a un petit soucis sur les path.

    Dans la conf on a
    define('DATA', '../var');
    Qui est utlisé par
    define('FICHIERALIAS', DATA.'/virtual');
    Hors dans ton guide tu les place dans le dossier postfix et pas var:
    touch /www/emailPoubelle/postfix/virtual

    Ou alors j’ai loupé un truc.
    Pour ma part j’ai tout mis dans postfix et rulez.

  3. Bonjour,Merci pour ce tuto.N’étant pas expert linux (…) j’ai un petit problème.Lorsque j’accède à l’interface ( dans /emailPoubelle/www/)J’ai cette erreur : » » » Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter l’administrateur «  » »Est ce un problème de droit ? Comment le savoir ?Merci.

  4. @Philippe, fais comme indique Sutunam : dans le fichier conf-dist.php, modifie define(‘DATA’, ‘../var’); par define(‘DATA’, ‘../postfix’);
    Et déplace les deux fichiers aliasdeny.txt  et blacklist.txt de var dans postfix.

    Ça devrait fonctionner ensuite.

     

  5. Salut,
    Meric pour le script, je viens de faire l’installation en suivant les recommandations, j’ai connexion à la base could not find driver

    Si vous avez une idée je suis preneur.

    Badmaniak.

  6. Bonjour David,

    Décidément, entre le script duplicity/ovh et celui-ci, mercereau.info va entrer dans ma liste des incontournables. Un grand merci!

    Le hasard faisant bien les choses, je venais d’installer pookmail (un vieux mais efficace email poubelle en perl).

    Deux petites suggestions pour emailPoubelle:
    – l’une, simple, pouvoir assigner à un email jetable un email de forward, car penser à aller vérifier sa liste d’emails jetables ne va pas toujours de soi.
    – l’autre, un peu plus lourde, rajouter de l’authentification pour gérer les emails jetables (ou alors on délègue ça au site hébergeant ton script).

    Merci encore pour le partage
    Kriss

    1. Bonjour Kriss & merci !

      Je n’ai pas bien compris ton premier point d’amélioration.. C’est quoi pour toi un email de forward ? (bref si tu peux développer, toutes les idées sont bonnes à prendre)
      Pour ton second point : je voudrais rester simple (1 script, une fonction) Je ne serais pas trop comment implémenter une gestion de l’authentification dans l’interface minimaliste actuelle. Dans quel bute tu voudrais faire ça ? Mettre des quotas d’emails poubelle par personne ? Je penses que le plus simple est de protéger ton script par un .htaccess si tu souhaite le rendre priver.

      David

  7. email de forward => avoir un champ dans le formulaire où l’on puisse rentrer un email. Si renseigné, les emails reçus sur l’adresse poubelle sont transférés à ce second mail.

    Ca revient à avoir des alias temporaires et jetables au-dessus d’un compte central, qui lui reste privé (comme le propose yahoo par ex, mais avec ses emails à soi).

    Sur yahoo (que je n’utilise plus, vu leur politique de confidentialité), j’utilisais ainsi un email (un alias) différent par site où je laissais mes coordonnées. Ca me permettait de savoir d’où venait le spam que je recevais ensuite, et aussi de désactiver de manière sélective les alias en question. Super pratique.

    Pour l’authentification, je partage ton avis.

    1. L’email de forward tel que tu me le décris c’est ce que fais déjà emailPoubelle.php. emailPoubelle.php ne crée pas de boîte, c’est un alias qui forward sur ton email « perso » (jamais visible pour le coup). Du coup, en l’occurrence ton « compte centrale » c’est ton adresse email perso.

      Ton fonctionnement avec yahoo c’est le fonctionnement que j’utilise (via emailPoubelle) : un alias poubelle créé par site ou les emails sont forwardé sur mon email perso. Quand je trouve un spammeur je supprime l’emailPoubelle via l’interface et je ne reçois plus d’email de ce site.

      Toujours peur qu’on ne ce soit pas compris… Si c’est le cas on s’appelle si tu veux (c’est plus simple à l’orale) – contact moi en privé via le formulaire de contact.

      Merci pour l’intérêt !

      David

      1. La honte sur moi, je crois que j’ai lu et regardé beaucoup trop vite la page de présentation du projet et sa démo. Ce que je souhaite est effectivement ce que tu as fait. La faute à une journée de boulot un peu trop dense (ah, les pannes de datacenter…). Merci pour la patience en tout cas.

        Kriss

  8. Encore moi…
    Je viens d’installer le soft – marche nickel.
    Ma petite contribution:
    – pour éviter les « Relay access denied », ajouter un « virtual_alias_domains = mon_pseudo_domain.com » dans le main.cf de postfix
    – penser à donner accès à l’utilisateur postfix aux fichiers var/virtual et var/virtual.db
    – interdire en écriture l’utilisateur php sur tout excepté le répertoire var (et encore, var/aliasdeny.txt et var/blacklist.txt peuvent être mis en read-only pour php, c’est selon)

  9. Un petit retour après quelques jour d’utilisation:

    – outil qui fonctionne très bien
    – petit bug (dû à ma conf?): les emails envoyés ne gèrent pas les accents => correction en rajoutant un $header.= »Content-type: text; charset= utf-8\n »; dans la fonction SendMail
    – un gros trou potentiel de sécurité pour moi: l’utilisation de la fonction « exec » pour exécuter postmap, par défaut interdite pour raison de sécurité sur la plupart des OS. Idée pour une v2 d’emailPoubelle: que le script php (UpdateVirtualDB) envoie un email en local et que postcript, via un hook ou un alias spécial, exécute la commande postmap (en direct ou via un script php pour récupérer les bonnes variables).

    Just my 2 cents comme on dit.

    1. Génial, très bonne idée pour le hook ! ça sera implémenté ! (dès que j’ai le temps mais je le met en todo !)

      Merci Kriss !

  10. Bonjour,

    je suis en train de faire un tutoriel sur l’installation et l’utilisation de votre script mais lorsque j’affiche la page web j’ai la même erreur que  Philippe :

    Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter l’administrateur

    J’ai effectué les modifications de Sutunam mais toujours le même message. Vu que je ne suis pas un spécialiste sous linux, voici les droits à l’intérieur de mon virtuahost :

    [root@ns396153 emailpoubelle.quick-tutoriel.com]# ls -la

    total 88
    drwxr-xr-x 7 root root 4096 Apr 6 19:34 .
    drwxr-xr-x 8 root root 4096 Apr 4 01:57 ..
    drwxr-xr-x 2 root root 4096 Apr 6 17:21 bin
    -rw-r–r– 1 root root 1243 Apr 6 17:21 CHANGELOG.md
    -rw-r–r– 1 root root 2809 Apr 6 19:16 conf-dist.php
    -rw-r–r– 1 root root 16884 Apr 6 17:15 emailPoubelle.php
    -rw-r–r– 1 root root 13421 Apr 6 19:34 error.log
    drwxr-xr-x 2 root root 4096 Apr 6 17:22 lib
    drwxr-xr-x 2 apache apache 4096 Apr 6 19:37 public_html
    -rw-r–r– 1 root root 1208 Apr 6 17:15 README.md
    -rw-r–r– 1 root root 8725 Apr 6 19:34 requests.log
    drwxr-xr-x 2 root root 4096 Apr 6 19:18 var
    drwxr-xr-x 3 root root 4096 Apr 6 19:35 www

    Ais-je oublié quelque chose.

    D’avance merci pour votre réponse.

    Guillaume

  11. Re,

    Du coup je ne sais pas quel est le répertoire de travail var ou postfix ?

    J’ai remis comme par défaut avec le répertoire var, j’ai mis les droits d’écriture dessus et maintenant j’ai bien l’interface pour gérer les mails temporaires.

    Le souci lorsque je clic sur le bouton Activer  j’ai cette erreur dans mon navigateur :

    http://emailpoubelle.quick-tutoriel.com/%3C?=%20URLPAGE?%3E
    Not Found
    The requested URL /< was not found on this server.

    Server-Quick-Tutoriel Server at emailpoubelle.quick-tutoriel.com Port 80 

    Je dois dire que je suis un peu perdu ? d’avance merci pour votre aide.

    1. Bonjour Guillaume,

      Il doit y avoir un problème avec l’interprétation du conf.php… Peut être une erreur de syntaxe !?

      David

  12. Bonsoir,

    je reviens vers vous car après vérification du fichier  conf-dist.php je ne trouve aucune erreur de syntaxe. D’ailleurs je n’ai rien modifié dedans.

    j’ai suivi pas à pas l’installation ci-dessus mais je n’arrive toujours pas à faire fonctionner votre script. j’ai toujours le message suivant lorsque je clic sur Activer (par exemple) lors de la création d’un mail :

    http://emailpoubelle.quick-tutoriel.com/%3C?=%20URLPAGE?%3E
    Not Found
    The requested URL /< was not found on this server.

    Server-Quick-Tutoriel Server at emailpoubelle.quick-tutoriel.com Port 80

    Y-a-t-il quelque chose d’autre à faire d’autre après l’installation. Vous parlez de base MySQL ?

    Si vous le voulez je peux vous donner accès à mon VPS en SSH pour que vous jetiez un oeil, car je voudrais bien le faire fonctionner ?

    D’avance merci pour votre réponse.

    Guillaume.

    1. Pour information public : j’ai contacté guillaume en privé et le problème venait de la configuration de son php.ini, a savoir que le paramètre ‘short_open_tag’ n’était pas sur ‘On’.

  13. Oh c’est rigolo ça !

    J’ai eu connaissance de votre blog par une asso P’titWatt que j’héberge chez Kynä (à propos du Poêlito dans une yourte, pour donner le lien à un couple d’ami).

    Et comme le reste du blog est intéressant, hop je l’ajoute dans mon agrégateur. Et là j’arrive à ce billet avec le clipart que je reconnais pour l’avoir déposé sur OCAL 😀

    Merci pour tes articles, ça donne des envies de bricoler tout ça ! (tu semble avoir un bon fournisseur de palettes !)

    Librement,
    Sylvain

     

  14. Bonjour David

    J’use et abuse d’emailpoubelle avec la version en ligne depuis des années, et régulièrement j’ai essayé de l’installer

    sur ovh (pas réussi)
    sur mon serveur perso sur macosx (pas réussi)
    aujourd’hui, j’essaye sur mon serveur apache mis en place sur raspberry pi3 (eh bien j’y suis toujours pas arrivé)

    voici ce que j’ai fais

    1 – j’ai d’abord installé PEAR
    pear install Net_DNS2 ne marche pas sur Pi semble t’il, j’ai procédé de la façon suivante

    wget http://pear.php.net/go-pear.phar
php go-pear.phar
    sudo apt-get install wget

    l’installation c’est faite dans mon dossier ‘home’

    2- installer  net-dns2 (fallait il le faire ?)
    sudo apt-get install php-net-dns2

    3- installer emailPoubelle en suivant readme (mais en apportant des modifications des liens ne semblant plus fonctionner, mes dysfonctionnements venant peut être de là)

    en gras mes modifs

    mkdir -p /var/www/emailPoubelle/postfix

    cd /tmp
#

    (mon dossier www étant sur raspberry dans le répertoire /var/)

    wget -O emailPoubelle.zip https://framagit.org/kepon/emailPoubellePhp/-/archive/master/emailPoubellePhp-master.zip
unzip emailPoubelle.zip

    http://forge.zici.fr/p/emailpoubelle-php/source/download/master/ CE LIEN NE SEMBLE PLUS FONCTIONNER, impossible de déziper 

    unzip emailPoubelle.zip

    sudo cp -r /tmp/emailPoubellePhp-master/* /var/www/emailPoubelle/

    rajouter

    Rajouter dans le fichier /etc/aliases le devnull avec l’instruction ci-dessous
    echo « devnull: /dev/null » >> /etc/aliases

     

    newaliases

    marche pas , j’ai ce message

    newaliases: fatal: /etc/postfix/main.cf, line 47: missing ‘=’ after attribute name: « touch /var/www/emailPoubelle/var/virtual »

     

    j’ai ensuite procédé aux modifications apache pour accéder aux pages

    /emailPoubelle/emailPoubelle.php

    marche pas j’ai ce message
    Debug activé
    Array ( ) 1
    Erreur : Il ne semble pas que le fichier de configuration conf.php soit inclue car les constantes ne sont pas présentes.
    /emailPoubelle/emailPoubelleAdmin.php

    marche pas j’ai ce message

    Connexion à la base invalid data source name

     

    voilà Ce n’est peut etre pas tres clair

    mais si tu as une idée pour m’aider

    macbidule

     

  15. macbidule toujours

    j’avance à tatons

    j’ai oublié de démarrer sur le bon fichier à savoir sur le fichier emailPoubelle/www/index.php

    C’est fait, mais, maintenant j’ai l’erreur suivante
    Erreur : le fichier d’alias ne peut pas être écrit. Merci de contacter l’administrateur

    j’ai pourtant pour a moment toutes autorisations (+ hierarchie) pour le dossier  emailPoubelle en www-data et chmod à 775

    ou veut il écrire créer le fichier alias ?

    1. Tu as créé un fichier conf.php avec les constantes ? Tu l’as édité ?

      Le fichier alias est de base dans le répertoire var. Qui semble pour toi être /var/www/emailPoubelle/var/…

      Note que net-dns2 n’est pas indispensable au fonctionnement, surtout si c’est pour te mettre une instance privé.

      Il y a quoi dans ton fichier /etc/aliases ?

      Tu as conscience qu’en plus d’avoir emailPoubelle il te faut un serveur mail qui fonctionne au minimum en réception. Est-ce que c’est bien ton cas ? (je te pose la question car sur OVH ça m’étonne que tu es pu avoir ça, sauf si tu avais une VM, un dédier…)

      Belle journée,
      David

      1. Bonjour David
        Tu as créé un fichier conf.php avec les constantes ? Tu l’as édité ?
        Non, ce fichier n’existe pas, j’ai uniquement un fichier conf-dist.php. J’ai pas vu dans le tuto que ce fichier était à créer. Quelles constantes dois-je mettre en place.

        Le fichier alias est de base dans le répertoire var. Qui semble pour toi être /var/www/emailPoubelle/var/…

        je n’ai que les deux fichiers aliasdeny.txt et blackliste.txt dans ce répertoire.
        il possède en principe tous les droits pour écrire
        groupe en www-data et autorisations 775
        et si je lance index.php j’ai bien un message d’erreur Erreur : le fichier d’alias ne peut pas être écrit

        Il y a quoi dans ton fichier /etc/aliases ?
        # See man 5 aliases for format
        postmaster: root
        devnull: /dev/null

        si dans mon terminal
        je tente l’instruction newaliases
        j’ai ce message
        newaliases: fatal: /etc/postfix/main.cf, line 47: missing ‘=’ after attribute name: « touch /var/www/emailPoubelle/postfix/virtual »

        tout çà peut peut être t’éclairer, mais moi je suis perdu 🙁

        Tu as conscience qu’en plus d’avoir emailPoubelle il te faut un serveur mail qui fonctionne au minimum en réception. Est-ce que c’est bien ton cas ?
        bon alors çà non je n’en avais pas conscience

        alors je précise mon état d’esprit, sortir des services offerts par les gafas, arrêter de filer des infos, donc j’ai un serveur hébergé chez moi (nextcloud sur raspberry), et donc ton emailpoubelle me va très bien pour limiter mes traces sur le net.
        et comme tu le proposes héberger soit même le service.

        ayant un raspberry depuis peu il me semblait être intéressant d’y installer ton outil.

        Penses-tu que ça reste une bonne idée çà implique d’avoir un autre port ouvert sur mon serveur. ou faut t’il que je l’installe comme tu dis sur OVH ? ou sur mon mac

        1. Tu as conscience qu’en plus d’avoir emailPoubelle il te faut un serveur mail qui fonctionne au minimum en réception. Est-ce que c’est bien ton cas ?
          bon alors çà non je n’en avais pas conscience

          Et bien commence par ça… Avoir un serveur mail qui fonctionne, c’est un pré-requis. Mais c’est vraiment pas de la tarte, vue ton niveau je penses qu’il faut te faire aider pour ça.

  16. Bonjour,

    quelqu’un pourrait il m’expliquer comment installer le projet sur Wamp?

    J’ai déjà installé: pear install Net_DNS2

    Je ne m’y retrouve plus avec postfix …

    Si vous pouvez en détail, merci d’avance

     

Répondre à David Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies (au chocolat) Plus d’informations

Les cookies sont utilisés à des fin de statistique de visite du blog sur une plateforme indépendante que j'héberge moi même. Les statistiques sot faites avec un logiciel libre. Aucune information n'est redistribué à google ou autre. Je suis seul autorisé à lire ces informations

Fermer