Smstools или прием и передача sms на сервере: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
imported>Vix
Нет описания правки
Строка 4: Строка 4:
  #!/bin/bash
  #!/bin/bash
  export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  MAIL_FROM=smstools@qbpro.ru
  MAIL_FROM=smstools@myhost.ru
  MAIL_TO=master@qbpro.ru
  MAIL_TO=admin@myhost.ru
  PATHSMS="/var/spool/sms/incoming";
  PATHSMS="/var/spool/sms/incoming";
  LISTSMS=( `ls -x -c $PATHSMS` );
  LISTSMS=( `ls -x -c $PATHSMS` );
Строка 61: Строка 61:
  rm -f $PATHSMS/*
  rm -f $PATHSMS/*


* скрипт ставим в crontab и дальше все происходит автоматически...


* [http://mrcat.ru/sms-send-receive полезное по настройке]
* [http://mrcat.ru/sms-send-receive полезное по настройке]
* [https://jpsoft.com/help/sendhtml.htm?anchor=subject для почтовых агентов]
* [https://jpsoft.com/help/sendhtml.htm?anchor=subject для почтовых агентов]

Версия от 02:36, 9 марта 2016

Скрипт отправки sms на заданный почтовый ящик:

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAIL_FROM=smstools@myhost.ru
MAIL_TO=admin@myhost.ru
PATHSMS="/var/spool/sms/incoming";
LISTSMS=( `ls -x -c $PATHSMS` );
TEXT=;
MESSAGE=;
## default agent mail, else mutt
SENDER_AGENT="mail";

## meka messages
function makeMessage() {
if sed -e '/^$/ q' < "$MESSAGE" | grep -q "^Alphabet: UCS2"; 
    then
    TEXT="$(sed -e '/^$/ q' < "$MESSAGE" | sed -e 's/Alphabet: UCS2/Alphabet: UTF-8/g')";
    TEXT="$(echo -e $TEXT"\n"$(sed -e '1,/^$/ d' < "$MESSAGE" | iconv -f UNICODEBIG -t UTF-8))";
    else
    TEXT="$(sed -e '1,/^$/ d' < "$MESSAGE")";
fi
NUM="$(echo $TEXT|grep -E '^From:'|sed -r 's/.*From_SMSC: //; s/S.*//')";
sendMessage
}

## send messages
function sendMessage() {

if [ "$SENDER_AGENT" = "mail" ]
   then
    SUBJECT='Входящее SMS сообщение с номера:'$NUM
    TEXTBODY=$TEXT
    echo -e $TEXTBODY|mailx -a "Content-Type: text/plain; charset=UTF-8" -s "$SUBJECT" $MAIL_TO
fi

if [ "$SENDER_AGENT" = "mutt" ]
   then
  SUBJECT='Входящее SMS сообщение с номера:'$NUM
  TEXTBODY=$TEXT
    echo -e $TEXTBODY|mutt -s "$SUBJECT" $MAIL_TO
fi

}

## test enable sms mesagges
if [ ! "$(ls -x $PATHSMS)" ]
    then 
    echo "exit"
fi
## executor
ex_index=$((${#LISTSMS[@]}-1));
while [ $ex_index -gt -1 ]
 do
   MESSAGE="$PATHSMS"/"${LISTSMS[$ex_index]}";
   makeMessage
 ex_index=$(($ex_index-1));
done
## delete all sms
rm -f $PATHSMS/*
  • скрипт ставим в crontab и дальше все происходит автоматически...