Plusieurs "To" dans API Mailjet

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Plusieurs "To" dans API Mailjet

Re: Plusieurs "To" dans API Mailjet

par ynx » 05 août 2021, 08:17

Oui c'est bien la bonne solution, tu n'es pas loin.

Le hic vient du fait que tu as ajouté des crochets autour de la variable $mails dans la construction du tableau $body ("To" => [$mails]).
La clé "To" attends un tableau contenant la liste des adresses, or à cause de l'ajout des crochets, tu y affectes un tableau qui contient le tableau contenant les adresses (tu peux faire un print_r($body) pour voir l'erreur sur la structure du tableau).

Tu devrais donc pouvoir résoudre le soucis en supprimant les crochets autour de la variables $mails dans la construction de $body, la variable $mails étant déjà le tableau contenant les adresses.

Re: Plusieurs "To" dans API Mailjet

par nagstef » 04 août 2021, 21:33

J'imagine qu'au final, ca doit ressembler à quelque chose du style, mais bien sur, y'a un hic !! :)
	
$list_mail=array('[email protected]', '[email protected]', '[email protected]');
	for ($a=0; $a<count($list_mail); $a++)
		{
		$mails[] = ["Email" => $list_mail[$a],"Name" => ""];
		}

print_r($mail);

  $body = [
    'Messages' => [
      [
        'From' => ['Email' => "[email protected]",'Name' => "G... (Message automatique)"],
        'ReplyTo' => ['Email' => "no-reply@g....",'Name' => "G...."],
		"To" => [
				$mails
				],
        'Subject' => $sujet,
        'TextPart' => "",
        'HTMLPart' => $message,
        'CustomID' => "AppGettingStartedTest",
       ]
    ]
  ];

Re: Plusieurs "To" dans API Mailjet

par nagstef » 04 août 2021, 16:14

C'est bien ce que je pensais, mais là, je me heurte à un souci de compétence technique sur la manière de faire la chose !
Pourriez-vous m'expliquer comment créer ce tableau de destinataires, et l'intégrer dans le 'To' !

J'ai les 'compétences' pour comprendre une méthode proposée, l'adapter et parfois l'améliorer, mais de ce qui est de la créer en amont, j'ai de malheureuses lacunes !

Merci de ton/votre aide éventuelle !

Stéphane

Re: Plusieurs "To" dans API Mailjet

par @rthur » 04 août 2021, 12:21

La boucle for au milieu de la définition d'une variable, c'est pas une bonne idée.
Fais ta boucle fort avant pour construire ton tableau de destinataire, et c'est ce tableau que tu vas utiliser ensuite.

Plusieurs "To" dans API Mailjet

par nagstef » 04 août 2021, 11:04

Bonjour,
J'utilise l'API de Mailjet pour envoyer des mails, et cela fonctionne impecc.

Toutefois, afin d'avancer un peu, je souhaite pouvoir envoyer un même message à de multiples personnes, et là, je me heurete à un souci. Les mails seraient normalement en bdd, mais là, j'ai voulu tester simplement dans un tableau, et avec la boucle for, cela ne marche pas !

Pourriez-vous me dire quelle est mon erreur de syntaxe ?
Les variables $message et $sujet sont bien entendue renseignées !
 
$list_mail=array('[email protected]', '[email protected]', '[email protected]');

$body = [
    'Messages' => [
      [
        'From' => ['Email' => "[email protected]",'Name' => "G... (Message automatique)"],
        'ReplyTo' => ['Email' => "[email protected]",'Name' => "G....."],
		"To" => [
			for ($a=0; $a<count($list_mail); $a++)
				{
				["Email" => $list_mail[$a],"Name" => ""],
				}
				],
        'Subject' => $sujet,
        'TextPart' => "",
        'HTMLPart' => $message,
        'CustomID' => "AppGettingStartedTest",
       ]
    ]
  ];

	$mj = new \Mailjet\Client('.....f7882d4cfc','....441a5f61',true,['version' => 'v3.1']);
	$response = $mj->post(Resources::$Email, ['body' => $body]);
	$response->success() && var_dump($response->getData());
En vous remerciant !

Stéphane