ldc-crm/app/Jobs/SyncEmailOptOuts.php
2026-10-08 10:06:20 +02:00

53 lines
1.4 KiB
PHP

<?php
namespace App\Jobs;
use App\Lib\Helpers\MailjetHelper;
use App\Models\BrandContactList;
use Carbon\Carbon;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
use App\Exceptions\MailjetException;
class SyncEmailOptOuts implements ShouldQueue
{
use Queueable;
/**
* Execute the job.
*
* @return void
*/
public function handle(): void
{
try {
$contactLists = MailjetHelper::getContactLists();
if (empty($contactLists)) {
return;
}
foreach ($contactLists as $contactList) {
$listId = $contactList['ID'];
$brandModel = BrandContactList::getBrandContactListByMailjetListId($listId);
if ($brandModel) {
$unsubscribedContacts = MailjetHelper::getUnsubscribedContacts($listId, Carbon::now()->subDay());
if (empty($unsubscribedContacts)) {
continue;
}
foreach ($unsubscribedContacts as $unsubscribedContact) {
$contact = MailjetHelper::getContact($unsubscribedContact['ContactID']);
MailjetHelper::unsubscribeContact($brandModel->brand, $contact[0]["Email"]);
}
}
}
} catch (MailjetException $e) {
report($e);
return;
}//end try
}
}