IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

lien dans mail en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut lien dans mail en PHP
    Bonjour,

    j'ai un problème que je n'arrive pas à résoudre seul et c'est pour ça que je me tourne vers vous.

    Je vous expose la situation et là où je butte.

    J'ai fait un script qui me permet que lorsque je publie une news sur mon site, de générer automatiquement un mail puis de l'envoyer vers un google groups où il est redirigé vers tous les adhérents d'une association sportive, ainsi dès qu'une news est publiée sur le site, un maximum de personnes est informé.

    Mon seul problème est que si j’envoie des liens, le client de messagerie (Windows Live Mail dans mon cas) ne les interprète pas => pas de lien hypertexte.

    Voici le code qui envoi le mail :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    <?php $message_mail = stripslashes(nl2br(htmlspecialchars(strip_tags($_POST['contenu']))));	   
    	    //----------------------------------------
    		//--------Envoi de l'email----------------
    		//----------------------------------------
     
    		$destinataire = "cnmarignanais_test@googlegroups.com";
    		$boundary = md5(uniqid(rand()));
     
    		//on joint le premier fichier
    		$fichier1 = "design/images/entete_email.png";
            $fp1      = fopen($fichier1, "rb");
            $fichierattache1 = fread($fp1, filesize($fichier1));
            fclose($fp1);
            $fichierattache1 = chunk_split(base64_encode($fichierattache1));
     
    		//on joint le deuxième fichier
    		$fichier2 = "design/images/bas_email.png";
            $fp2      = fopen($fichier2, "rb");
            $fichierattache2 = fread($fp2, filesize($fichier2));
            fclose($fp2);
            $fichierattache2 = chunk_split(base64_encode($fichierattache2));		
     
    		$header = "";
    		$header .= "From: Club Nautique Marignanais <bureau@cnmarignanais.fr>\n";
    		$header .='Reply-To: bureau@cnmarignanais.fr'."\n"; 
    		$header .= "MIME-Version: 1.0\n";
    		$header .= "Content-Type: multipart/alternative; boundary = $boundary\n";
     
    		//première image
    		$message .= "\n--$boundary\r\n";
            $message .= "Content-Type: application/octet-stream; name=\"$fichier1\"\r\n";
            $message .= "Content-Transfer-Encoding: base64\r\n";
            $message .= "Content-ID: <entete_email.png>\r\n";
            $message .= "\r\n";
            $message .= $fichierattache1 . "\r\n";
            $message .= "\r\n\r\n";		
    		$message .= "<img src=\"cid: entete_email.png\" /><br /><br />\n\n"; //image du haut
     
    		//corps
    	    $message .= "\n--$boundary\nContent-Type: text/html; charset = \"iso-8859-1\"\n\n";
    	    $message .= "<html><body style=\"color:#006995;\">\n";
    		$message .= "<img src=\"cid: entete_email.png\" /><br /><br />\n\n"; //image du haut		
    		$message .= "".$message_mail."<br/><br/>\n";		
    		$message .= "<small><em>Ceci est un message automatique, merci de ne pas y répondre ! <br/> Il se peut qu'il y est des problemes d'affichage avec certaines messageries.</em></small><br/<br/><br/>\n";		
    		$message .= "<img src=\"cid: bas_email.png\" /><br /><br />\n\n"; //image du bas
    	    $message .= "</body></html>\n";
     
    		//deuxième image
    		$message .= "\n--$boundary\r\n";
            $message .= "Content-Type: application/octet-stream; name=\"$fichier2\"\r\n";
            $message .= "Content-Transfer-Encoding: base64\r\n";
            $message .= "Content-ID: <bas_email.png>\r\n";
            $message .= "\r\n";
            $message .= $fichierattache2 . "\r\n";
            $message .= "\r\n\r\n";		
    		$message .= "<img src=\"cid: bas_email.png\" /><br /><br />\n\n"; //image du bas
     
            $message .= "\n--$boundary--\n end of the multi-part";
     
    		$titre_mail = "[CNM NEWS] ".$titre;
     
          if(mail($destinataire, $titre_mail, $message, $header) == true)
             {
               echo '<span style="color: green;"> Email => OK</span><br>'; 
    		 } ?>
    Je pense que cela vient de la manière dont j'ai codé mais existe-il une ruse pour que ca puisse marcher ?

    Pour information, j'ai essayé de mettre avec les balises <a></a>, sans ces balises, en permettant les balises <a></a> dans la fonction strip_tags($_POST['contenu']), comme ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php strip_tags($_POST['contenu'], '<a>') ?>

    mais rien n'y a fait.


    J'attends vos conseils avec impatience.
    Cordialement
    Twiners 13

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Par défaut
    Bonjour,

    Si les autres balises HTML utilisées dans le mail "fonctionnent", est-ce que ce ne serait pas le client de messagerie qui purge le mail de tous les liens ? (avec toutes les protections, de nos jours...)

    Sinon, je ne m'y connais pas dans la génération manuelle d'entête donc je vous laisse ici

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    en fait, le lien hypertexte que je veux afficher se trouve dans la variable $message_mail mais ce qu'il y a c'est que le logiciel de messagerie n'arrive pas à interpréter et ne me le met pas en lien hypertexte

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Par défaut
    le logiciel de messagerie n'arrive pas à interpréter et ne me le met pas en lien hypertexte
    Est-ce que le client affiche rien du tout, tout le code html qu'il ne comprend pas, ou bien il affiche juste le titre du lien (mais sans lien...) ?


    Vous avez essayé avec un lien le plus simple possible (<a href="http://moodle.org/">Pas de pub</a>) ? (vus les limitations des clients mails au niveau de l'interprétation du HTML).


    En espérant pouvoir vous aider

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    J'ai essayé avec des liens très simples comme google par exemple

    voici les tests et les résultats que j'ai obtenus avec par exemple <a href="google.fr">Google</a> :

    - avec strip_tags : Google
    - avec strip_tags mais permission de la balise <a> : <a href="google.fr>Google</a>
    - en mettant seulement google.fr : google.fr


    la chose que je suis en tain de me demander est : est ce que c'est possible que ça marche comme j'ai codé moi alors si je suis loin ou pas ?

    les deux lignes de code primordiales sont celles ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php $message_mail = stripslashes(nl2br(htmlspecialchars(strip_tags($_POST['contenu']))));
     
    $message .= "".$message_mail."<br/><br/>\n"; ?>
    est ce qu'avec ça ça peut marcher ?

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Par défaut
    est ce qu'avec ça ça peut marcher ?
    Aucune idée.

    A part ça, si on est d'accord pour conclure, de votre dernière réponse, que c'est bien la complexité du lien qui pose problème. Il convient, je pense, de regarder dans les spécifications du clients mails (sur la msdn ?) quels balises et attributs HTML sont autorisés.


    Cordialement

Discussions similaires

  1. Problème envoi de lien dans mail
    Par y_chafaqi dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/03/2012, 20h11
  2. problème lien dans mail envoyé
    Par cragoroth dans le forum Langage
    Réponses: 6
    Dernier message: 06/01/2012, 16h57
  3. Lien dans une galerie PHP
    Par G-First dans le forum Webdesign & Ergonomie
    Réponses: 6
    Dernier message: 24/01/2009, 14h36
  4. [Mail] Ajout d'un lien dans un scipt formmail.php
    Par PaulK dans le forum Langage
    Réponses: 1
    Dernier message: 13/11/2007, 22h59
  5. [Mail] lien dans mail
    Par moulefrite dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2006, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo