[RESOLU] Envoi d'un mail à une liste d'expéditeurs d'une base de données

Eléphant du PHP | 91 Messages

22 févr. 2023, 14:52

Bonjour,
Je souhaite envoyer un mail à une liste d'expéditeurs figurant dans une base de données, ceci dit je ne sais pâs du tout comment faire, quelqu'un pourrait m'aider ?
[code]$reponse = $pdo->query( 'SELECT * FROM matable' );
while($donnees = $reponse->fetch()){							 
   								 
$destinataires = implode(" ; ", array_values($donnees['email']));
									 									 
$dest="[email protected]";
$objet="Objet du message";
$message2 ="Texte du message";
$entetes = "From: [email protected] \n";
$entetes .= "X-Priority: 1 \n";
$entetes .= "MIME-Version: 1.0 \n";								  								  
$entetes.="Cc: $destinataires \n";
$entetes .= "Content-Type: text/html; charset=utf-8\r\n";  
  if(mail($dest,$objet,$message2,$entetes)) { ; 
}	
}
$reponse->closeCursor();	 [/code]

Avatar du membre
Mammouth du PHP | 1564 Messages

22 févr. 2023, 17:22

$reponse = $pdo->query('SELECT email FROM matable');
while($donnees = $reponse->fetch()){

	$destinataire = $donnees['email'];

	$expediteur = "[email protected]";
	$objet = "Objet du message";
	$message2 ="Texte du message";
	$entetes = "From: $expediteur\r\n";
	$entetes .= "X-Priority: 1\r\n";
	$entetes .= "MIME-Version: 1.0\r\n";								  								  
	//$entetes .="Cc: $destinataires\r\n"; ne jamais faire des copie des mails sauf pour un petit groupe où tout le monde se connait, ça évite de divulguer les adresses de tout le monde (utiliser reply-to pour indiquer une adresse à qui répondre mais ça se fait tout seul normalement, ce sera reply-to à $expediteur)
	$entetes .= "Content-Type: text/html; charset=utf-8\r\n";  
  if(mail($destinataire, $objet, $message2, $entetes)) {
		echo "message envoyé";
	}	
}
$reponse->closeCursor();	
Dans le cas où tu souhaite quand même envoyer en Cc, tu doit récupérer toutes adresse d'abord puis faire un seul envoi :
$adresses = '';

$reponse = $pdo->query('SELECT email FROM matable');
while($donnees = $reponse->fetch()){

	$adresses .= $donnees['email'] . ';';
	
}

//enlève le dernier point virgule :
$adresses = trim($adresses, ";");

//envoi du mail :
$expediteur = "[email protected]";
$objet = "Objet du message";
$message2 ="Texte du message";
$entetes = "From: $expediteur\r\n";
$entetes .= "X-Priority: 1\r\n";
$entetes .= "MIME-Version: 1.0\r\n";								  								  
$entetes .="Cc: $adresses\r\n";
$entetes .= "Content-Type: text/html; charset=utf-8\r\n";  
if(mail($destinataire, $objet, $message2, $entetes)) {
	echo "message envoyé";
}

Eléphant du PHP | 91 Messages

22 févr. 2023, 18:53

Super ça marche, mille mercis à vous :-)