#uname -a FreeBSD 7.0-RELEASE
Смотрим:
# ls /dev/
Видим:
cuad0 cuad0.init cuad0.lock
Радуемся. :)Находим нужный софт:
# cd /usr/ports /usr/ports# make search name=scmxx Port: gscmxx-0.4.1_4 Path: /usr/ports/comms/gscmxx Info: A graphical frontend for scmxx Maint: svmohr@rm6.net B-deps: [CUT] WWW: http://gscmxx.sourceforge.net/ Port: scmxx-0.9.0_1 Path: /usr/ports/comms/scmxx Info: Data exchange utility for Siemens mobile phones Maint: janos.mohacsi@bsd.hu B-deps: gettext-0.17_1 gmake-3.81_3 libiconv-1.11_1 R-deps: gettext-0.17_1 libiconv-1.11_1 WWW: http://www.hendrik-sattler.de/scmxx/
Графиков на сервере нету, выбираем scmxx-0.9.0_1. %)
/usr/ports# cd /usr/ports/comms/scmxx
Без каких либо настроек:
/usr/ports/comms/scmxx# make install clean /usr/ports/comms/scmxx# cd /usr/local /usr/local# mkdir sms /usr/local# cd sms /usr/local/sms# touch sms.sh /usr/local/sms# touch smsget.sh /usr/local/sms# touch smssend.sh /usr/local/sms# touch sms.txt
Русский ман по scmxx, можно найти тут.Содержимое самих скриптов.sms.sh:
#!/bin/sh # Запуск скрипта получения только сообщения # из файла почты и сохранения его в отдельный файл /usr/local/sms/smsget.sh /var/mail/sms > /usr/local/sms/sms.txt # Если файл не имеет нулевого размера, запускаем скрипт отправки SMS if [ -s /usr/local/sms/sms.txt ]; then /usr/local/sms/smssend.sh # Обнуляем и почту и текст, который уже был отправлен /dev/null/> /usr/local/sms/sms.txt /dev/null/> /var/mail/sms fi # Нужно реализовать коды обработки, # на тот случай если модем "откажется" отправлять сообщение
smsget.sh:
#!/bin/sh # Удаление заголовков из электронных писем и новостей, # т.е. до первой пустой строки if [ $# -eq 0 ]; then # ==> Если входной аргумент не задан (файл), то выводить результат на stdin. sed -e '1,/^$/d' -e '/^[ ]*$/d' # --> Удалить пустые строки и все строки предшествующие им else # ==> Если аргумент командной строки задан, # то использовать его как имя файла. for i do sed -e '1,/^$/d' -e '/^[ ]*$/d' $i done fi
smssend.sh:
#!/bin/sh # Name /usr/local/bin/scmxx --device /dev/cuad0 --baud 9600 \ --reset --system-charset koi8-r --unicode --send --sms --direct \ --number=+7xxxxxxxxx --send /usr/local/sms/sms.txt
Если у вас будут различные приписки в конце sms, то можно видоизменить последнюю часть:
--send /usr/local/sms/sms.txt
на
--text "`cat /usr/local/sms/sms.txt`"
Возможно у вас будет /dev/cuadN, тогда исправляем на то что нужно.Добавляем или исправляем /etc/rc.conf:
sendmail_enable="YES"
Смотрим имя машины:
# hostname ns2.host.org
Прописываем на почтовом сервере, что используется у сотрудников, в файле hosts, либо добавляем запись в ДНС:
ns2.host.org IP_smsgate
Закидываем в /etc/crontab(выполняется каждые 5 минут)
*/5 * * * * root /usr/local/sms/sms.sh
Не забываем, рестартовать cron.Впринципе всё. :)Да, пользователя добавляем.
# adduser Username: sms Full name: sms Uid (Leave empty for default): Login group [sms]: Login group is sms. Invite sms into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: Home directory [/home/sms]: /dev/null Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : sms Password : ***** Full Name : sms Uid : 1002 Class : Groups : sms Home : /dev/null Shell : /bin/sh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (sms) to the user database. Add another user? (yes/no): no Goodbye!
p.s. В отправляемых письмах лучше отключать Content-Transfer-Encoding: quoted-printable в The Bat по дефолту стоит, переключить на "Без кодирования". Текст отправляемого сообщения должен быть в KOI8-R.