Queeq 0 Опубликовано: 2009-11-02 08:33:35 Share Опубликовано: 2009-11-02 08:33:35 Делал ли кто-то у себя подобные напоминания на почту? Я себе это представляю как скрипт, запускающийся, например, за 5-7 дней до снятия абонплаты, и отправляющий юзеру мыло о том, что после снятия абонки у него будет отрицательный баланс и он не сможет работать. Не хочется изобретать велосипед. Ссылка на сообщение Поделиться на других сайтах
Flamik 0 Опубліковано: 2009-11-02 09:05:02 Share Опубліковано: 2009-11-02 09:05:02 more OnChange #!/bin/bash # export LC_ALL=ru_RU.UTF-8 LOGIN=$1 param=$2 oldValue=$3 newValue=$4 #Служба сообщений MSG="" fi tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=") credit=$(grep -i "^credit=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=") email=$(grep -i "^email=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=") fee=$(grep -i "^Fee=" /var/stargazer/tariffs/$tariff.tf | cut -f 2 -d"=") # Изменение тарифа if [ "$param" == "tariff" ]; then MSG="$MSG Ваш тариф изменен с '$oldValue' на '$newValue', стоимостью`expr substr " $fee" 1 index "$fee" .` руб. за месяц.\n" fi # Изменение баланса if [ "$param" == "cash" ]; then # Пополнили счет if [ "${oldValue%.*}" -lt "${newValue%.*}" ] ; then MSG="$MSG Ваш баланс увеличен на: `expr ${newValue%.*} - ${oldValue%.*}` руб., и теперь составляет ${newValue%.*} руб.\n" fi # На балансе менее 50руб. if [ "${newValue%.*}" -lt 50 ] ; then MSG="$MSG Обратите внимание на вашем балансе осталось ${newValue%.*} руб.!\n" fi fi #Изменение кредита if [ "$param" == "credit" ]; then MSG="$MSG Ваш кредитный лимит изменен с ${oldValue%.*} руб. до ${newValue%.*} руб.\n" fi if [ "$MSG" != "" ] ; then MSG="$LOGIN, здравствуйте!\n\n$MSG\n C уважением, Администратор сети." sgconf set -s localhost -p 5555 -a * -w "*" -u $LOGIN -m "`echo -e $MSG`" #Сообщение на мыло if [ $email != "" ] ; then MAIL="To: $email\r\nContent-Type: text/plain; charset=UTF-8; format=flowed\r\nSubject: Billing system \r\nMime-Version: 1.0\r\n\n " echo -e $MAIL$MSG | ssmtp $email & fi fi exit 0 Ссылка на сообщение Поделиться на других сайтах
Queeq 0 Опубліковано: 2009-11-02 10:23:04 Автор Share Опубліковано: 2009-11-02 10:23:04 Не совсем то, но всё равно спасибо Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2009-11-02 11:01:16 Share Опубліковано: 2009-11-02 11:01:16 Не совсем то, но всё равно спасибо почему бы не взять отсюда кусок кода ,сделать свой скрипт и выполнять по крону? Ссылка на сообщение Поделиться на других сайтах
Queeq 0 Опубліковано: 2009-11-02 12:11:13 Автор Share Опубліковано: 2009-11-02 12:11:13 почему бы не взять отсюда кусок кода ,сделать свой скрипт и выполнять по крону? Тут единственный кусок, который подойдёт для моей задачи - это отправка мыла. А так надо выдёргивать для всех пользователей из базы данные о тарифе, его цене, остатке денег на счету и высчитывать его судьбу при переходе на новый месяц. Вот и спрашиваю, чтобы не изобретать. Ссылка на сообщение Поделиться на других сайтах
rtrt 53 Опубліковано: 2009-11-02 16:17:28 Share Опубліковано: 2009-11-02 16:17:28 почему бы не взять отсюда кусок кода ,сделать свой скрипт и выполнять по крону? Тут единственный кусок, который подойдёт для моей задачи - это отправка мыла. А так надо выдёргивать для всех пользователей из базы данные о тарифе, его цене, остатке денег на счету и высчитывать его судьбу при переходе на новый месяц. Вот и спрашиваю, чтобы не изобретать. так вот это по-моему как раз что вам нужно # Изменение тарифа if [ "$param" == "tariff" ]; then MSG="$MSG Ваш тариф изменен с '$oldValue' на '$newValue', стоимостью`expr substr " $fee" 1 index "$fee" .` руб. за месяц.\n" fi # Изменение баланса if [ "$param" == "cash" ]; then # Пополнили счет if [ "${oldValue%.*}" -lt "${newValue%.*}" ] ; then MSG="$MSG Ваш баланс увеличен на: `expr ${newValue%.*} - ${oldValue%.*}` руб., и теперь составляет ${newValue%.*} руб.\n" fi # На балансе менее 50руб. if [ "${newValue%.*}" -lt 50 ] ; then MSG="$MSG Обратите внимание на вашем балансе осталось ${newValue%.*} руб.!\n" fi думаю тоже такое сделать... Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-19 21:36:35 Share Опубліковано: 2012-05-19 21:36:35 это если базы в файле а как если базы в мускуле? Я бы тоже прикрутил такую фитчу себе на сервак Но и желательно что бы и на мыло кидал и в программу авторизатор что бы видно было юзверю что система автоматом пишет Буду признателен за решение вопроса. Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 05:45:24 Share Опубліковано: 2012-05-20 05:45:24 Ну некрофил)) С помощью php,perl,c... etc. например то же , но на пхп <?php #!/usr/local/bin/php putenv('LANG=ru_RU.UTF-8'); $login = $argv[1]; $param = $argv[2]; $oldValue = $argv[3]; $newValue = $argv[4]; $MSG = ""; $query = mysql_query('select t.`Fee` as `Fee`, t.`name` as `TariffName`,u.`Email` as `Email`, u.`Credit` as `Credit` from `users` as u LEFT JOIN `tariffs` as t ON t.`name` = u.`Tariff` where u.`Login`="' . $login . '"'); $result = mysql_fetch_assoc($query); if ($param == 'tariff') { $MSG = "$MSG Ваш тариф изменен с '$oldValue' на '$newValue', стоимостью '".$result['Fee']."' руб. за месяц.\n"; } if ($param == 'cash') { if ($oldValue < $newValue) { $MSG = "$MSG Ваш баланс увеличен на: ".($newValue - $oldValue)." руб., и теперь составляет $newValue руб.\n"; } if ($newValue < 50) { $MSG = "$MSG Обратите внимание на вашем балансе осталось $newValue руб.!\n"; } } if ($param == 'credit') { $MSG = "$MSG Ваш кредитный лимит изменен с $oldValue руб. до $newValue руб.\n"; } if ($param == 'credit') { if ($MSG != "") { $MSG = "$LOGIN, здравствуйте!\n\n$MSG\n C уважением, Администратор сети."; exec('sgconf set -s localhost -p 5555 -a admin -w 123456 -u ' . $LOGIN . ' -m "' . $MSG . '"'); if ($result['Email'] != "") { mail($result['Email'], 'Billing system', $MSG); } } } ?> Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 05:55:48 Share Опубліковано: 2012-05-20 05:55:48 Ну некрофил)) С помощью php,perl,c... etc. например то же , но на пхп <?php #!/usr/local/bin/php putenv('LANG=ru_RU.UTF-8'); Спасибо Мне несовсем понятно как енто дело запустить? или просто торможу с утра Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 06:06:16 Share Опубліковано: 2012-05-20 06:06:16 Ну вариантов много. При #!/usr/local/bin/php , скрипт запускается как обычный шеловский без php -f. Можно поместить в онконект, можно внутри онконекта его вызывать, etc Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 06:11:44 Share Опубліковано: 2012-05-20 06:11:44 Ну вариантов много. При #!/usr/local/bin/php , скрипт запускается как обычный шеловский без php -f. Можно поместить в онконект, можно внутри онконекта его вызывать, etc А можно на примере :-) ну скажем я создал в корне конфигов файл member поместил в него этот код может его лучше вызывать со скрипта OnChange ? Только не вкурю как я такого ещё не делал извините за тормаза :-) Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 06:26:10 Share Опубліковано: 2012-05-20 06:26:10 Ну это тупо переделка скрипта выше, тот что 2009г )). Он OnChange. Соотвественно положите в OnChange Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 06:33:29 Share Опубліковано: 2012-05-20 06:33:29 Ну это тупо переделка скрипта выше, тот что 2009г )). Он OnChange. Соотвественно положите в OnChange я попробую Просто на будущее научите делать вызов как правильно? просто на примере :-) Спасибо Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 06:34:59 Share Опубліковано: 2012-05-20 06:34:59 его же можно засунуть и в OnChange и в OnConnect что бы грязь не разводить а держать в одном файле гле его легко и удобно найти и редактировать Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 06:39:08 Share Опубліковано: 2012-05-20 06:39:08 Ну это тупо переделка скрипта выше, тот что 2009г )). Он OnChange. Соотвественно положите в OnChange я попробую Просто на будущее научите делать вызов как правильно? просто на примере :-) Спасибо Просто скопируйте скрипт в OnChange, он будет исполнятся как пхп Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 06:45:41 Share Опубліковано: 2012-05-20 06:45:41 ну и конечно не забудьте mysql_connect, select_db etc Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 06:48:13 Share Опубліковано: 2012-05-20 06:48:13 Засунул проверил Ничего не отправляется :-( На почте пусто и в программу авторизатор тоже ничего не приходит :-( Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 06:57:17 Share Опубліковано: 2012-05-20 06:57:17 покажите скрипт, mail вобще работает на сервере? sgconf вручную отправляет? Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 07:07:53 Share Опубліковано: 2012-05-20 07:07:53 покажите скрипт, mail вобще работает на сервере? sgconf вручную отправляет? Если отправляешь с программы конфигуратора то сообщение приходит почта на серваке работает вот насчёт пхп не уверен что отправляет локальные сайты отправляют почту функцией smtp с авторизацией по логину и паролю даже незнаю как проверить я недавно начал использовать стг так что не все азы изучил Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 10:15:05 Share Опубліковано: 2012-05-20 10:15:05 Вот что выдаёт: PHP Notice: Undefined offset: 1 in /etc/stargazer/messages on line 4 PHP Notice: Undefined offset: 2 in /etc/stargazer/messages on line 5 PHP Notice: Undefined offset: 3 in /etc/stargazer/messages on line 6 PHP Notice: Undefined offset: 4 in /etc/stargazer/messages on line 7 PHP Warning: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO) in /etc/stargazer/messages on line 10 PHP Warning: mysql_query(): A link to the server could not be established in /etc/stargazer/messages on line 10 PHP Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /etc/stargazer/messages on line 11 Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-20 11:20:34 Share Опубліковано: 2012-05-20 11:20:34 http://local.com.ua/...post__p__311801 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-05-20 16:32:15 Share Опубліковано: 2012-05-20 16:32:15 Написано же понятным по белому Access denied for user 'root'@'localhost' (using password: NO) mysql_connect() со своими учетными данными кто делать будет? Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-20 18:01:51 Share Опубліковано: 2012-05-20 18:01:51 Написано же понятным по белому Access denied for user 'root'@'localhost' (using password: NO) mysql_connect() со своими учетными данными кто делать будет? вот спасибо :-) если б я ещё знал пхп и как это всё делается :-) даже незнаю как вызвать скрипт с OnConnect Не будете ли так любезны разжевать ламаку что куда и как Пожалста :-) Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2012-05-21 08:07:44 Share Опубліковано: 2012-05-21 08:07:44 OnConnect вызывает стг, а не Вы. Добавьте после #!/usr/local/bin/php. mysql_connect('HOST','USER','PASSWORD'); mysql_select_db('DATABASE'); HOST, USER, PASSWORD, DATABASE - Ваши параметры Какая ось? Т.к. пути разные в разных осях Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубліковано: 2012-05-21 19:27:50 Share Опубліковано: 2012-05-21 19:27:50 debian 6 Спасибо Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас