0 votes

Échec de la fonction PHP Mail()

J'essaie d'envoyer un email à plusieurs adresses, j'ai donc écrit une fonction qui extrait les emails de la base de données, et sépare chacun d'entre eux par une virgule, mais la partie mailing continue d'échouer. Cependant, une fonction similaire à getmails() fonctionne sur une autre page, donc je suis vraiment perdue quant à ce que je fais mal. Voici mon code, toute aide sera appréciée.

Merci à tous.

function getmails()
    {
    $id = mysql_query("SELECT * FROM subscribes ORDER BY subscribe_id DESC") or die(mysql_error());
$elements = array();
while( $activeArray=mysql_fetch_array($id) )
{
    $elements[] = $activeArray['subscribe_email'] ;
}
$main = implode(', ', $elements);
print $main;

}

 function announce() {

if( isset( $_POST['announce'])) {
    $ToEmail = getmails(); 
$EmailSubject = "".$_POST['title']."";
$mailheader .= "From: newsletter@subdomain.domain.com\r\n";
$mailheader = "Reply-to:".$_POST['author']."@subdomain.domain.com\r\n";
$mailheader = "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Author: ".$_POST['author']."<br>";
$MESSAGE_BODY = "Newsletter: ".$_POST['content']."<br>";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");

  }
}

4voto

Paolo Bergantino Points 199336

En plus de L'obversation de RichieHindle La raison pour laquelle votre courrier ne fonctionne pas est que vous imprimez les résultats dans la fonction au lieu de les renvoyer. Vous devez changer cela :

$main = implode(', ', $elements);
print $main;

A ceci :

return implode(', ', $elements);

2voto

RichieHindle Points 98544

Je ne sais pas si c'est votre problème ou non, mais deux des lignes qui construisent $mailheader élimine la valeur précédente, parce que vous utilisez $mailheader = ... plutôt que $mailheader .= ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X