Интеграции / MODX
Sendersy + MODX
MODX Revolution + Sendersy: PHP snippet, который вы вызываете из chunks или FormIt hooks.
1. Установка
bash
# 1) Создайте snippet "sendersyMail" в Elements # 2) Вызывайте его из FormIt → &hooks=`sendersyMail`
2. Переменные окружения
bash
// MODX → System Settings → создайте setting // key: sendersy.api_key // value: sk_live_...
3. Отправка письма
php
<?php
/**
* MODX snippet: sendersyMail
* Использование с FormIt: &hooks=`sendersyMail`
* Читает &emailTo, &emailSubject, &emailTpl placeholders из FormIt.
*/
$apiKey = $modx->getOption('sendersy.api_key');
if (!$apiKey) {
$hook->addError('sendersy', 'SENDERSY_API_KEY не настроен');
return false;
}
$values = $hook->getValues();
$to = $modx->getOption('emailTo', $scriptProperties, $values['email'] ?? '');
$subject = $modx->getOption('emailSubject', $scriptProperties, 'Новая заявка');
$tplName = $modx->getOption('emailTpl', $scriptProperties, '');
$bodyHtml = $tplName
? $modx->getChunk($tplName, $values)
: '<pre>' . htmlspecialchars(print_r($values, true)) . '</pre>';
$ch = curl_init('https://api.sendersy.com/v1/emails');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'from' => 'MODX site <noreply@yourdomain.com>',
'to' => [$to],
'subject' => $subject,
'html' => $bodyHtml,
'tags' => [['name' => 'source', 'value' => 'modx']],
]),
]);
$resp = curl_exec($ch);
curl_close($ch);
return $resp ? true : false;