Com o selor_rquota, podemos controlar o número de destinatários que nossos clientes podem enviar por hora/dia/semana/mes, etc...
Através dos eventos do Selor, nós acionamos o selor_rquota com alguns parâmetros e o sistema de quota funcionará perfeitamente.
Vamos ao passo-a-passo...
Puxando e instalando a ferramenta no seu servidor:
mkdir /home/progs
cd /home/progs
wget http://www.mtaselor.com.br/downloads/utilitarios/selor_rquota_src_1.0.tar.bz2
tar xjf selor_rquota_src_1.0.tar.bz2
cd selor_rquota_1.0
Agora, vamos compila-lo.
Se você estiver usando Linux:
gcc selor_rquota.c -o selor_rquota -lmysqlclient
Se você estiver usando FreeBSD:
gcc selor_rquota.c -o selor_rquota -DFreeBSD -L/usr/local/lib/mysql -lmysqlclient
Obs: Caso de algum erro a respeito da libmysql, é porque você precisa instalar a MySQL-devel no seu sistema ou então, as libs não estão sendo encontradas. As libs mysql (libmysql*) devem ficar em /usr/lib64 ou /usr/lib
Copie o programa, o arquivo de configuração e o arquivo .sql para o diretório do Selor:
mkdir /usr/local/selor/uteis
cp selor_rquota selor_rquota.conf selor_rquota.sql /usr/local/selor/uteis
cd /usr/local/selor/uteis
Crie a base de dados no seu MySQL com um usuario e uma senha.
Vamos supor que o usuário seja 'selor_user' e a senha 'minhasenha':
mysql
mysql> create database selor_rquota;
mysql> grant all privileges on selor_rquota.* to selor_user@localhost identified by 'minhasenha';
mysql> flush privileges;
mysql> quit
Agora, vamos criar as tabelas no banco:
mysql selor_rquota < selor_rquota.sql
Arrume o arquivo de configuração selor_rquota.conf de forma a colocar corretamente os dados para a conexão com o MySQL
Configure o selor_rquota nos eventos do Selor.
Abra o arquivo referente ao evento Event.from (No padrão, o arquivo é o /usr/local/selor/rules_from)
Obs: Verifique qual é o seu arquivo do Event.from, abrindo o selor.conf e procurando por esta opção.
pico /usr/local/selor/rules_from
Acrescente estas regras (Obs: Tudo em uma única linha):
Auth? !From? "" Exec! "/usr/local/selor/uteis/selor_rquota --conf /usr/local/selor/uteis/selor_rquota.conf -c -u %f" Exec_resp? "1" Reply! "500 Limite de envio de emails foi excedido" Deny!
A regra acima é a que testa se o remetente já atingiu a quota.
A próxima regra nós adicionaremos no evento que é executado assim que o remetente entrega o email, então, nós adicionaremos a quantidade de destinatários da mensagem no banco de dados. O evento é o Event.data (Por padrão: /usr/local/selor/rules_data).
Obs: Verifique qual é o seu arquivo do Event.data, abrindo o selor.conf e procurando por esta opção.
pico /usr/local/selor/rules_data
Acrescente estas regras (Obs: Tudo em uma única linha):
Auth? !From? "" Exec! "/usr/local/selor/uteis/selor_rquota --conf /usr/local/selor/uteis/selor_rquota.conf -a %n -u %f -d 1000"
Obs: O valor 1000 é a quota padrão que o programa vai usar para cadastrar o remetente caso ele ainda não esteja cadastrado.
Agora é hora de você decidir como quer a sua quota: por hora, dia, semana ou mes:
Tudo depende do intervalo em que você roda o selor_rquota com a opção -z que ZERA os valores de emails enviados de todos.
Podemos usar o CRON para fazer o serviço para nós:
Caso queria...
por hora:
00 * * * * /usr/local/selor/uteis/selor_rquota -z
por dia:
00 0 * * * /usr/local/selor/uteis/selor_rquota -z
por semana:
00 0 * * 0 /usr/local/selor/uteis/selor_rquota -z
por mês:
00 0 1 * * /usr/local/selor/uteis/selor_rquota -z
Esta feito ! Não é preciso reiniciar o Selor