Author Topic: Selor_rquota - Quota de envio para clientes  (Read 1080 times)

lucas

  • Administrator
  • Newbie
  • *****
  • Posts: 15
    • View Profile
Selor_rquota - Quota de envio para clientes
« on: June 01, 2022, 09:56:44 PM »
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: [Select]
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:
Code: [Select]
gcc selor_rquota.c -o selor_rquota -lmysqlclient
Se você estiver usando FreeBSD:
Code: [Select]
gcc selor_rquota.c -o selor_rquota -DFreeBSD -L/usr/local/lib/mysql -lmysqlclient

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

Copie o programa, o arquivo de configuração e o arquivo .sql para o diretório do Selor:
Code: [Select]
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':
Code: [Select]
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:
Code: [Select]
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)

Quote
Obs: Verifique qual é o seu arquivo do Event.from, abrindo o selor.conf e procurando por esta opção.
Code: [Select]
pico /usr/local/selor/rules_from
Acrescente estas regras (Obs: Tudo em uma única linha):
Code: [Select]
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).

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

Code: [Select]
pico /usr/local/selor/rules_data
Acrescente estas regras (Obs: Tudo em uma única linha):
Code: [Select]
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:
Code: [Select]
00 * * * * /usr/local/selor/uteis/selor_rquota -z
por dia:
Code: [Select]
00 0 * * * /usr/local/selor/uteis/selor_rquota -z
por semana:
Code: [Select]
00 0 * * 0 /usr/local/selor/uteis/selor_rquota -z
por mês:
Code: [Select]
00 0 1 * * /usr/local/selor/uteis/selor_rquota -z

Esta feito ! Não é preciso reiniciar o Selor