8797 sujets

Développement web côté serveur, CMS

J'aimerai savoir s'il est possible d'ajouter un expediteur grâce à cette méthode lorsque l'on envoie un email.

Mon code actuel :
if ($_POST['hasard'] != null && $_POST['titre'] != null && $_POST['gagnant'] != null && $_POST['perdant'] != null )
{
$hasard = htmlentities($_POST['hasard']);
$titre = htmlentities($_POST['titre']);
$gagnant = stripslashes($_POST['gagnant']);
$perdant= htmlentities($_POST['perdant']);

$result = mysql_query("SELECT email FROM joueur5  GROUP BY email order by rand() limit ".$hasard);

if (!$result) 
{
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

while($row = mysql_fetch_array($result)) 
{
echo $row[0]; // la valeur du champ email
$s = mysql_query("UPDATE joueur5 SET gagnant = '1' WHERE email= '".$row[0]."'");
}

$r = mysql_query("SELECT DISTINCT email FROM joueur5 WHERE gagnant='1'");
while($row = mysql_fetch_array($r)) 
{
echo $row[0];
$mail  = "$row[0]";
$titre   = "$titre";
$message = "$gagnant";
$expediteur = "From: l'email de notre choix";

mail($mail, $titre, $message, $expediteur);
}


Tout fonctionne bien, le seul problème est que l'adresse mail de l'expéditeur est anonymous@ovh.... et nom l'email de ma variable expediteur.

Cela vient-il d'un erreur dans mon code ou est-ce une protection pour éviter des "fraudes" sur l'email?
Comme le signale dew ainsi que la doc. officielle de php, il est important de bien déclarer les en-têtes dans la quatrième paramètre de la fonction mail().

De plus, il est peut-être intéressant d'utiliser la classe phpmailer() pour plus de simplicité !