Перейти к содержимому
Local
Queeq

Напоминание на почту

Рекомендованные сообщения

Делал ли кто-то у себя подобные напоминания на почту?

Я себе это представляю как скрипт, запускающийся, например, за 5-7 дней до снятия абонплаты, и отправляющий юзеру мыло о том, что после снятия абонки у него будет отрицательный баланс и он не сможет работать.

Не хочется изобретать велосипед.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не совсем то, но всё равно спасибо :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Не совсем то, но всё равно спасибо :D

почему бы не взять отсюда кусок кода ,сделать свой скрипт и выполнять по крону? :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

почему бы не взять отсюда кусок кода ,сделать свой скрипт и выполнять по крону? :D

 

Тут единственный кусок, который подойдёт для моей задачи - это отправка мыла. А так надо выдёргивать для всех пользователей из базы данные о тарифе, его цене, остатке денег на счету и высчитывать его судьбу при переходе на новый месяц.

Вот и спрашиваю, чтобы не изобретать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

почему бы не взять отсюда кусок кода ,сделать свой скрипт и выполнять по крону? :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

 

 

думаю тоже такое сделать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

это если базы в файле а как если базы в мускуле?

Я бы тоже прикрутил такую фитчу себе на сервак

Но и желательно что бы и на мыло кидал и в программу авторизатор что бы видно было юзверю что система автоматом пишет

Буду признателен за решение вопроса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну некрофил))

С помощью 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);
	}
}
}
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну некрофил))

С помощью php,perl,c... etc.

 

например то же , но на пхп

<?php
#!/usr/local/bin/php
putenv('LANG=ru_RU.UTF-8');

 

Спасибо

Мне несовсем понятно как енто дело запустить?

или просто торможу с утра :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вариантов много.

 

При #!/usr/local/bin/php , скрипт запускается как обычный шеловский без php -f.

Можно поместить в онконект, можно внутри онконекта его вызывать, etc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вариантов много.

 

При #!/usr/local/bin/php , скрипт запускается как обычный шеловский без php -f.

Можно поместить в онконект, можно внутри онконекта его вызывать, etc

А можно на примере :-)

ну скажем я создал в корне конфигов файл member поместил в него этот код

может его лучше вызывать со скрипта OnChange ?

Только не вкурю как

я такого ещё не делал

извините за тормаза :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это тупо переделка скрипта выше, тот что 2009г )). Он OnChange. Соотвественно положите в OnChange

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это тупо переделка скрипта выше, тот что 2009г )). Он OnChange. Соотвественно положите в OnChange

я попробую

Просто на будущее научите делать вызов как правильно?

просто на примере :-)

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

его же можно засунуть и в OnChange и в OnConnect

что бы грязь не разводить а держать в одном файле гле его легко и удобно найти и редактировать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это тупо переделка скрипта выше, тот что 2009г )). Он OnChange. Соотвественно положите в OnChange

я попробую

Просто на будущее научите делать вызов как правильно?

просто на примере :-)

Спасибо

Просто скопируйте скрипт в OnChange, он будет исполнятся как пхп

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну и конечно не забудьте mysql_connect, select_db etc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засунул проверил

Ничего не отправляется :-(

На почте пусто

и в программу авторизатор тоже ничего не приходит :-(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

покажите скрипт, mail вобще работает на сервере? sgconf вручную отправляет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

покажите скрипт, mail вобще работает на сервере? sgconf вручную отправляет?

Если отправляешь с программы конфигуратора то сообщение приходит

почта на серваке работает

вот насчёт пхп не уверен что отправляет

локальные сайты отправляют почту функцией smtp с авторизацией по логину и паролю

даже незнаю как проверить я недавно начал использовать стг

так что не все азы изучил

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот что выдаёт:

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Написано же понятным по белому

 

Access denied for user 'root'@'localhost' (using password: NO)

 

mysql_connect() со своими учетными данными кто делать будет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Написано же понятным по белому

 

Access denied for user 'root'@'localhost' (using password: NO)

 

mysql_connect() со своими учетными данными кто делать будет?

 

вот спасибо :-)

если б я ещё знал пхп и как это всё делается :-)

даже незнаю как вызвать скрипт с OnConnect

Не будете ли так любезны разжевать ламаку что куда и как

Пожалста :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

OnConnect вызывает стг, а не Вы.

Добавьте после #!/usr/local/bin/php.

mysql_connect('HOST','USER','PASSWORD');

mysql_select_db('DATABASE');

 

HOST, USER, PASSWORD, DATABASE - Ваши параметры

 

Какая ось? Т.к. пути разные в разных осях

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×