Probleme pour lien dans e-mail php
caroline
-
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J' utilise un formulaire HTML et un script PHP tirer du site duzero pour me créer une newsletter. les message son bien envoyé aussi bien au format texte que HTML mais quand j'ajoute une URL via <a href... une foi le message arrive quand on clique sur le lien l'URL ressemble a ca http://\"monsite.net\"/ ca ne marche donc plus.
comment faire ?
formulaire HTML
<FORM method="POST" action="../scripts/php/newsletter.php">
<P>Contenu:<br>
<textarea name="message" cols=50 rows=10></textarea>
</p>
<INPUT type="submit" value="Envoyer la Newsletter">
</form>
script php
<?php
session_start();
mysql_connect("localhost", "root", "root");
mysql_select_db("mabd.net");
$reponse = mysql_query("SELECT * FROM inl");
$message = $_POST['message'];
$liste = '';
echo'</br><img src="../images/dates/dates.png"></br></br></br>';
while ($donnees = mysql_fetch_array($reponse) )
{
$donnees['email'];
$liste = $liste.$donnees['email'].";";
}
$mail = 'monadresse@hotmail.fr'; // Déclaration de l'adresse de destination
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // O,n filtre les serveurs qui bugs
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML
$message_txt = $message;
$message_html = $message;
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet
$date = date("d/m/Y");
$date2 = date("H:i");
$sujet = ("Newslettre du ".$date ." a " .$date2);
//=========
//=====Création du header de l'e-mail
$header = "From: \"newsletter@monsite.net\"<newsletter@monsite.net>".$passage_ligne;
$header.= "Reply-to: \"newsletter@monsite.net\" <newsletter@monsite.net>".$passage_ligne;+
$header.= "Bcc: $liste\n";
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail
mail($mail,$sujet,$message,$header);
echo $message ;
//==========
?>
J' utilise un formulaire HTML et un script PHP tirer du site duzero pour me créer une newsletter. les message son bien envoyé aussi bien au format texte que HTML mais quand j'ajoute une URL via <a href... une foi le message arrive quand on clique sur le lien l'URL ressemble a ca http://\"monsite.net\"/ ca ne marche donc plus.
comment faire ?
formulaire HTML
<FORM method="POST" action="../scripts/php/newsletter.php">
<P>Contenu:<br>
<textarea name="message" cols=50 rows=10></textarea>
</p>
<INPUT type="submit" value="Envoyer la Newsletter">
</form>
script php
<?php
session_start();
mysql_connect("localhost", "root", "root");
mysql_select_db("mabd.net");
$reponse = mysql_query("SELECT * FROM inl");
$message = $_POST['message'];
$liste = '';
echo'</br><img src="../images/dates/dates.png"></br></br></br>';
while ($donnees = mysql_fetch_array($reponse) )
{
$donnees['email'];
$liste = $liste.$donnees['email'].";";
}
$mail = 'monadresse@hotmail.fr'; // Déclaration de l'adresse de destination
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // O,n filtre les serveurs qui bugs
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML
$message_txt = $message;
$message_html = $message;
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet
$date = date("d/m/Y");
$date2 = date("H:i");
$sujet = ("Newslettre du ".$date ." a " .$date2);
//=========
//=====Création du header de l'e-mail
$header = "From: \"newsletter@monsite.net\"<newsletter@monsite.net>".$passage_ligne;
$header.= "Reply-to: \"newsletter@monsite.net\" <newsletter@monsite.net>".$passage_ligne;+
$header.= "Bcc: $liste\n";
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail
mail($mail,$sujet,$message,$header);
echo $message ;
//==========
?>
A voir également:
- Probleme pour lien dans e-mail php
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
- É majuscule - Guide
- Lien copié ✓ - Forum Google Chrome
- Verificateur de lien - Guide
3 réponses
Bonjour :)
Plusieurs petits points :
1)
$header.= "Reply-to: \"newsletter@monsite.net\" <newsletter@monsite.net>".$passage_ligne;+
pourquoi le "+" apres le ; ?? et au lieu de ca, met :
$header.= "Reply-to: 'newsletter de monsite.net' <newsletter@monsite.net>".$passage_ligne;
(remplace tes /" par des ' quand c'est possible.. )
2)
$header.= "Bcc: $liste\n"; => $header.= "Bcc: $liste".$passage_ligne;
3) si après ça tu as toujours le bug fiat ceci :
ajoute après $message = $_POST['message'];
echo $message;
flush();
exit();
et regarde que ton $message contienne bien les données de ton textearea ;)
Copie moi le texte si tu ne vois pas d'où peut provenir la faute ;)
Plusieurs petits points :
1)
$header.= "Reply-to: \"newsletter@monsite.net\" <newsletter@monsite.net>".$passage_ligne;+
pourquoi le "+" apres le ; ?? et au lieu de ca, met :
$header.= "Reply-to: 'newsletter de monsite.net' <newsletter@monsite.net>".$passage_ligne;
(remplace tes /" par des ' quand c'est possible.. )
2)
$header.= "Bcc: $liste\n"; => $header.= "Bcc: $liste".$passage_ligne;
3) si après ça tu as toujours le bug fiat ceci :
ajoute après $message = $_POST['message'];
echo $message;
flush();
exit();
et regarde que ton $message contienne bien les données de ton textearea ;)
Copie moi le texte si tu ne vois pas d'où peut provenir la faute ;)
Ben écoute.. chez moi ca marche bien..
essai ca.. met ce code dans un fichier Test.php :
<?php
if (!isset($_POST["message"])){
echo '<FORM method="POST" action="Test.php">
<P>Contenu:<br>
<textarea name="message" cols=50 rows=10></textarea>
</p>
<INPUT type="submit" value="Envoyer la Newsletter">
</form>';
}else{
echo $_POST["message"];
}
?>
et met ton lien
'
bla bla
<a href="https://www.monsite.net/">test</a>
reblabla
'
dans le contenu.. en appuyant sur le bouton, il me fait bien le lien vers test... (cf => http://www.jjsteing.com/AEL/Test.php )
essai ca.. met ce code dans un fichier Test.php :
<?php
if (!isset($_POST["message"])){
echo '<FORM method="POST" action="Test.php">
<P>Contenu:<br>
<textarea name="message" cols=50 rows=10></textarea>
</p>
<INPUT type="submit" value="Envoyer la Newsletter">
</form>';
}else{
echo $_POST["message"];
}
?>
et met ton lien
'
bla bla
<a href="https://www.monsite.net/">test</a>
reblabla
'
dans le contenu.. en appuyant sur le bouton, il me fait bien le lien vers test... (cf => http://www.jjsteing.com/AEL/Test.php )
apres avoir test tout se que tu a dit j'ai remi un lien dans le textera
<a href="https://www.monsite.net/">test</a>
et apres avoir fait un echo $message voila se que ca dit
-----=36c4abedd39450c782d3d450b29f667a Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit test -------=36c4abedd39450c782d3d450b29f667a Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit test -------=36c4abedd39450c782d3d450b29f667a-- -------=36c4abedd39450c782d3d450b29f667a--