Інтеграція email-рассилки (Brevo/Sendinblue)
Brevo (раніше Sendinblue) — багатоканальна платформа з гарним співвідношенням ціна/можливості. Надає email, SMS, WhatsApp, push-сповіщення та CRM в одному місці. Безплатний план: 300 листів/день.
Підключення через API
// composer require brevo/php-api-v3-sdk
$config = Brevo\Client\Configuration::getDefaultConfiguration()
->setApiKey('api-key', env('BREVO_API_KEY'));
$apiInstance = new Brevo\Client\Api\TransactionalEmailsApi(
new GuzzleHttp\Client(), $config
);
$sendSmtpEmail = new \Brevo\Client\Model\SendSmtpEmail([
'subject' => "Замовлення #{$orderId} підтверджено",
'sender' => ['name' => 'Магазин', 'email' => '[email protected]'],
'to' => [['name' => $name, 'email' => $to]],
'htmlContent' => $htmlBody,
'params' => ['ORDER_ID' => $orderId, 'TOTAL' => $total]
]);
$apiInstance->sendTransacEmail($sendSmtpEmail);
Трансакційний шаблон
$email = new \Brevo\Client\Model\SendSmtpEmail([
'templateId' => 42, // ID шаблону в Brevo
'to' => [['email' => $to]],
'params' => ['ORDER_ID' => $orderId, 'NAME' => $name]
]);
Управління контактами
$contactsApi = new Brevo\Client\Api\ContactsApi(new GuzzleHttp\Client(), $config);
$createContact = new \Brevo\Client\Model\CreateContact([
'email' => $email,
'attributes' => ['FNAME' => $firstName, 'LNAME' => $lastName],
'listIds' => [intval(env('BREVO_LIST_ID'))],
'updateEnabled' => true // upsert
]);
$contactsApi->createContact($createContact);
SMTP для Laravel
MAIL_MAILER=smtp
MAIL_HOST=smtp-relay.brevo.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your-smtp-password
MAIL_ENCRYPTION=tls
Тривалість інтеграції: 1 робочий день.







