8791 sujets

Développement web côté serveur, CMS

Bonjour, Smiley smile

J'ai fait un formulaire pour s'inscrire à une newsletter, tout fonctionne et
s'inscrit bien dans la BDD
Par contre, lorsque j'ai testé l'envoi de ma newsletter, (côté administratif) elle me renvoie une erreur. Je vous livre le code :

<html>
<body bgcolor="#16d4e5" text="#1625e5">

<?php
define ('DB_SERVER', 'localhost');
define  ('DB_SERVER_USERNAME', 'americanbichon');
define ('DB_SERVER_PASSWORD','');
define  ('DB_DATABASE', 'newsletter');
define ('EXPEDITEUR_NOM', 'newletters de chocolat@fr');
define  ('EXPEDITEUR_EMAIL', 'www.atelierpassion.123.fr');








$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD)
or
die('erreur de connexion : '.mysql_error());

mysql_select_db(DB_DATABASE,$connect);
$headers = "mine-version:1.0\r\n";
$headers .= 'From:' .EXPEDITEUR_NOM;
$headers .= '<'. EXPEDITEUR_EMAIL .">'\r\n";
$headers .= 'reply-to :' .EXPEDITEUR_EMAIL."\r\n";
$headers .= 'content-type: text/plain;';
$headers .= 'charset="iso-8859-1"'."\r\n";
$headers .= "content-transfert-encoding : 8bit\r\n";//à partir de cette ligne cest pour hébergeur méthode de transfert
$headers .= 'X-mailer : php/'.phpversion()."\r\n";
$message = stripslashes($_POST['message']);
$sujet = stripslashes($_POST['sujet']);
$message .= "n\n\n blablabla
(http://atelierpassion.123.fr)
 inscription.php.";
 $req = mysql_query("SELECT email FROM newsletters")or die (mysql_error());

 while
 
 ($res = mysql_fetch_array($req))

{
$retval = mail($res['email'],$sujet,$message,$headers);
echo 'envoi à '.$res['email']. ':';
if($retval)
      {echo 'tout va bien<br/>';}
	 
	  else
	  {echo 'erreur<br/>';}
} 
mysql_close();

 
?>
</html>
</body>
 

Merci d'essayer de me dépanner
Modifié par americanbichon (05 Apr 2009 - 19:32)
Salut,

ce serait sympa de nous dire quelle est l'erreur renvoyée ! Smiley langue

Au passage, bgcolor est obsolète depuis les années 40 et devrait être remplacé par du code css (body { background-color: #16d4e5;})... quant à text="#1625e5" il est tellement obsolète que je ne sais même pas à quoi il sert ! Smiley lol
Merci de me signaler pour bgcolor.
En fait, il ne me renvoie pas de parse erreur ou autre, il me renvoie simplement l'écho que j'ai mis dans la boucle

Il me dit envoi à : m'inscrit les adresses emails qui sont enregistrés dans la BDD et juste à côté me met erreur, alors que normalement il aurait dû m'inscrire "tout va bien"
Modifié par americanbichon (26 Mar 2009 - 23:11)
Salut
Donc ton erreur vient de la fonction mail().
Cela vient surement de ta configuration du serveur. Si tu est en local (esayphp ou wamp) il y a une manip à faire. Si tu est online voit avec ton hébergeur si il n'y a pasdes restriction avec la fonction mail.
Ah OK !

Ce qui est bizarre c'est que tu n'as pas "échappé" mail en utilisant @ -en clair en faisant $retval = @mail(...)- et donc tu devrais avoir un message d'erreur si la fonction se plante.

Tu pourrais essayer de rajouter en tout début de script
error_reporting(E_ALL);
pour avoir le message.
Merci à toi heyoan mais cela ne fonctionne pas.
Je vais aller voir comme le dit benj les conditions des mails sur mon hébergeur, c'est 123.fr ; il est vrai que j'ai un formulaire contact et que je n'ai jamais les redirections, car il y a trop de spams. Merci encore
Benj

Tu avais raison, cela vient de mon hébergeur, aucun problème dans mon code;
En changeant d'hébergeur, le code termine bien sa boucle.

Merci à tous 2