Smstools или прием и передача sms на сервере: различия между версиями
Материал из support.qbpro.ru
imported>Vix Нет описания правки |
imported>Vix Нет описания правки |
||
Строка 1: | Строка 1: | ||
Скрипт отправки 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/* | |||
* [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:34, 9 марта 2016
Скрипт отправки 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/*