Lien dans mail php

Résolu
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   -  
Rom190686 Messages postés 436 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
A voir également:

17 réponses

swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
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   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
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   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
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244 > Rom190686 Messages postés 436 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
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
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   Statut Membre Dernière intervention   35
 
idem que pour le post N°5
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
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   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

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

Posez votre question
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
envois le code de ta page
0
Rom190686 Messages postés 436 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
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
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   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
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
passe le en
text/plain
0
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   35
 
C'est ce que j'ai fait.
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
pardon, je te dis des betises : il faut le passer en text/html
0
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   35
 
Le mail n'arrive pas non plus
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
je regarde ca, je te recontacte
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
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   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
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   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
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
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   Statut Membre Dernière intervention   35
 
Toujours le même problème...Je désespère...
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Essaye sur un autre service email.
0
Rom190686 Messages postés 436 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
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
La balise br ne se ferme pas, c'est comme la balise img
0
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   35
 
Je l'avais écrite de cette façon <br> et non <br />...
0