Lien dans mail php

Résolu/Fermé
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 - 9 mars 2010 à 22:49
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 - 16 juil. 2010 à 15:35
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
A voir également:

17 réponses

swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
9 mars 2010 à 22:54
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
9 mars 2010 à 22:59
C'est là le problème, si j'enlève les apostrophes alors le mail n'arrive pas dans ma boite
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
9 mars 2010 à 22:54
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
9 mars 2010 à 23:02
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
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244 > Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015
9 mars 2010 à 23:03
$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
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
9 mars 2010 à 23:00
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
9 mars 2010 à 23:03
idem que pour le post N°5
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
9 mars 2010 à 23:05
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
9 mars 2010 à 23:10
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
9 mars 2010 à 23:20
envois le code de ta page
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
9 mars 2010 à 23:24
<?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
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
9 mars 2010 à 23:27
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
9 mars 2010 à 23:38
Si j'enlève la ligne
Content-Type: multipart/alternative;
alors le mail arrive mais tout mon code apparaît dans le mail
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
9 mars 2010 à 23:42
passe le en
text/plain
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
10 mars 2010 à 13:37
C'est ce que j'ai fait.
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
10 mars 2010 à 14:02
pardon, je te dis des betises : il faut le passer en text/html
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
10 mars 2010 à 14:08
Le mail n'arrive pas non plus
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
10 mars 2010 à 15:15
je regarde ca, je te recontacte
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
10 mars 2010 à 15:24
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
10 mars 2010 à 15:41
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
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
10 mars 2010 à 15:47
Ton email est peut-être dans le dossier spam, ou tout simplement bloqué par l'anti-spam.
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
10 mars 2010 à 21:32
Si c'est le cas, comment faire ne serait-ce que pour le savoir? Ma boite de spam est vide !
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
10 mars 2010 à 16:38
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
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
10 mars 2010 à 21:31
Toujours le même problème...Je désespère...
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
10 mars 2010 à 22:18
Essaye sur un autre service email.
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
14 mai 2010 à 21:48
Je reviens poster car en fait j'ai trouvé l'erreur. J'ai simplement une balise "<br />" qui n'était pas fermée....
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
14 mai 2010 à 22:29
La balise br ne se ferme pas, c'est comme la balise img
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
16 juil. 2010 à 15:35
Je l'avais écrite de cette façon <br> et non <br />...
0