Smstools или прием и передача sms на сервере
Материал из support.qbpro.ru
Версия от 02:34, 9 марта 2016; imported>Vix
Скрипт отправки sms на заданный почтовый ящик:
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAIL_FROM=smstools@qbpro.ru
MAIL_TO=master@qbpro.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/*
