Smstools или прием и передача sms на сервере

Материал из support.qbpro.ru

Скрипт отправки 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 и дальше все происходит автоматически...