Как стать автором
Обновить

Отправка бесплатного sms сообщения в linux

Время на прочтение3 мин
Количество просмотров42K
UPD: Рыская на просторах интернета набрел на новый более простой способ, без танцев с питоном( а можно и с ним если необходимо).
Оказалось что сайт sms.ru уже более полугода предоставляет Бесплатные СМС для программистов.image

Регистрация проходит на номер мобильного телефона, никаких смс отправлять для этого не нужно. На номер придет только проверочный код.

После регистрации можно отправлять до 60смс в день на свой номер, указанный при регистрации. Уже почти месяц как перевел все свои сервисы с гугла на данный сервис. Радует отсутствие минутной задержки перед отправкой и возможность получения статуса сообщения.

Отправить можно разными способами, на сайте, в разделе «Программистам» есть множество готовых примеров:

  • HTTP
  • curl для командной строки (UTF-8)
  • php (с включенным модулем curl)
  • php (без curl)
  • php (усиленная авторизация)
  • PERL (усиленная авторизация)
  • Python

Самый простой способ это открыть страницу:

sms.ru/sms/send?api_id=xxxx-xxxx-xxxxx-xxxx-xxxx&to=номер_телефона&text=hello+world
,где - xxxx-xxxx-xxxxx-xxxx-xxxx это id доступный после регистрации.

Так же есть возможность пересылки email на смс. В разделе «Почта sms.ru» можно настроить свой почтовый ящик name sms.ru письма на который будут пересылаться на телефон в виде смс. При включенной опции «обрезать до 1смс» все сообщения на свой номер будут бесплатны.




   В google calendar есть очень интересная функция — уведомления. Благодаря ей можно получать бесплатные смс на телефон о событиях в календаре. Поддерживается очень много стран и операторов сотовой связи:image

Беларусь
  • JLLC Mobile TeleSystems
  • VELCOM

Россия
  • Билайн
  • МегаФон
  • МТС
  • Скай Линк

Полный список стран здесь. (у меня например смс также приходили к операторам которых нет в списке)

Умельцы с форума wl500g.info написали парочку скриптов которые шлют любые смс через google calendar. Задержка составляет всего 1 минуту, а ограничение 20 смс в сутки пока обойти не удалось.

   Для начала нужно зарегистрироваться в gmail.

   В настройках google календаря, в пункте «настройка для мобильных устройств» ввести и активировать свой мобильный телефон. Номер телефона можно ввести только один, но впоследствии его можно будет сменить.

   Дальше устанавливаем python и bc

sudo apt-get install python
sudo apt-get install bc


   Качаем gdata-python-client питон клиент для календаря. И устанавливаем его.

wget gdata-python-client.googlecode.com/files/gdata-2.0.13.tar.gz
tar xfv gdata-2.0.13.tar.gz
rm gdata-2.0.13.tar.gz
cd gdata-2.0.13
python setup.py install


   Создаем папку /opt/etc/calendarSMS и кладем в нее питоновский скрипт, скачанный по ссылке. (если папка другая — то нужно поправить пути в файле) Я исправил все на /etc/calendarSMS

   В архиве по ссылке выше лежит конфиг файл для скрипта, его кладем рядом и правим.

[sendsms]
user: vassio
pw: *******
starttime: 120
endtime: 180
remindertime: 1
calendar: fafgttkq8ed2idfgfhdfidn6eok@group.calendar.google. com
attempt:11
delay:5

user аккаунт google
pw пароль к аккаунту google
starttime указывает через какое время будет начато мероприятие(в секундах)
endtime указывает через какое время будет закончено мероприятие(в секундах)
remindertime время напоминания(в минутах)
calendar Идентификатор календаря (например fafgttkq8ed2idfgfhdfidn6eok@group.calendar.google. com). Можно посмотреть в настройках календаря — подробные сведения конкретного календаря, поле «адрес календаря» и там справа в скобках
attempt Максимальное количество попыток установить новое напоминание в календарь
delay Время ожидания между попытками

   Дальше нужно скачать и положить файл sendsms в туже папку /opt/etc/calendarSMS (если меняли путь то не забудьте поправить его везде)

   Для синхронизации времени перед каждой отправкой в примере используется ntpclient. Он используется только в предыдущем пункте. В Убунте я исправил его на ntpdate и все заработало.

   Не забываем дать права на запуск

chmod 777 /opt/etc/calendarSMS/sendsms

Вот и все, теперь что бы отправить себе sms набираем

sendsms Текст_смс

sendsms [-inet] [-?] [-sync] [сообщ]
-inet позволяет перед отправкой проверить доступ к интернету(google.com), пока интернет не появится сообщение не отправится
-? эта справка
-sync перед отправкой синхронезировать время
сообщ сообщение которое будет отправлено


Пример: /opt/etc/calendarSMS/sendsms -inet -sync Привет Мир!

Область применения огромна:
  • Смс о завершившийся закачке в торрент клиенте
  • Смс о сработке датчика движения в системах видео наблюдения
  • Смс о достижении определенного порога в наблюдаемой величине
  • Смс о сбое канала связи/сервера/программы
  • и т.д. и т.п.

Единственное ограничение 20 смс в сутки на 1 номер.
Но для каждого события можно завести свой гугл аккаунт, совпадения номеров он с разными аккаунтами не сверяет.
Теги:
Хабы:
+70
Комментарии34

Публикации

Изменить настройки темы

Истории

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн