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@ | MAIL_FROM=smstools@myhost.ru | ||
MAIL_TO= | 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 и дальше все происходит автоматически...