Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix системы (https://forum.antichat.xyz/forumdisplay.php?f=124)
-   -   Bash: учим свои скрипты отправлять смс (https://forum.antichat.xyz/showthread.php?t=209098)

Joker-jar 04.06.2010 16:01

Bash: учим свои скрипты отправлять смс
 
Хочу поделиться реализацией отправки смс из-под bash-скриптов. Может, кому-то будет полезно. Я, например, таким образом сделал смс-уведомления при отключении питания.

Сообщения я отправляю через email2sms шлюз провайдера. Для моего прова ссылка для настройки следующая:

http://eao.megafon.ru/services/wap_internet/mail/email2sms/

Создал ящик, при отправки на него письма на телефон прилетает смска с текстом письма. Похожая услуга должна быть и у других провайдеров.

Поглядел на несколько консольных программок для отправки e-mail, окончательный выбор остановился на ssmtp, ибо проста до ужаса. Есть в репах арча и убунты, на счет остальных дистрибутивов не знаю. Для отправки почты нужно завести какую-нибудь учетку на почтовом сервере, затем отредактировать конфиг [i]/etc/ssmtp/ssmtp.conf[i]:
Код:

root=e-mail
mailhub=smtp-сервер
rewriteDomain=домен e-mail'а

FromLineOverride=YES

authuser=имя пользователя
authpass=пароль

Отправка смс осуществляется следующим образом:
Код:

(
  echo "To: <e-mail, забинденный на ваш телефон>"
  echo "From: <e-mail-отправитель, прописанный в конфиге ssmtp>"
  echo "Subject: тема письма"
  echo " "
  echo "текст письма"
) | ssmtp e-mail, забинденный на ваш телефон

Непосредственно для отслеживания перебоев в питании я использую демон apcupsd, опрашивающий мой APC Smart UPS 1000. В папке /etc/apcupsd лежат скрипты offbattery и onbattery, выполняющиеся при наступлении соответствующих событий (можно создать дополнительные скрипты на события, в документации описано). Например, скрипт onbattery выполняется при отключении питания, когда происходит переключение на питание от батареи. В скрипте по дефолту прописан код, отсылающий системное сообщение о событии. перед строкой "exit 0" я добавил блок, отправляющий смс-уведомление:
Код:

(
  echo "To: <*****@sms.megafondv.ru>"
  echo "From: <*****@joker-jar.ru>"
  echo "Subject: UPS message `date \"+%d.%m.%Y %H:%M:%S\"`"
  echo " "
  echo "Power failure on UPS. Running on batteries"
) | ssmtp *****@sms.megafondv.ru

Аналогичное проделал в скрипте offbattery

buxmanager 04.06.2010 16:39

Про отправку письма и превращение его в смс на телефоне вроде бы давно известно и пользуются.... но у тебя и скриптик адаптированный есть! Спасибо!


Время: 03:56