Tutorials > Tools

Selor_rquota - Quota de envio para clientes

(1/1)

lucas:
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:

--- Code: ---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

--- End code ---

Agora, vamos compila-lo.

Se você estiver usando Linux:

--- Code: ---gcc selor_rquota.c -o selor_rquota -lmysqlclient
--- End code ---

Se você estiver usando FreeBSD:

--- Code: ---gcc selor_rquota.c -o selor_rquota -DFreeBSD -L/usr/local/lib/mysql -lmysqlclient
--- End code ---



--- Quote ---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
--- End quote ---

Copie o programa, o arquivo de configuração e o arquivo .sql para o diretório do Selor:

--- Code: ---mkdir /usr/local/selor/uteis
cp selor_rquota selor_rquota.conf selor_rquota.sql /usr/local/selor/uteis
cd /usr/local/selor/uteis
--- End code ---

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':

--- Code: ---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
--- End code ---

Agora, vamos criar as tabelas no banco:

--- Code: ---mysql selor_rquota < selor_rquota.sql
--- End code ---

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)


--- Quote ---Obs: Verifique qual é o seu arquivo do Event.from, abrindo o selor.conf e procurando por esta opção.
--- End quote ---

--- Code: ---pico /usr/local/selor/rules_from
--- End code ---

Acrescente estas regras (Obs: Tudo em uma única linha):

--- Code: ---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!
--- End code ---

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).


--- Quote ---Obs: Verifique qual é o seu arquivo do Event.data, abrindo o selor.conf e procurando por esta opção.
--- End quote ---


--- Code: ---pico /usr/local/selor/rules_data
--- End code ---

Acrescente estas regras (Obs: Tudo em uma única linha):

--- Code: ---Auth? !From? "" Exec! "/usr/local/selor/uteis/selor_rquota --conf /usr/local/selor/uteis/selor_rquota.conf -a %n -u %f -d 1000"
--- End code ---

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:

--- Code: ---00 * * * * /usr/local/selor/uteis/selor_rquota -z
--- End code ---

por dia:

--- Code: ---00 0 * * * /usr/local/selor/uteis/selor_rquota -z
--- End code ---

por semana:

--- Code: ---00 0 * * 0 /usr/local/selor/uteis/selor_rquota -z
--- End code ---

por mês:

--- Code: ---00 0 1 * * /usr/local/selor/uteis/selor_rquota -z
--- End code ---


Esta feito ! Não é preciso reiniciar o Selor




Navigation

[0] Message Index

Go to full version