S
Sendersy

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;

Готовы попробовать?

Получите API-ключ за 30 секунд.

Создать аккаунт