Новое

Почему SMS не доходят: 10 причин и решения

SMS не приходят

Часто причина — блокировка номера, недоступность сети, несоответствие формата, ошибки в API‑ключе, превышение ограничений оператора, наличие белого списка, проблемы с кодированием, ограничения по времени, отсутствие мгновенной доставки, и неверные маршруты. Ниже подробно разберём каждую.

1. Номер отправителя заблокирован оператором

  • Операторы часто ставят номера в «черный список» из‑за спама или массовой рассылки без согласия. Это приводит к блокировке всего сообщения.
  • Решение: Проверяйте статус senderid через API провайдера и подключайте калькулятор узлов перед отправкой.

Проверка блокировки

  1. Запросите диалог с /status в API.
  2. Проверьте ответ blocked = true.
  3. Если заблокирован, подключите новый senderid через форму на портале.

2. Ошибка в формате номера получателя

  • Номера в международном формате (+79991234567) обязательны для большинства операторов.
  • Неправильные коды страны, отсутствие +, лишние пробелы – всё это приводит к отбрасыванию.

Пример проверки

function validatePhone(number) {
  const regex = /^+d{11,15}$/;
  return regex.test(number);
}

3. Переполнение лимита отправки за сутки

  • Многие провайдеры ограничивают количество сообщений. При превышении – сообщения откладываются или отклоняются.
  • Решение: Включите фильтр по ROI и расставьте лимиты в настройках.

4. Неактивный баланс аккаунта

  • Когда баланс 0, API автоматически блокирует отправку.
  • Проверяйте баланс через панель.

5. Недоступность SMS‑сети оператора получателя

  • В регионах с плохим покрытием сообщения «спадать» частее. Это особенно актуально для удалённых областей.
  • Решение: добавьте резервный номер, используйте метрику доставки.

6. Неправильно настроенное интеграционное API

  • Ошибки в HTTP‑запросах (метод POST, неверный заголовок) приводят к отказу сервера.
  • Пример корректного запроса:
POST /messages HTTP/1.1
Host: api.smsprovider.ru
Authorization: Bearer {token}
Content-Type: application/json

{
  "sender": "Company",
  "receiver": "+79991234567",
  "text": "Привет!"
}

7. Превышение лимита длины сообщения

  • SMS ограничено 160 символами Unicode, 70 символами GSM. При превышении используется мультичастное сообщение.
  • Операторы могут отбрасывать части, если кодировка неверна.
  • Решение: используйте segmenting в API или сокращайте сообщение.

8. Нет согласия получателя (opt‑out)

  • В РФ закон обязывает хранить список opt‑out. Отправка без согласия → блокировка.
  • Решение: храните файл optout.json и проверяйте на входе.

Оптимальный шаблон хранения

ПараметрТипПример
phoneстрока+79991234567
optedOutбулевыйtrue
dateOptOutдата2026-03-12

9. Проблемы с кодировкой текста

  • Некорректная кодировка UTF‑8 ↔ ISO‑8859‑1 приводит к некорректному отображению.
  • Проверяйте через iconv перед отправкой.

10. Неправильный маршрут доставки (shortcodes vs longcodes)

  • Скоро «shortcode» 5‑значный часто переадресованы в официальный порт. Ошибки в шорткоде → отклоняются.
  • Решение: правильно указывайте routingId в API.

Как повысить доставляемость

Сравнение протоколов

ПротоколПреимуществаНедостатки
SMPPНизкие затраты, высокая скоростьТребуется сложная настройка
HTTP APIПростая интеграция, гибкая документацияБолее высокие задержки

Вывод

Проблемы доставки SMS часто вызваны техническими деталями, которые можно быстро выявить, если следовать рекомендациям. Проверяйте статус отправителей, формат номера, баланс, API‑ключ, лимиты, согласие, кодировку и маршруты. Используйте автоматизированную аналитическую панель, чтобы каждый отказ превращался в полезную метрику. В итоге – устойчивый поток сообщений, повышающие удержание и конверсию клиентов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *