Lien dans mail php

Résolu
Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   -  
Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'utilise la fonction mail php sur mon site. Tout fonctionne pour le texte et la mise en forme.
Cependant, je veux mettre un lien pour rediriger directement sur mon site et là, problème !
Le lien apparait mais quand je clique dessus, l'adresse dans le navigateur apparait comme ceci : "www.monsite.com"
Les guillemets sont présent.
Voici mon code ci ça peux vous aidez.
$msg_html = "<html><head><title></title></head><body>Bonjour, Ton ami te propose de venir découvrir <strong>monsite</strong> ! Clique sur le lien ci dessous !</br><a href='\"http://www.monsite.com\"'>www.monsite.com</a></body></html>";
Si j'enlève les (') dans la balise href, alors mon mail part mais n'arrive null part.
Malgré les post que j'ai pu voir les autres forum, je ne resoud pas mon problème.
Merci d'avance
Configuration: Windows se7en

17 réponses

  1. swoog42 Messages postés 1178 Statut Membre 245
     
    enlève les ' avant et après tes " autour de ton lien. Ca donne :
    <a href=\"http://www.monsite.com\">www.monsite.com</a>
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      C'est là le problème, si j'enlève les apostrophes alors le mail n'arrive pas dans ma boite
      0
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Pourquoi mets-tu l'url entre guillemets doubles échappés ?
    Entre apostrophes ça suffit.
    Par contre, je mettrais plutôt ma chaine entre apostrophe pour ne pas avoir à échapper les guillemets.
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      J'ai suivi tes conseils mais mon mail n'arrive pas...Je ne voit pas ou est le problème. Si je supprime le lien alors mon mail arrive sans problème !
      0
      1. swoog42 Messages postés 1178 Statut Membre 245 > Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention  
         
        $msg_html = '<html><head><title></title></head><body>Bonjour, Ton ami te propose de venir découvrir <strong>monsite</strong> ! Clique sur le lien ci dessous !</br><a href="http://www.monsite.com">www.monsite.com</a></body></html>';
        0
  3. swoog42 Messages postés 1178 Statut Membre 245
     
    les 2 solutions sont bonnes (et fonctionnent) mais pour rester conforme aux standards HTML, il faut des guillemets doubles, et non des apostrophes. Donc obligation de les échapper dans ce cas.
    Si tu ne veux pas échapper les <">, il faut encadrer le message entier par des <'>, genre
    $msg_html = '<html><head><title></title></head><body>Bonjour, Ton ami te propose de venir découvrir <strong>monsite</strong> ! Clique sur le lien ci dessous !</br><a href="http://www.monsite.com">www.monsite.com</a></body></html>'; 


    mais ca t'oblige a échapper toutes les apostrophes ex:
    $msg = 'salut les copains ! l\'aprem a été bon, c\'etait génial'
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      idem que pour le post N°5
      0
  4. swoog42 Messages postés 1178 Statut Membre 245
     
    fais un
     echo($msg_html);
    pour voir si ton message est correcte... si oui, c'est ta fonction mail qui n'est pas bonne
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      Merci pour ton aide, l'echo m'affiche parfaitement mon mail et le lien fonctionne. Mais je ne recoi pas mon mail pour autant. Que faire?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. swoog42 Messages postés 1178 Statut Membre 245
     
    envois le code de ta page
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      <?php
      if (!empty($_POST['mail'])){

      $mail = ($_POST['mail']);

      if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $mail)) {

      if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) {
      $ligne = "\r\n";
      } else {
      $ligne = "\n";
      }
      $msg_text = "Bonjour ! Ton ami te propose de venir découvrir monsite ! Rends toi vite sur www.monsite.com !";
      $msg_html = "<html><head><title></title></head><body>Bonjour, Ton ami te propose de venir découvrir <strong>monsite</strong> ! Clique sur le lien ci dessous !</br><a href=\"http://www.monsite.com\">www.monsite.com</a></body></html>";

      $boundary = "-----=".md5(rand());

      $sujet = "Viens visiter ce site !"; //On met le sujet du mail

      $header = "From: \"monsite\"<>".$ligne; //depuis où il a été posté
      //$header .= "Reply-to: \"monsite\"<>".$ligne; //Adresse de réponse
      $header.="MIME-Version: 1.0".$ligne;
      $header.="Content-Type: multipart/alternative;".$ligne." boundary=\"$boundary\"".$ligne;

      $message = $ligne.$boundary.$ligne;

      $message.= "Content-Type: text-plain; charset=\"ISO-8859-1\"".$ligne;
      $message.= "Content-Transfert-Encoding: 8bit".$ligne;
      $message.= $ligne.$msg_text.$ligne;

      $message.= $ligne."--".$boundary.$ligne;

      $message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$ligne;
      $message.= "Content-Transfert-Encoding: 8bit".$ligne;
      $message.= $ligne.$msg_html.$ligne;

      $message.=$ligne."--".$boundary."--".$ligne;
      $message.=$ligne."--".$boundary."--".$ligne;

      mail($mail, $sujet, $message, $header); // Envoi du mail
      }
      }
      ?>
      0
  7. swoog42 Messages postés 1178 Statut Membre 245
     
    la dernière fois que j'avais programmé ce genre de fonction, j'ai été embété par le header.
    mets ca :
    $headers ='From: "nom"<adresse@fai.fr>'."\n";
         $headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
         $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
         $headers .='Content-Transfer-Encoding: 8bit'
    ;
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      Si j'enlève la ligne
      Content-Type: multipart/alternative;
      alors le mail arrive mais tout mon code apparaît dans le mail
      0
  8. swoog42 Messages postés 1178 Statut Membre 245
     
    passe le en
    text/plain
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      C'est ce que j'ai fait.
      0
  9. swoog42 Messages postés 1178 Statut Membre 245
     
    pardon, je te dis des betises : il faut le passer en text/html
    0
  10. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
     
    Le mail n'arrive pas non plus
    0
  11. swoog42 Messages postés 1178 Statut Membre 245
     
    je regarde ca, je te recontacte
    0
  12. swoog42 Messages postés 1178 Statut Membre 245
     
    Voici la solution qui marche
    <?php
    
      //envoie du mail
    
      //titre du mail
      $titre = 'Newletters';
    
    
      $e_mail = 'email'; //prend l'email de la table
    	
    	$corp = '<html><head><title></title></head><body bgcolor="#a2ccf3">BLA BLA BLA</body></html>';
    	
      // envoi du mail HTML
      $from = "From: Ton nom <adresse@FAI.fr>\r\nMime-Version:".
    'X-Mailer: PHP/' . phpversion() . "\r\n" .
    "MIME-Version: 1.0\r\n" .
    "Content-Type: text/html; charset='utf-8'\r\n" .
    "Content-Transfer-Encoding: 8bit\r\n\r\n";
    
     mail($e_mail,$titre,$corp,$from)
    
    ?>
    
    0
  13. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
     
    Tant que je ne met pas de lien dans le corps de mon mail, sa fonctionne parfaitement. C'est uniquement lorsque le lien est dans le mail que ça foire
    0
  14. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Ton email est peut-être dans le dossier spam, ou tout simplement bloqué par l'anti-spam.
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      Si c'est le cas, comment faire ne serait-ce que pour le savoir? Ma boite de spam est vide !
      0
  15. swoog42 Messages postés 1178 Statut Membre 245
     
    essaye ca
    $msg_html = '<html><head><title></title></head><body>Bonjour, Ton ami te propose de venir découvrir <strong>monsite</strong> ! Clique sur le lien ci dessous !</br><a href="http://www.monsite.com">www.monsite.com</a></body></html>'; 
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      Toujours le même problème...Je désespère...
      0
  16. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Essaye sur un autre service email.
    0
  17. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
     
    Je reviens poster car en fait j'ai trouvé l'erreur. J'ai simplement une balise "<br />" qui n'était pas fermée....
    0
  18. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    La balise br ne se ferme pas, c'est comme la balise img
    0
    1. Rom190686 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   35
       
      Je l'avais écrite de cette façon <br> et non <br />...
      0