Servidor de e-mail no Linux com MTA Sceo
Como configurar um servidor de email no Linux usando MTA Sceo e Courier-IMAP com base de dados MySQL, Maildir, proteção antivírus com Clamav, proteção antispam com SPF e Greylist, quota de caixa postal e controle de número de emails enviados por cliente.
Parte 7: Quota de caixa postal e número de emails enviados
Para controlar a quota você não precisa fazer nada, o Sceo automaticamente controla a quota da caixa postal para você baseado no que está no banco de dados. Ele faz isso perguntando ao módulo externo sceo_mysql que está preparado para testar o atual tamanho de uma caixa postal maildir do Courier.
Ele lê o arquivo maildirsize da caixa postal e ao mesmo tempo resume as informações lá contidas para não deixar o arquivo muito grande. O Sceo só recusa o email se o limite já estiver estourado.
# cd /home/temp
# cp sceo_rquota.tar.bz2 /usr/local/sceo/uteis
# cd /usr/local/sceo/uteis
# tar xjvf sceo_rquota.tar.bz2
Crie o banco de dados:
# mysql
mysql> create database sceo_rquota;
mysql> use sceo_rquota;
mysql> grant all privileges on sceo_rquota.* to sceo@localhost identified by "minhasenha" with grant option;
mysql> flush privileges;
mysql> quit
Faca o dump da tabela no banco de dados:
# mysql sceo_rquota < sceo_rquota.sql
Edite o arquivo sceo_rquota.c e procure as defines USER E PASS para mudar seus parâmetros se necessário:
# pico sceo_rquota.c
Lembre-se do detalhe da senha, use a que você especificou na criação do banco de dados sceo_rquota acima. Salve e saia do arquivo.
Compile o programa:
# gcc sceo_rquota.c -o sceo_rquota -lmysqlclient
Copie o binário gerado para um diretório que esteja no PATH (Ex: /usr/bin).
# cp sceo_rquota /usr/bin
Abra o arquivo de regras /usr/local/sceo/regras_destinatario.
# pico /usr/local/sceo/regras_destinatario
Acrescente a seguinte linha logo no início do arquivo:
Obs.: Os comandos acima DEVEM ficar na mesma linha.
Salve e saia o arquivo. Abra o arquivo de regras /usr/local/sceo/regras_data.
# pico /usr/local/sceo/regras_data
Acrescente a seguinte linha logo no início do arquivo:
Agende seu cron para rodar o sceo_rquota de forma a zerar o número de destinatários enviados de cada cliente. Você pode agendar o cron uma vez ao dia, semana, mês ou da forma que quiser. Exemplos de configurações no Cron.
Por dia:
Por semana:
Por mês:
Ele lê o arquivo maildirsize da caixa postal e ao mesmo tempo resume as informações lá contidas para não deixar o arquivo muito grande. O Sceo só recusa o email se o limite já estiver estourado.
Número de emails que um cliente pode enviar
Neste exemplo vou definir um limite de 1000 emails por dia por cliente. Copie o sceo_rquota.tar.bz2 para /usr/local/sceo/uteis.# cd /home/temp
# cp sceo_rquota.tar.bz2 /usr/local/sceo/uteis
# cd /usr/local/sceo/uteis
# tar xjvf sceo_rquota.tar.bz2
Crie o banco de dados:
# mysql
mysql> create database sceo_rquota;
mysql> use sceo_rquota;
mysql> grant all privileges on sceo_rquota.* to sceo@localhost identified by "minhasenha" with grant option;
mysql> flush privileges;
mysql> quit
Faca o dump da tabela no banco de dados:
# mysql sceo_rquota < sceo_rquota.sql
Edite o arquivo sceo_rquota.c e procure as defines USER E PASS para mudar seus parâmetros se necessário:
# pico sceo_rquota.c
#define USER "sceo"
#define PASS "minhasenha"
#define PASS "minhasenha"
Lembre-se do detalhe da senha, use a que você especificou na criação do banco de dados sceo_rquota acima. Salve e saia do arquivo.
Compile o programa:
# gcc sceo_rquota.c -o sceo_rquota -lmysqlclient
Copie o binário gerado para um diretório que esteja no PATH (Ex: /usr/bin).
# cp sceo_rquota /usr/bin
Abra o arquivo de regras /usr/local/sceo/regras_destinatario.
# pico /usr/local/sceo/regras_destinatario
Acrescente a seguinte linha logo no início do arquivo:
Auth? !From? "" Exec! "/usr/bin/sceo_rquota -c -u %f" Exec_resp? "1" Reply! "500 Limite de envio de emails foi excedido" Deny!
Obs.: Os comandos acima DEVEM ficar na mesma linha.
Salve e saia o arquivo. Abra o arquivo de regras /usr/local/sceo/regras_data.
# pico /usr/local/sceo/regras_data
Acrescente a seguinte linha logo no início do arquivo:
Auth? !From? "" Exec! "/usr/bin/sceo_rquota -a %n -u %f -d 1000"
Agende seu cron para rodar o sceo_rquota de forma a zerar o número de destinatários enviados de cada cliente. Você pode agendar o cron uma vez ao dia, semana, mês ou da forma que quiser. Exemplos de configurações no Cron.
Por dia:
00 0 * * * /usr/bin/sceo_rquota -z
Por semana:
00 0 * * 0 /usr/bin/sceo_rquota -z
Por mês:
00 0 1 * * /usr/bin/sceo_rquota -z