Pull to refresh

Отправка SMS из под Shell

Reading time 2 min
Views 20K
Как-то раз пришлось мне собирать gentoo на очень древнем железе, и меня постоянно мучил вопрос: «Как же сделать так, что-бы знать когда закончится компиляция всех пакетов и я смогу приступить к дальнейшей работе с ПК?» В поисках истины нашел наиболее подходящее для меня решение это отправка SMS уведомлений.

Тут есть 2 решения:
1. Отправка писем на выделенный вашим ОПСОСом ящик (у мегафона эта услуга называлась «Электронная почта GSM»)
2. Отправка писем с помощью скрипта использующего функции mailagent'a.

С первым способом все просто:
Вся суть этого метода заключается в том что-бы подключить данную услугу, получить адрес предоставленной почты (как правило вида <ваш номер>@<домен ОПСОСа в вашем регионе>), и настроить отправку email на данный адрес. Все сообщения отправленные на него будут приходить в виде смс на ваш телефон. Но к сожалению не все операторы предоставляют такую услугу. Первым делом вам необходимо уточнить предоставляет ли ваш ОПСОС ее или нет.

Поэтому мы переходим ко второму более универсальному методу:
Скрипт был найден давным давно в просторах интернета, имя автора я не помню, а все ссылки ведущие на страницу уже битые. Написан на python и работает через сервис mail.ru.

Хоть я и назвал метод более универсальным, но в любую страну отправить смс не получится. Вот список стран и операторов доступных для отправки: help.mail.ru/agent-help/sms/region
Максимальная длина сообщения на русском языке — 36 символов, а латиницей — 116.
Так же ограничено и максимальное количество — 10 СМС в день, и не больше одного сообщения в минуту.

Собственно для отправки СМС нам понадобятся:
1. Сам скрипт www.mediafire.com/?c8hgr1krl52r56b ompldr.org/vZjdpOA vk.com/doc12641155_123767095?hash=1c85e455375bce5118
2. Python
3. Ящик на mail.ru

Распаковываем архив.
В нем находится оригинальный скрипт send.py, с помощью которого можно отправлять смс, и небольшой мой скрипт noty_send.sh для облегчения отправки уведомлений.
При вызове send.py без параметров он сразу же выдаст необходимую для отправки информацию:
$ python sms_send/send.py
Usage: send.py [options]

Options:
  -h, --help            show this help message and exit
  -n PHONE, --number=PHONE
                        Phone number. Ex: +79221412345
  -t TEXT, --text=TEXT  Sms content
  -l LOGIN, --login=LOGIN
                        Email address
  -p PASSWD, --password=PASSWD
                        Your password


Что касается моего скрипта: открываем его в текстовом редакторе
#!/bin/bash

num=+71234567890
log=qwe@mail.ru
pas=*******
msg=$1

python ./send.py -l $log -p $pas -n $num -t "$msg"

exit 0

Меняем num на свой номер, log на свою почту и pas на пароль от нее. Так же вы можете присвоить переменной msg статическую фразу в духе «Все готово, Хозяин» что бы вызывать скрипт без параметра.

Настало время проверить скрипт:
$ ./noty_send.sh "Ура, Ура, Ура"
Tags:
Hubs:
+30
Comments 65
Comments Comments 65

Articles