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

Что то я зачастил с репостами с Хабрахабра, но уж много там в последнее время интересных статей. Я уже писал про то, как отправлять sms бесплатно с помощью Google Calendar, а в данной статье описана работа с mail.ru.

И да, для любителей написать в комментариях, что я ворую статьи. Я на знаю как вас научить читать, но в конце каждой статьи, автором которой я не являюсь, прописан источник. Так что прошу не наговаривать.

Как-то раз пришлось мне собирать Gentoo на очень древнем железе, и меня постоянно мучил вопрос: "Как же сделать так, что-бы знать когда закончится компиляция всех пакетов и я смогу приступить к дальнейшей работе с ПК?" В поисках истины нашел наиболее подходящее для меня решение это отправка SMS уведомлений.

Тут есть 2 решения:

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

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

Поэтому мы переходим ко второму, более универсальному методу.

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

На данной стадии скрипт работает с 12ти-значными номерами вида +7xxxxxxxxxx, хотя официально смс с mail.ru можно отправить следующим операторам в различных странах: help.mail.ru.

Максимальная длина сообщения на русском языке — 36 символов, а латиницей — 116. Ограничение на количество СМС в день пока неизвестно.

Собственно для отправки СМС нам понадобятся:

  1. Сам скрипт
  2. Python
  3. Ящик на mail.ru

Качаем и распаковываем архив:

[wpfilebase tag=file path='sms_send.tar.bz2' /]

В нем находится оригинальный скрипт 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 "Ура, Ура, Ура"

Ищите хороший телефон? Обратите своё внимание на Xperia Z.