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 -
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
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:
- Lien dans mail php
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Verificateur de lien - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
17 réponses
enlève les ' avant et après tes " autour de ton lien. Ca donne :
<a href=\"http://www.monsite.com\">www.monsite.com</a>
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
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.
Entre apostrophes ça suffit.
Par contre, je mettrais plutôt ma chaine entre apostrophe pour ne pas avoir à échapper les guillemets.
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
mais ca t'oblige a échapper toutes les apostrophes ex:
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'
fais un
echo($msg_html);pour voir si ton message est correcte... si oui, c'est ta fonction mail qui n'est pas bonne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
envois le code de ta page
<?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
}
}
?>
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
}
}
?>
la dernière fois que j'avais programmé ce genre de fonction, j'ai été embété par le header.
mets ca :
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';
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) ?>
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
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>';