Лично мне часто приходится работать с различными сервисами уведомлений и sms шлюзы это, наверное, самые удобные для пользователя. Для разработчиков и программистов работать с смс шлюзом тоже обычно очень легко. Большинство из них имеют свой API и подробную документацию. По большому счёту это службы b2b от одних разработчиков для других.
Если смотреть со стороны обычного пользователя SMS шлюз отправляющий уведомления на мобильный телефон это очень удобно и безопасно. Я сейчас говорю о реально полезных сервисах, а не о всякой надоедливой рекламе 🙂
Для чего нужен sms шлюз?
- организовать напоминание пароля
- восстановление пароля или каких то других конфиденциальных данных.
- авторизация, подтверждение личности \ аккаунтов
- различные напоминания
- уведомления
- реклама \ спам
Что лучше sms шлюз или напрямую с оператором?
Все ОпСоСы дают такую возможность для крупных B2B клиентов, но в большинстве случаем это всё мало афишируется и нужно в каждом конкретном случае связываться с их менеджерами и договариваться о подобном сервисе услуг. Конечно же если есть возможность работать напрямую с мобильным оператором, то лучше сделать именно так. Но только вот для этого понадобится заключить договор с оператором и не все ещё операторы захотят работать с мелкими ИП или ООО, а уж с физиками точно не будут. Опять же цены на смс, при работе напрямую, будут значительно меньше, но там тоже всё зависит от объемов и если вам нужно отправлять не больше 100 смс в месяц, то возможно напрямую от оператора это выйдет даже дороже.
Есть ещё подводные камни при работе напрямую с оператором:
- Не у всех операторов есть удобные инструменты и API.
- Нет никаких админок и прочего, что вы привыкли видеть у разрекламмированых в интернете смс шлюзах.
Например при работе с пчелайном мне пришлось освоить особый протокол SMPP , по которому обычно операторы шлют свои SMSки, а вместо админки была только электронная почта одного из сотрудников пчелайна, который помогал решить возникшие вопросы. Но это было всё давно и сейчас возможно уже всё поменялось. Ещё советую посмотреть в сторонут теле2, у них есть удобный интерфейс для бизнес клиентов и возможность слать смс напрямую от них через API, только вот цены при небольших объёмах не очень интересные.
Итого. Если есть возможность и устраивает цена, работать напрямую с оператором гораздо надёжнее и выгоднее. В противном случае нужно смотреть в сторону обычных sms шлюзов.

Таблица — обзор SMS шлюзов по ценам и услугам
Данную табличку собирал сам для себя. Но возможно она ещё кому понадобится, тут только три самых популярных шлюза. Я отобрал именно эти шлюзы, потому что у них есть удобная админка, откуда можно вручную слать sms, а так же своё API, которое понадобиться для автоматизации процесса. Данные на текущий 2020 год, но естественно цены у них могут очень быстро меняться. Если кто-то захочет расширить таблицу и дополнить — пишите в комментарии. При желании могу выложить это в exel формате.
| Название | адрес | буквенное имя | админка\API | Тариф зависит от суммы платежа в месяца | МТС | Билайн | Мегафон | Теле2 | дешёвые смс без гарантии доставки и без имени |
| sms.ru | http://sms.ru/ | бесплатно | есть\есть | нет | 2,12 | 2,38 | 2,37 | 2,38 | 5 смс бесплатно на свой номер |
| epochta | https://www.epochta.ru/ | от 1000-2000 | есть\есть | да | 2,22 | 2,49 | 2,75 | 2,83 | есть от 0,30р |
| smsc.ru | https://smsc.ru/ | от 1000-2000 | есть\есть | да | 1,5 | 2,15 | 1,92 | 2,45 | нет |
Как видно смс у них стоят примерно одинаково и всё зависит опять от объемов. Из последнего что использовал сам и настраивал это SMS.ru. Собственно от них мне прилетает бесплатная sms при бекапе этого сайта на сервере. Если использовать в личных нуждах на один номер у них есть 5 бесплатных sms в день. Этого более чем достаточно, чтобы оповещать себя о каких-либо сбоях на сайте. Так что рекомендую для админов и блогеров будет полезно.
В качестве бонуса покажу пример простейшего скрипта на php для работы с sms.ru.
Скрипт на php для отправки бесплатного sms через sms.ru
Для работы скрипта нужна будет библиотека, которую можно скачать на сайте sms.ru, а так же тут отправляется письмо по электронной почте. Для отправки письма нужно настроить сервер, но в большинстве случаев это уже сделано. Если письмо не нужно, можно просто закоментировать 3 и 4 строку сверху и снизу. А ещё тут используется определение IP адреса нашего сервера из вот этой статьи.
Для работы так же нужен уникальный ключ, который можно получить бесплатно при регистрации на sms.ru.
<?php
$ipaddr = system('curl ifconfig.me');
if (mail("pochta@ya.ru","backup hosting server", "бекап сайтов готов! Мои ИП: $ipaddr"))
{echo "Сообщение передано функции mail, проверьте почту в ящике.";
require_once 'sms_lib/sms.ru.php';
$smsru = new SMSRU('B$FDS$-TFD234F-7360-826D-CDDFR7JJA44B'); // Ваш уникальный программный ключ, который можно получить на главной странице
$data = new stdClass();
$data->to = '79055684477'; //номер куда уйдет смс
$data->text = 'Бекап сайта готов! Мои ИП:'.$ipaddr; // Текст сообщения
// $data->from = ''; // Если у вас уже одобрен буквенный отправитель, его можно указать здесь, в противном случае будет использоваться ваш отправитель по умолчанию
// $data->time = time() + 7*60*60; // Отложить отправку на 7 часов
// $data->translit = 1; // Перевести все русские символы в латиницу (позволяет сэкономить на длине СМС)
// $data->test = 1; // Позволяет выполнить запрос в тестовом режиме без реальной отправки сообщения
// $data->partner_id = '1'; // Можно указать ваш ID партнера, если вы интегрируете код в чужую систему
$sms = $smsru->send_one($data); // Отправка сообщения и возврат данных в переменную
if ($sms->status == "OK") { // Запрос выполнен успешно
echo "Сообщение отправлено успешно. ";
echo "ID сообщения: $sms->sms_id. ";
echo "Ваш новый баланс: $sms->balance";
} else {
echo "Сообщение не отправлено. ";
echo "Код ошибки: $sms->status_code. ";
echo "Текст ошибки: $sms->status_text.";
}
}
else
echo "Функция mail не работает, свяжитесь с администрацией хостинга.";
?>
Естественно этот скрипт вызывается в нужное нам время из других скриптов, например после удачного\неудачного бекапа или когда появился новый комментарий на сайте. Тут уже всё будет зависеть от вашей фантазии.