Интеграция 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 рабочий день.







