Probleme pour lien dans e-mail php

Fermé
caroline - 1 janv. 2010 à 13:50
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 2 janv. 2010 à 10:47
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 ;
//==========
?>
A voir également:

3 réponses

jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
1 janv. 2010 à 14:29
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 ;)

0
Bonjour

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--
0
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 )
0
apres avoir mis le code que tu ma forni dans un fichier PHP , dans l'email il y a bien un lien mes qui rafréchi la page du webmail
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
2 janv. 2010 à 10:47
ben.. tout depend ce que tu as mis dans le texte..

si tu met ca

<a href=google.com>test</a>

il te fera un lien dans ton mail vers google.com
0