SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Interactivité, communication > Mails > Archives Email

Envoyer à un ami

dimanche 9 février 2003, par philippe. Dernier ajout vendredi 24 septembre 2004


Faut pas pusher! S’envoyer une page web sympa repérée sur la machine d’un copain, faire parvenir à un ami le super article qui lui confirme ce dont vous parliez le matin même : c’est toujours utile ! Spip permet de faire ça assez facilement, profitons-en.


Pour envoyer une page web, il n’est pas forcément nécessaire d’envoyer l’intégralité de la page mais seulement le contenu de la page, pour cela il nous faut créer un couple squelettique usuel appelons le mailami.php3/html (cf. pièces jointes).

Il pourra être très inspiré du squelette proposé par ARNO* sur uzine pour le format "imprimable", le but est le même. Mais libre à vous de le modifier à votre guise !

Une fois votre couple squelettique réalisé (dans le fichier joint ce sont les fichiers mailami.php3 et mailami.html), vous allez pouvoir créer deux fichiers php :

- Le formulaire qui prend les adresses : appelons-le formulaire.php.

Il sera du type :

C’est un formulaire post classique, qui appelle le script d’envoi du mail que nous détaillerons juste après. Notez le dernier champ : " <?php echo "$id_article"?> , il signifie au formulaire d’envoyer au script non seulement les adresses email qui seront rentrées dans les cases mais également le numéro de l’article demandé. Il nous faudra donc penser à mettre cette valeur dans l’url d’appel au script. Mais l’équipe de spip a pensé à nous car comme pour le couple squelettique imprimer.php3/html il suffira d’utiliser la balise #ID_ARTICLE pour que spip remplace cette balise par sa valeur chiffrée.

Le formulaire est fait, il envoie donc au script de traitement : l’email de l’envoyeur ($From) et l’adresse de celui qui recevra le mail ($adresse) et bien sûr, en caché, $id_article qui est le numéro de l’article.

- Le formulaire de traitement et d’envoi, appelons le mailarticle.php. Le voici :

Personnalisez le : Donnez un sujet, une adresse de retour, mettez les paramètres de VOTRE site.

Voilà l’essentiel est fait, votre script fonctionne.

Voyons maintenant comment intégrer plus joliment cette fonctionnalité à votre page article.html (squelette de votre article) :

Ajoutez simplement cette ligne à l’endroit où vous souhaitez faire apparaître cette fonction (bien sûr il faudra faire une image "envoyer.gif"!) :

Le formulaire s’ouvrira alors dans un popup, ce qui est déjà plus esthétique, et signifiera ainsi au visiteur que tout s’est bien passé.

Autre astuce : un script reste un script , il peut y avoir un bug de sécurité, il est toujours intéressant de s’assurer qu’il fonctionne de façon normale en logguant le nombre d’envois et les IP des envoyeurs. Il vous faut alors créer un fichier envoyerami.txt (chmod 755) dans le même répertoire et compléter le script de traitement par ces quelques lignes :

Documents joints

  • Version HTML Version HTML (Zip - 2.2 ko)

    mail envoyé au format HTML, envoie l’url et l’introduction

  • Version texte Version texte (Zip - 2.1 ko)

    mail envoyé au format texte, cela envopie l’url et l’introduction

  • Envoyer TOUT l’article Envoyer TOUT l'article (Zip - 2.7 ko)

    Ces fichiers permettent d’envoyer l’article en entier


Répondre à cet article

  • Envoyer à un ami

    1er octobre 2005 19:49, par Stéphane

    Et si on n’a pas d’ami ?

    Répondre à ce message

    • Envoyer à un ami 1er octobre 2005 19:51

      Ben alors ptet pour envoyer à un ennemi :->

      Répondre à ce message

      • Envoyer à un ami 2 octobre 2005 15:34, par Stéphane

        plus sérieusement, j’ai testé le script, mais suis embêté par la restriction de mon FAI qui a mis la directive allow_url_fopen sur off. Mais je me suis dit alors que tout se passe en local chez mon hebergeur et ai modifié le fichier mailarticle en remplacant la ligne 6 par $texte="mailami.php3?id_article=$id_article" ;

        Aucun succès. Quelqu’un aurait-il une idée ? L’envoi de mail fonctionne pour les inscriptions donc je suis un peu perplexe.

        Stéphane

        PS : mais si, j’ai des amis.

        Répondre à ce message

        • Envoyer à un ami 3 octobre 2005 20:19, par Stéphane

          Quelques précisions concernant mon précédent message : L’erreur renvoyée est :

          Warning : fopen() : Unable to access mailami.php3?id_article= in /var/...../mailarticle.php on line 7

          Je souhaite simplement tester l’envoi de mail à travers un formulaire. Mon site spip arrive bien a envoyer un mail à ceux qui souhaitent accéder à l’espace rédacteur, donc je m’étonne que je n’y arrive pas avec ce script. Un petit coup de main serait le bienvenu. Merci d’avance.

          Répondre à ce message

          • Envoyer à un ami 4 octobre 2005 16:10

            Bonjour,

            malheureusement si tu n’as pas accès à fopen() il est certain que tu vas avoir du mal à ouvrir puis à lire le fichier.

            Il me semble (regarde dans les messages anciens du forum) qu’il y avait un hébergeur qui posait ce problème et qu’une fonction de remplacement avait été proposée mais là je ne m’y connais pas assez pour te dire.

            désolé

            Répondre à ce message

            • Envoyer à un ami 4 octobre 2005 20:44, par Stéphane

              En fait, je débute en php.
              Mon FAI, wanadoo premium ne m’autorise pas de allow_url_fopen mais en local je suppose que cette fonction devrait tourner.
              Quoi qu’il en soit, certaines choses vont bien d’autres non.

              Par exemple, la syndication ne fonctionne pas car le fichier backend a ouvrir est sur un autre serveur. Par contre une chose qui va bien, c’est l’inscription des futurs rédacteurs. un mail leur est bien envoyé. Comment ?

              J’aimerai dans un de mes articles faire afficher un formulaire, qui m’envoye un mail contenant certains champs du formulaire. Le formulaire s’affiche bien, mais le mail n’est pas envoyé. j’avais écris le script en utilisant la fonction mail(4arguments).
              Spip utilise t-il cette fonction pour envoyer ses mails, ou une autre existe t-elle ? Y a-il des règles a respecter concernant les arguments (du genre utiliser une adresse email du FAI) ou non.
              En tout cas aucun mail ne me parvient.

              Merci pour votre aide.

              Répondre à ce message

        • Envoyer à un ami 26 janvier 2008 21:39, par pierre

          pierre mon frere et fore car il peus caser les dens de toi

          Répondre à ce message

    Retour au début des forums

  • Envoyer à un ami

    20 novembre 2007 10:12, par marion

    bonjour j’ai mis votre dossier dézippé sur mon site mais j’ai des erreurs on me répond :

    Warning : fopen() [function.fopen] : php_network_getaddresses : getaddrinfo failed : Name or service not known in /mnt/149/sda/5/b/ /envoyer_ami_html/mailarticle.php3 on line 8

    Warning : fopen(http://URL_site/mailami.php3?id_article=) [function.fopen] : failed to open stream : Success in /mnt/149/sda/5/b/ /envoyer_ami_html/mailarticle.php3 on line 8

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b/ /envoyer_ami_html/mailarticle.php3 on line 9

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b/ /envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Warning : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Warning : feof() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 11

    Fatal error : fgets() : supplied argument is not a valid stream resource in /mnt/149/sda/5/b//envoyer_ami_html/mailarticle.php3 on line 12

    Merci d’avance pour votre aide

    Répondre à ce message

    Retour au début des forums

  • > Envoyer à un ami

    9 février 2003 20:54

    j’ai un problémé apparament mon hébergeur n’a pas l’air d’accepter d’utiliser fopen pour une url. N’y aurais t’il pas un moyen plus simple ?

    Répondre à ce message

    Retour au début des forums

  • Envoyer à un ami

    22 août 2006 16:56, par mailou

    Bonjour,

    Je découvre seulement cette possibilité, envoyer une page à un ami, il me semble avoir tout fait, j’ai modifié le mailarticle.php et pourtant ...... ça ne marche pas, en cliquant sur le message "envoyer à vos amis" j’ai un popup qui s’ouvre avec à l’interieur "http://404 non trouvé, la page est introuvable".

    Voilà je cherche et je ne trouve pas.

    Si quelqu’un pouvait m’aider, merci d’avance

    Répondre à ce message

    Retour au début des forums

  • Envoyer à un ami

    3 août 2006 10:28, par flokieken

    Bonjour, Ce script m’interesse vraiment beaucoup, mais je suis passé à la version 1.9 et j’ n’arrive pas à l’installer, donc si quelqu’un pouvais me donner un coup de pouce...

    Merci d’avance

    Répondre à ce message

    Retour au début des forums

  • > Envoyer à un ami

    1er août 2005 11:18, par vince

    bonjour a tous, je n’ai aucun soucis pour envoyer une page mais est il possible d’envoyer une image a un ami ? Merci

    Répondre à ce message

    Retour au début des forums

  • > Envoyer à un ami - problème

    4 mai 2004 21:48, par JMB

    J’ai essayé la contrib mais je plante lamentablement !

    Warning fopen

    (http://raforum.apinc.org/mailmai.ph...) : failed to open stream :

    Connection timesd out in /space_3/creagh/mailarticle.php3 on libe 8

    Warning feof() : supplied argument is not a valid stream resource in /space_3/creagh/mailarticle.php3 on libe 9

    etc.

    Pas d’idées ?

    JMB

    Voir en ligne : http://raforum.apinc.org/article.php3?id_article=83

    Répondre à ce message

    • Salut,

      visiblement t’as un problème sur mailarticle.php3 il tourne en boucle sans aller à la fin du script. Il faut tester les variables envoyées une à une et voir laquelle plante le script.

      J’ai regardé apinc est hébergé chez nexen et nexen a toutes les fonctions qu’il faut pour que le script marche : reste le problème des données qui plantent le script...

      courage :-)

      Répondre à ce message

      • La réponse de APINC

        Il n’est pas possible de faire un fopen sur un autre site heberge sur Apinc (probleme lie au cluster).

        Faut s’inspirer ce ca pour contourner le probleme :

        http://aide.apinc.org/wakka.php?wik...

        Répondre à ce message

      • > Envoyer à un ami - problème 25 janvier 2005 10:09, par JC

        Y a un problème de boucle, c’est clair... Et ça vient de me donner 293 Mo de logs d’erreurs PHP aujourd’hui même !

        Quand on fait un fopen, il faut tester le résultat derrière, car en cas de fichier non trouvé le test !feof est toujours vrai => boucle sans fin.

        De plus, quid d’un $id_article qui contiendrait du javascript ou autre ? Il faudrait le blinder en forçant une conversion en nombre avec (int), par exemple, sinon bonjour les attaques possibles...

        C’est vraiment dommage de gâcher une bonne idée avec du développement à la va-vite ! Faites un peu attention à programmer proprement...

        Répondre à ce message

      • > Envoyer à un ami - problème 25 janvier 2005 10:35, par JC

        Y a un problème de boucle, c’est clair... Et ça vient de me donner 293 Mo de logs d’erreurs PHP aujourd’hui même !

        Quand on fait un fopen, il faut tester le résultat derrière, car en cas de fichier non trouvé le test !feof est toujours vrai => boucle sans fin.

        De plus, quid d’un $id_article qui contiendrait du javascript ou autre ? Il faudrait le blinder en forçant une conversion en nombre avec (int), par exemple, sinon bonjour les attaques possibles...

        C’est vraiment dommage de gâcher une bonne idée avec du développement à la va-vite ! Faites un peu attention à programmer proprement...

        Répondre à ce message

      • > Envoyer à un ami - problème 25 janvier 2005 10:40

        Y a un problème de boucle, c’est clair... Et ça vient de me donner 293 Mo de logs d’erreurs PHP aujourd’hui même !

        Quand on fait un fopen, il faut tester le résultat derrière, car en cas de fichier non trouvé le test !feof est toujours vrai => boucle sans fin.

        De plus, quid d’un $id_article qui contiendrait du javascript ou autre ? Il faudrait le blinder en forçant une conversion en nombre avec (int), par exemple, sinon bonjour les attaques possibles...

        C’est vraiment dommage de gâcher une bonne idée avec du développement à la va-vite ! Faites un peu attention à programmer proprement...

        Répondre à ce message

      • > Envoyer à un ami - problème 25 janvier 2005 11:13, par JC

        Y a un problème de boucle, c’est clair... Et ça vient de me donner 293 Mo de logs d’erreurs PHP aujourd’hui même !

        Quand on fait un fopen, il faut tester le résultat derrière, car en cas de fichier non trouvé le test !feof est toujours vrai => boucle sans fin.

        De plus, quid d’un $id_article qui contiendrait du javascript ou autre ? Il faudrait le blinder en forçant une conversion en nombre avec (int), par exemple, sinon bonjour les attaques possibles...

        C’est vraiment dommage de gâcher une bonne idée avec du développement à la va-vite ! Faites un peu attention à programmer proprement...

        Répondre à ce message

      • > Envoyer à un ami - problème 25 janvier 2005 11:57, par JC

        Y a un problème de boucle, c’est clair... Et ça vient de me donner 293 Mo de logs d’erreurs PHP aujourd’hui même !

        Quand on fait un fopen, il faut tester le résultat derrière, car en cas de fichier non trouvé le test !feof est toujours vrai => boucle sans fin.

        De plus, quid d’un $id_article qui contiendrait du javascript ou autre ? Il faudrait le blinder en forçant une conversion en nombre avec (int), par exemple, sinon bonjour les attaques possibles...

        C’est vraiment dommage de gâcher une bonne idée avec du développement à la va-vite ! Faites un peu attention à programmer proprement...

        Répondre à ce message

        • > > Envoyer à un ami - problème 22 février 2005 08:54

          Eh oh :

          • C’est une contrib
          • C’est une contrib qui date et qui a été améliorée depuis
          • L’intérêt de l’open source c’est justement de montrer le source aux autres pour qu’ils le corrigent, l’optimisent l’améliorent.
          • Et une dernière remarque : je ne suis pas programmeur et j’ai fait à l’époque cette contrib car j’en avais besoin et que personne d’autre ne voulait le faire :-)

          Cordialement

          Répondre à ce message

    Retour au début des forums

  • > Pb avec version HTML

    17 septembre 2004 15:55, par bbdoc

    Bonjour,

    J’ai installé la version HTML du script, et je ne comprends pas trop ce qui se passe... lorsque j’envoie le message vers une adresse que je vérifie sous outlook, tout se passe bien... par contre, si je le vérifie via mon webmail (ifrance), je me retrouve à voir tout le code HTML dans le message... pourtant, mon webmail supporte bien le HTML, puisque je reçois régulièrement des messages au format HTML...

    Problème de header ??

    Merci de votre aide !

    Répondre à ce message

    Retour au début des forums

  • > Envoyer à un ami

    23 avril 2004 09:27, par Stef

    Bonjour, Est-il possible d’utiliser ce script pour un site non-SPIP ? l’ensemble des documents me paraît adaptable au php (mais bon, euh, comment dire... je débute un peu quand même ;o) mais j’ai un souci avec la variable $id_article. Merci

    Répondre à ce message

    Retour au début des forums

  • > Envoyer à un ami

    1er octobre 2003 20:55, par Gaël

    J’y suis presque (avec la 2nde version de fichiers), mais j’ai tout de même un petit ennui. Le message reçu affiche tout le code HTML... Donc pas très lisible. Que dois-je faire ?

    Répondre à ce message

    • > Envoyer à un ami 1er octobre 2003 21:01, par Gaël

      OK, $from.="Content-Type : text/html" ; dansmailarticle.php3

      Répondre à ce message

      • > Envoyer à un ami 12 mars 2004 18:03, par Michel

        Bonjour,

        J’ai le même pb tout en ayant la ligne que tu signales dans le fichier ($from.="Content-Type : text/html" ; dans mail article.php ).

        Est-ce que cela pourrait venir du serveur hébergeur ou autres ?

        Si vous avez une idée je suis preneur.

        Merci,

        Michel

        Répondre à ce message

    Retour au début des forums

0 | 25 | 50 | 75 | 100 | 125



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net