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

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 номер.
Но для каждого события можно завести свой гугл аккаунт, совпадения номеров он с разными аккаунтами не сверяет.
Поделиться публикацией

Комментарии 34

    +8
    Я уже 2 года использую гугл-календарь для отправки смс с отчетами от сайта на пхп.
    Я взял библиотеку работы с гугл-календарем из ЗендФреймворк и дописал простой скриптик.
    На счет ограничения в 20 смс даже не знал о их существовании )
        +2
        А че минусуете? Минусуйте админов сайта.

        Просто дал ссылку на первоисточник.
        +1
        Спасибо за полезную статью.
        Как раз сделал себе недавно оповещение о письмах Gmail по SMS (по этой статье.
        А как это реализовать, руководствуясь Ваше статьей?
          0
          Нужно написать скрипт который бы проверял периодически почту и выдирал необходимые данные из письма. Дальше останется только передать их имеющемуся скрипту, который и отправит смс.
          К сожалению такого скрипта у меня нет, но есть в планах его сделать. Если получится — сразу поделюсь им тут.
            +1
            Будет интересно.
              –1
              Может проще установить приложение gmail на телефон с оповещением на экран? :)
                +2
                не у всех есть смартфон и/или не всегда и не везде есть стабильный интернет.
            +2
            > совпадения номеров он с разными аккаунтами не сверяем.
            скоро будет))
              0
              Мне лично хватит и 20 смс в сутки.
              0
              • JLLC Mobile TeleSystems
              — это всего лишь белорусский МТС.
                +2
                Немножно занудства но:
                > Не забываем дать права на запуск

                chmod 777 /opt/etc/calendarSMS/sendsms

                Не забываем что не стоит давать всем подряд права на исполнение.
                  0
                  > Пример: /opt/etc/calendarSMS/sendsms -inet -sync Привет Мир!
                  sendsms как бы и нужно запускать.
                    +1
                    Но при этом при вем не стоит давать права группе и всем остальным.
                    chmod u+x blah-blah-blah вполне достаточно, хотя я бы юзер скрипты наверное в юзер папке хранил, но это детали.
                      +1
                      Если уж и давать всем юзерам права на исполнение скрипта, то не нужно давать право записи, а то мало ли что они туда допишут… Минимальные права — 700 (rwx------), максимальные — 755 (rwxr-xr-x), адекватные — 750 (rwxr-x---) или даже 710 (rwx--x---) + создание отдельной группы, для тех, кто должет иметь право и возможость скрипт запускать.
                    0
                    chmod 755 /opt/etc/calendarSMS/sendsms

                    fixed
                    0
                    > Но для каждого события можно завести свой гугл аккаунт, совпадения номеров он с разными аккаунтами не сверяем.

                    Не совсем верно. Гуггл не давал зарегать много аккаунтов на один номер. По крайней мере, мне больше трех не дал.
                      +2
                      Напряжённо думаю куда приспособить ;)
                        0
                        Спасибо огромное!
                        Недавно как раз начал задумываться о СМС уведомлениях с нескольких своих серверов.
                        Теперь, наконец-то, точно следаю это.
                          +1
                          Не первый раз на хабре вспоминают про эту возможность, однако.
                            +4
                            Как-то даже обидно за google :)
                              –1
                              Вконтактик еще позволяет реализовать похожий функционал.
                                +1
                                Если это из-за вас я не получил несколько сообщений о важных событиях то горите вы… горите на солнышке. :)
                                  +4
                                  Это все здорово, конечно, но если хватает 20 sms в сутки то не проще ли использовать какой нибудь сервис отправки SMS? Положить на счет рублей 300-500 и пользоваться «пожизненно» :)
                                  SMS будет отправляться «мгновенно» простым переходом по ссылке (как вариант). И можно надеяться что возможность не прикроют через некоторое время. А те несколько часов, котрые получилось сэкономить, потратить на то, чтобы заработать в разы больше или просто на что нибудь приятное.
                                  Разве что в качестве спортивного интереса можно и гугл календарь использовать, но для практического применения как то не очень хороший вариант, как мне кажется.
                                    +1
                                    Согласен, смс сейчас можно купить от 25 коп. (без ограничений на число и время), плюс есть возможность отследить — доставлено или нет.

                                    А через гугл посылать и светить пароль в конфиге — это совсем не гиковский костыль…
                                      0
                                      Купить — это скучно.
                                      0
                                      > ограничение 20 смс в сутки на 1 номер.
                                      > совпадения номеров он с разными аккаунтами не сверяет.

                                      так 20 смс на номер или на аккаунт?

                                      Еще, лишь с третьего раза понял, что имелось ввиду
                                      "-sync перед отправкой синхронезировать время сообщ сообщение которое будет отправлено"

                                      выделите хотя бы так
                                      "-sync перед отправкой синхронизировать системное время
                                      [сообщ] сообщение которое будет отправлено"
                                        0
                                        >так 20 смс на номер или на аккаунт?
                                        20 смс в сутки все таки на номер, перепроверил сегодня.
                                        0
                                        Может проще без всяких ограничений заключить договор со шлюзом? 1.5 цента за смс — не так дорого, вроде
                                          0
                                          в шаре свой шарм. из принципа нужно настроить, а для рабочих целей, конечно, использовать нормальные шлюзы.
                                          0
                                          Автор, часть работы ты сделал зря. У авито есть сохраненные поиски
                                            0
                                            Отличный пост, спасибо!

                                            Капля дёгтя: суточный лимит для бесплатных сообщений — не 60, а всего 5 штук в день:

                                            Бесплатные СМС:
                                            √ На собственный номер — для программистов, которые отправляют себе оповещения из своих программ *
                                            * Сообщения на собственный номер бесплатны до 5 СМС в день при условии, что каждое сообщение помещается в 1 СМС (до 70 русских / 160 латинских символов). При превышении этих лимитов, сообщения оплачиваются согласно тарифу.
                                              0
                                              А чем не устраивает вариант слать в Telegram?
                                                +1
                                                Когда автор писал эту статью Телеграма и в помине небыло!

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое