Bonjour,
voilà mon problème où je sèche depuis plus d'une semaine maintenant :
Mon but est d'envoyer plusieurs mails smtp transactionnels à la fois avec Brevo (ex sendineblue).
L'envoi d'un seul mail fonctionne nickel donc je poursuit en metant une boucle.
Mais dès que j'inclue mon while cela ne fonctionne plus, j'obtient toujours qu'un seul mail alors que j'ai bien 2 mails dans ma requete.
Ma boucle ne fonctionne pas.
Quesqu'il ne va pas ?
Mon code ci-dessous :
<?php
require_once(__DIR__ . '/vendor/autoload.php');
include("../php/connexion.php");
$config = Brevo\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', 'xkeysib-*************');
$apiInstance = new Brevo\Client\Api\TransactionalEmailsApi(
new GuzzleHttp\Client(),
$config
);
// Ma liste de reservation pour l'envoi des emails :
$query = "SELECT * FROM `reservation` WHERE date_resa = CURRENT_DATE()+1 && formule =1";
$result = mysqli_query($bdd,$query);
if(mysqli_num_rows($result)>=1){
while($row = mysqli_fetch_array($result)){
// Preparation de l'email de rappel :
$nom = $row["nom"];
$email_destinataire = "test@localhost.fr";
$date_resa = "01/01/2025";
$session_1 = "• 15h00";
$session_2 = "• 16h00";
// Préparation des paramètres dynamiques pour l'email :
$params = [
'nom' => $nom,
'date' => $date_resa,
'session1' => $session_1,
'session2' => $session_2
];
$sendSmtpEmail = new \Brevo\Client\Model\SendSmtpEmail([
'subject' => 'Confirmation de réservation',
'sender' => ['name' => 'name', 'email' => 'test@localhost.fr'],
'replyTo' => ['name' => 'name', 'email' => 'test@localhost.fr'],
'to' => [['name' => $nom, 'email' => $email_destinataire]],
'templateId' => 2,
'params' => $params
]);
$result = $apiInstance->sendTransacEmail($sendSmtpEmail);
}
}
?>
Merci beaucoup pour vos explications et votre aide ;)
Hello, je pense que ton problème vient du fait que tu réassignes une valeur à ta variable $result à la fin de ta boucle while :
$result = $apiInstance->sendTransacEmail($sendSmtpEmail);
Or ta boucle while est senseée fonctionner avec le $result qui est le retour de ta requête SQL :
$result = mysqli_query($bdd,$query);
....
while($row = mysqli_fetch_array($result))
Il conviendrait de définir un autre nom de variable pour récupérer le résultat de la méthode dans la boucle while.
Ouah bien vu, ba voilà problème résolu !
J'me sans telement bête de ne pas avoir vu ça avant :/
Merci JRcode pour ton efficacité et ta rapidité, Chapeau !