Перейти до

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


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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 131
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Это понятно, все мы пишем как умеем. Но где здесь хоть одно правило if-then о которых вы говорите что они не работают? Я, если честно, давно потерял нить обсуждения и перестал понимать что вообще про

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

 

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

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

 

 

так вот это по-моему как раз что вам нужно

 

# Изменение тарифа
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

 

 

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

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

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

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

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

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

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

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

С помощью 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, он будет исполнятся как пхп

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

покажите скрипт, 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 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...