В процессе отправки SMS через SMPP важно не только передать сообщение, но и получить подтверждение его доставки. Для этого используется механизм Delivery Receipt (DLR), который позволяет отправителю узнать статус каждого SMS. Отчет о доставке передается через SMSC и содержит информацию о том, было ли сообщение успешно доставлено, находится ли оно в очереди на отправку или было отклонено оператором.
Статусы доставки играют ключевую роль в мониторинге эффективности SMS-рассылок, а также помогают выявлять возможные проблемы с номерами, маршрутизацией и фильтрацией сообщений операторами. В зависимости от конечного статуса, отправитель может предпринять дальнейшие действия, например, повторную отправку, анализ черного списка или исправление формата номеров.
Статус сообщения передается в специальном параметре message_state в ответе от SMSC. Этот параметр может принимать несколько значений, каждое из которых описывает текущее состояние отправленного SMS.
Статус | Код | Описание |
---|---|---|
DELIVERED | 0 | Сообщение успешно доставлено абоненту. |
ENROUTE | 1 | Сообщение передано в SMSC и ожидает доставки. |
EXPIRED | 2 | Время жизни сообщения истекло, сообщение не доставлено. |
DELETED | 3 | Сообщение удалено из системы до доставки. |
UNDELIVERABLE | 4 | Сообщение не может быть доставлено (недоступный номер, техническая ошибка и т. д.). |
ACCEPTED | 5 | Сообщение принято SMSC, но еще не отправлено на номер. |
UNKNOWN | 6 | Неизвестный статус, возможно, ошибка обработки в SMSC. |
REJECTED | 7 | Сообщение отклонено оператором или системой SMSC. |
DELIVERED означает, что сообщение успешно дошло до абонента и было обработано его мобильным устройством. Это подтверждение того, что SMS поступило в телефонный аппарат и, вероятно, было прочитано.
ENROUTE указывает на то, что сообщение передано в SMSC, но пока не доставлено. Такое состояние возможно, если телефон временно недоступен, выключен или находится вне зоны покрытия сети.
EXPIRED означает, что срок хранения сообщения в системе истек, но оно так и не было доставлено. Это может произойти, если телефон оставался отключенным слишком долго или абонент находится в зоне, где его сеть не поддерживает SMS.
UNDELIVERABLE указывает на невозможность доставки по техническим причинам, например, если номер не существует или оператор не поддерживает SMS.
REJECTED означает, что оператор или SMSC отказались передавать сообщение. Это может быть связано с блокировкой номера, недопустимым контентом или фильтрацией антиспам-системами.
Код ошибки | Описание |
---|---|
0x00000000 | Успешная обработка сообщения. |
0x0000000A | Недостаточно кредита (для предоплаченных аккаунтов). |
0x00000015 | Неверный формат номера (например, отсутствует код страны). |
0x00000043 | Сообщение заблокировано фильтрами оператора (например, спам-фильтр). |
0x00000058 | Номер в черном списке оператора. |
0x00000060 | Оператор не поддерживает SMS. |
0x00000063 | Ошибка маршрутизации, сообщение не может быть отправлено. |
0x00000088 | Превышено ограничение скорости отправки сообщений (Rate Limit). |
Помимо стандартных статусов, SMSC может передавать детализированные коды ошибок, которые помогают определить причину недоставки. Например, одна из распространенных ошибок — недостаточный баланс на аккаунте. Если у провайдера рассылки закончились средства на счету, SMS не будет отправляться, и система вернет ошибку, связанную с нехваткой кредита.
Другой распространенной причиной недоставки является некорректный формат номера. Если номер введен неправильно или не соответствует международному стандарту E.164, SMSC может отклонить сообщение.
Также возможны ошибки, связанные с фильтрацией сообщений оператором. Многие мобильные операторы применяют антиспам-фильтры, которые могут блокировать SMS, если они содержат запрещенные слова, ссылки или отправляются с неподтвержденного Sender ID. В таком случае сообщение получит статус REJECTED, а в коде ошибки будет указано, что оно заблокировано системой фильтрации.
Мониторинг статусов сообщений позволяет не только контролировать успешность рассылок, но и предпринимать меры для улучшения их эффективности. Например, если в отчетах о доставке часто встречаются статусы EXPIRED, это может означать, что база номеров содержит много неактивных пользователей. В этом случае стоит обновить базу данных и удалить неактивные номера.
Если в отчетах преобладают ошибки REJECTED, это может свидетельствовать о проблемах с фильтрацией сообщений оператором. В таком случае рекомендуется связаться с провайдером SMS и уточнить требования к Sender ID или содержанию сообщений.
При большом количестве UNDELIVERABLE сообщений стоит проверить, нет ли ошибок в форматировании номеров и не используются ли устаревшие маршруты.
Если сообщения остаются в статусе ENROUTE слишком долго, это может означать, что SMSC задерживает их доставку. В этом случае можно запросить у оператора информацию о причинах задержки или изменить маршрут отправки.
Статусы доставки в SMPP позволяют отслеживать судьбу отправленных сообщений и выявлять возможные проблемы с их доставкой. Их правильный анализ помогает не только контролировать качество рассылок, но и снижать затраты за счет исключения неэффективных отправок.
Использование механизмов повторной отправки, актуализация базы номеров и соблюдение требований операторов позволяют минимизировать количество ошибок и повысить конверсию SMS-кампаний.
Для получения дополнительной информации о статусах доставки и кодах ошибок, рекомендуется обратиться в техническую поддержку.