Svp probleme avec fonction mail() en php

houria -  
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis en train de mettre en place une newsletter. mais j'ai en petit probleme pour l'envoie de cette newsletter a tous les membres.

voici mon code:
$to = 'adresse_destinataire@gmail.com';
$date=date("d-m-Y");
$subject = 'newsletter du '.$date;

// Headers
$headers = 'From:lesbonstuyaux@gmail.com'."\n";
$headers = 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
$headers .= "\r\n";
//CURL
$ch = curl_init("http://.../lister_annonces.php");
$fp = fopen("newsletter/newsletter5-".$date.".html", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
//message
$msg = file_get_contents("newsletter/newsletter5-".$date.".html");
// Function mail()
//mail($to, $subject, $msg, $headers);
if (mail($to,$subject,$msg,$headers))
{
echo "l email a ete envoye";
}
else
{
echo"erreur: email non envoye";
}

le mail s'envoie bien, mais le voie comme un fichier texte, c'est a dire, n'interprete pas les balises, donc mon mail est sous la forme:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
</br></br>
<img src="../logo.JPG" width="400" height="200"></br></br>
</div>
<p class="titre"><b>NEWSLETTER DU 06-05-2008</b></p></br>
<p class="preambule">
L e s b o n s t u y a u x ?

C'est quoi ?

L'Association les bons tuyaux (ALBT) n'a pas un but économique. Le but de l'ALBT est l'échange entre ses
membres de " bons tuyaux ", autrement dit d'informations utiles.
...
...

</p>

</br></br><p class="titre">touareg</p>
</br>voiture a vendre</br><img src="images/2007-Volkswagen-Touareg.png">
</br></br>
</br></br><p class="titre">test</p>
</br>test d'affichage d'annonces dans le document pdf, avec plusieur image

...
...
...
</html>

Si vous avez des idées pour faire en sorte que mon code html soit bien interpreté..
je vous en remercie d'avance..
A voir également:

8 réponses

ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
essaie de mettre ton charset en iso

charset= iso-8859-1\n

je suis pas sur, a essayé ...
0
houria
 
toujour le meme probleme..

mes balises html ne sont pas interpretés..
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
oui jvien d'essayé mai garde quan même le iso c'est mieux pour les caracteres speciaux, tu a oublier un point avant le = du deuxieme $header .
0
houria
 
Alors, ca marche un peu mieux, ma page html est bien envoyer par mail, mais un peu comme une piece jointe.. il fau que je clic dessu, et me l'ouvre dans un nouvel onglet..d'ailleur, il telecharge meme la page sur le pc, et l'ouvre dans le navigateur, et c'est pas du tout ce que je souhaite.. j'aimerais que toute la page sois dans le mail..
si tu as une petite idée stp...
0
houria
 
en fait, quand je fais mes headers ainsi :

// Headers
$headers = 'From:lesbonstuyaux@gmail.com'."\r\n";
$headers = 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
$headers .= "\r\n";

donc ma page est dans mon mail, mais les balises html ne sont pas interpreté..

lorsque je remplace les \r\n par \n ma page est nikel, mais il faut la telecharger, et n'est pas directement mise dans le mail..
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
tu a mis le point au deuxieme $headers?
0
houria
 
oui j'ai bien mis le point au header, et j'ai changé le charset.. mais je pense que le probleme est bien avec les headers.
il doit peut etre pas etre declaré comme ca, car en fait, dans mon mail, il me renvoi carement l'entete qu'il affiche dans le corp du massage.. et c'est pas tres normal ca..
donc il doit pas etre reconnu comme entete je supose..
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
<?php
ini_set('SMTP', '192.168.1.254');
ini_set('smtp_port', '25');
ini_set('sendmail_from', 'g.boujeon@udaf-rhone.fr');
$to = 'g.boujeon@udaf-rhone.fr';
$date=date("d-m-Y");
$subject = 'newsletter du ';

// Headers
$headers = 'From:g.boujeon@udaf-rhone.fr'."\n";
$headers .= 'Mime-Version: 1.0'."\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "\n";
//CURL
//$ch = curl_init("http://.../lister_annonces.php");
//$fp = fopen("mail.html");
//curl_setopt($ch, CURLOPT_FILE, $fp);
//curl_setopt($ch, CURLOPT_HEADER, 0);
//curl_exec($ch);
//curl_close($ch);
//fclose($fp);
//message
$msg = file_get_contents("mail.html");
// Function mail()
//mail($to, $subject, $msg, $headers);
if (mail($to,$subject,$msg,$headers))
{
echo "l email a ete envoye";
}
else
{
echo"erreur: email non envoye";
}
?>

Moi j'ai fai comme ca ca marche

il faut remodifier tes parametres
0

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

Posez votre question
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
Pour toi ca donne ca, essaye et tien moi au courant, j'ai mis les fonctions curl en commentaire je sais pas a quoi ca te sert donc remet les si tu veut en tous cas ca marche comme ca .

<?php
$to = 'adresse_destinataire@gmail.com';
$date=date("d-m-Y");
$subject = 'newsletter du '.$date;

// Headers
$headers = 'From:lesbonstuyaux@gmail.com'."\n";
$headers .= 'Mime-Version: 1.0'."\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "\n";
//CURL
//$ch = curl_init("http://.../lister_annonces.php");
//$fp = fopen("mail.html");
//curl_setopt($ch, CURLOPT_FILE, $fp);
//curl_setopt($ch, CURLOPT_HEADER, 0);
//curl_exec($ch);
//curl_close($ch);
//fclose($fp);
//message
$msg = file_get_contents("newsletter/newsletter5-".$date.".html");
// Function mail()
//mail($to, $subject, $msg, $headers);
if (mail($to,$subject,$msg,$headers))
{
echo "l email a ete envoye";
}
else
{
echo"erreur: email non envoye";
}
?>
0
houria
 
donc c'était une histoire de quottes et doubles quottes si j'ai bien compris.. en tout cas, j'ai fait copier coller de ce que tu m'a envoyé et ca marche parfaitement.. je t'en remercie vraiment.. ca fait presque une semaine que je suis sur cette histoire de mail! ! ! , ca fait plaisir! ! ! et c'est rageant de passer autant de temps sur si peu! !
mirci beaucoup! ! ! ! ! ;-)
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
au plaisir de t'avoir été d'une quelconque utilitée ;) c'est ca l'inconvenient avec le php on planche souvent sur une erreur alors que ca peut venir d'un point ou un guillemet oublié, c'est rageant !

@ bientot

;)
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
juste une question pour info, a quoi sert la fonction curl ?
0
houria
 
//CURL
$date=date("d-m-Y");
$ch = curl_init("http://les-bons-tuyaux.ch/houria/lister_annonces_nl.php");
$fp = fopen("newsletter/newsletter11-".$date.".html", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
$msg = file_get_contents("newsletter/newsletter11-".$date.".html");

ma page est en php..je ne peut envoyer par mail des requete php..
donc curl sert a recuperer le resultat,et tout reformater en html.. pour avoir une belle page entierement en html..
je sais pas si c'est claire... mais ca peut te mettre le tout aussi en un fichier texte.. cest un peu comme si tu prenais une page web, et que tu demandais a t'afficher la source.. dans la source tu n'as pas de code php, mais le code generé en html..
voila..
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
oki merci pour ce petit cour express ;)

@+
0