|
|
@@ -67,7 +67,9 @@ class NewsController extends AdminController |
|
|
|
$users = $this->em->getRepository($this->em->getClassMetadata(UserInterface::class)->getName())->findAllByNewsletter($newsletter) ; |
|
|
|
|
|
|
|
$countUsers = count($users) ; |
|
|
|
$messagesArray = []; |
|
|
|
|
|
|
|
$packageMessagesArray = []; |
|
|
|
$packageMessageLimit = 50 ; |
|
|
|
|
|
|
|
$paramsTemplate = [ |
|
|
|
'news' => $news, |
|
|
@@ -75,9 +77,14 @@ class NewsController extends AdminController |
|
|
|
'user' => $this->security->getUser() |
|
|
|
] ; |
|
|
|
|
|
|
|
$i = 0 ; |
|
|
|
foreach ($users as $user) { |
|
|
|
if(!isset($packageMessagesArray[$i])) { |
|
|
|
$packageMessagesArray[$i] = [] ; |
|
|
|
} |
|
|
|
|
|
|
|
if($user->getEmail() && strlen($user->getEmail())) { |
|
|
|
$messagesArray[] = [ |
|
|
|
$packageMessagesArray[$i][] = [ |
|
|
|
'To' => [ |
|
|
|
[ |
|
|
|
'Email' => $user->getEmail(), |
|
|
@@ -94,18 +101,24 @@ class NewsController extends AdminController |
|
|
|
'CustomCampaign' => $news->getTitle(), |
|
|
|
'DeduplicateCampaign' => true |
|
|
|
] ; |
|
|
|
|
|
|
|
if(count($packageMessagesArray[$i]) >= $packageMessageLimit) { |
|
|
|
$i ++ ; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if($countUsers > 0) { |
|
|
|
$mj = new \Mailjet\Client($this->mailjetTransport->getApiKey(), $this->mailjetTransport->getApiSecret(),true,['version' => 'v3.1']); |
|
|
|
|
|
|
|
$body = [ |
|
|
|
'Messages' => $messagesArray |
|
|
|
]; |
|
|
|
$response = $mj->post(Resources::$Email, ['body' => $body]); |
|
|
|
foreach($packageMessagesArray as $messagesArray) { |
|
|
|
$body = [ |
|
|
|
'Messages' => $messagesArray |
|
|
|
]; |
|
|
|
$response = $mj->post(Resources::$Email, ['body' => $body]); |
|
|
|
} |
|
|
|
|
|
|
|
if($response->success()) { |
|
|
|
if(isset($response) && $response->success()) { |
|
|
|
$this->addFlash('success', 'Actualité envoyée à '.$countUsers.' utilisateurs.'); |
|
|
|
|
|
|
|
$news->setIsSent(true) ; |
|
|
@@ -113,8 +126,6 @@ class NewsController extends AdminController |
|
|
|
$this->em->flush() ; |
|
|
|
} |
|
|
|
else { |
|
|
|
print_r($response->getBody()) ; |
|
|
|
die() ; |
|
|
|
$this->addFlash('error', "Une erreur est survenue lors de l'envoi de l'actualité."); |
|
|
|
} |
|
|
|
} |