O esquema proposto funciona do seguinte modo: em todo email de entrada será analisado seu remetente pelo
Procmail antes de ser entregue para a caixa postal de destino. Primeiro será verificado se o email do remetente se encontra em uma lista de emails permitidos, se for encontrado é direcionado para a caixa postal de destino, senão será verificado se está em uma lista de emails bloqueados, se for encontrado, o email é automaticamente descartado, e por último se não for encontrado em nenhuma das duas listas, três atividades serão executadas:
- o email é direcionado para a caixa postal de destino;
- o email do remetente é adicionado na lista de emails bloqueados;
- e por último um email com um aviso do bloqueio do email e solicitação para o desbloqueio é enviado para o remetente.
No email enviado ao remetente será colocado um link para que o mesmo acesse e então um novo email será direcionado para o destinatário inicial com um assunto padrão, caberá então ao destinatário decidir liberar ou não emails deste remetente.
Funcionalidade
Este esquema apenas eliminará emails verificando o remetente do email. Na primeira vez que um remetente enviar um email ele automaticamente estará bloqueado para receber outros emails do mesmo remetente enquanto o destinatário não receber outro email gerado pelo acesso do remetente ao clicar no link no corpo do email enviado avisando sobre o bloqueio.
Isto implica, por exemplo, em problemas quando um remetente ao tentar enviar um email com arquivo anexo esquece de anexar o arquivo e logo em seguida envia outro email com o devido anexo (situação muito comum), este segundo email será automaticamente descartado.
Requisitos necessários
Não serão explicados como funcionam o programas envolvidos.
- procmail
- formail
- bash
- apache com php
- editor de texto
- sed
Componentes
Todos os arquivos abaixo estarão no diretório home do usuário:
- emails_bloqueados.txt: lista de emails bloqueados, um email por linha;
- emails_permitidos.txt: lista de emails permitidos, um email por linha;
- bloqueados.rc: arquivo procmail com emails bloqueados;
- permitidos.rc: arquivo procmail com emails permitidos;
- gera_emails_bloqueados.sh: shell script para criar o arquivo "bloqueados.rc";
- gera_emails_permitidos.sh: shell script para criar o arquivo "permitidos.rc";
- gera_email_retorno.sh: shell script para enviar email com aviso de email bloqueado;
- novo_email.tmp: arquivo temporário para incluir email na lista de emails permitidos;
- emails_bloqueados.tmp: arquivo temporário para excluir email da lista de emails bloqueados;
- emails_permitidos.tmp: arquivo temporário para incluir emails na lista de emails permitidos;
- msg.txt: arquivo com o corpo do email que será enviado para o remetente, solicitando que o mesmo acesso um site;
- procmail.rc: arquivo de configuração do Procmail personalizado para o usuário.
Preparando o Procmail
Crie ou edite o arquivo
.procmailrc no diretório home do usuário com o seguinte conteúdo:
INCLUDERC=~/permitidos.rc
INCLUDERC=~/bloqueados.rc
Sem este arquivo com este conteúdo todo o esquema não funcionará.