ISPConfig · 4 min read · Dec 26, 2025

Limpeza Automática De Pastas Lixeira E/ou Spam Com ISPConfig (Com Roundcube + Tmpreaper (Tmpwatch))

Limpeza Automática De Pastas Lixeira E/ou Spam Com ISPConfig (Com Roundcube + Tmpreaper (Tmpwatch))

Visão Geral:

Este mini-howto curto ajudará você a configurar a limpeza automática das pastas Lixeira e Spam. A maioria dos clientes de (web)mail (pode) criar essas pastas automaticamente. Muitas pessoas não limpam seus diretórios de email, fazendo com que as pastas de Spam e Lixeira cresçam massivamente em tamanho e, com o ISPConfig (ainda não) sendo capaz de definir bons limites de tamanho para diretórios de email, a alternativa é ter essas pastas limpas após vários dias.

Pré-requisitos:

Este tutorial assume que você está atualmente usando a seguinte configuração ou similar:

  • Linux Debian Etch (v4.0)
  • ISPConfig (v2.2.24 ou posterior)
  • Make
  • Nano ou vi
  • Roundcubemail (v0.1.1 pacote instalado)
  • Pelo menos 1 domínio com 1 caixa de correio em funcionamento
  • Email de spam configurado para ser movido para uma pasta em vez de ser excluído (Se não estiver configurado, veja os links)

Se esta configuração não corresponder à sua, você pode precisar ajustar o howto para se adequar à sua configuração.

Links:

Tutorial para mover emails de spam para uma pasta em vez de excluir: https://www.howtoforge.com/forums/showthread.php?t=15704
Instalação do pacote Roundcubemail v0.1.1: http://ispconfig.bb-hosting.org/downloads/roundcube/roundcubemail-0.1.1.pkg

1 - Configurar roundcubemail para criar automaticamente pastas Lixeira e Spam

Se você já fez isso, seja pelo Roundcubemail ou outros métodos, pode pular este capítulo. Certifique-se de que .Trash e .Junk existam.

Para configurar o Roundcubemail para criar automaticamente pastas de email, precisamos modificar a configuração do Roundcubemail:

nano /home/admispconfig/ispconfig/web/roundcubemail/config/main.inc.php

Localize “$rcmail_config[‘create_default_folders’]” e certifique-se de que está definido como TRUE e que a configuração é semelhante a:

[...]
// armazena mensagem de rascunho nesta caixa de correio
// deixe em branco se as mensagens de rascunho não devem ser armazenadas
$rcmail_config['drafts_mbox'] = 'Drafts';
// armazena mensagens de spam nesta caixa de correio
$rcmail_config['junk_mbox'] = 'Junk';
// armazena mensagem enviada nesta caixa de correio
// deixe em branco se as mensagens enviadas não devem ser armazenadas
$rcmail_config['sent_mbox'] = 'Sent';
// move mensagens para esta pasta ao excluí-las
// deixe em branco se elas devem ser excluídas diretamente
$rcmail_config['trash_mbox'] = 'Trash';
// exibe essas pastas separadamente na lista de caixas de correio.
// essas pastas também serão exibidas com nomes localizados
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
// cria automaticamente as pastas padrão listadas acima ao fazer login
$rcmail_config['create_default_folders'] = TRUE;
// protege as pastas padrão de renomeações, exclusões e alterações de assinatura
$rcmail_config['protect_default_folders'] = TRUE;
[...]

Agora, quando um usuário fizer login, as pastas de email serão criadas.

NOTA: Isso requer que o usuário tenha feito login, caso contrário, as pastas de lixo e spam simplesmente não existem e não serão limpas, é claro!

2 - Instalar tmpreaper

O pacote tmpwatch costumava estar no gerenciador de pacotes Aptitude, no entanto, por razões desconhecidas, foi substituído. Para outras variantes do linux, veja tmpwatch.

Para fazer isso, digitamos o seguinte comando:

apt-get install tempreaper

IMPORTANTE: Se você puder usar tmpreaper, pule para o capítulo 3. Se você tiver que usar tmpwatch, não se esqueça de modificar o arquivo cron!

Se você não puder usar tmpreaper, pode baixar e instalar o tmpwatch da seguinte forma:

cd /usr/src  
wget http://linux.bononline.nl/linux/tmpwatch/src/tmpwatch-2.9.0.tar.gz  
tar xvzf tmpwatch-2.9.0.tar.gz  
cd tmpwatch-2.9.0  
make  
make install

Obrigado a MTvermoes!

3 - Adicionar um cronjob

Agora precisamos adicionar um cronjob para que o sistema verifique diariamente quais emails precisam ser excluídos. Sugerimos que você configure isso para cron.daily, fazendo com que verifique todos os dias se há emails que são antigos o suficiente para serem excluídos. No entanto, você também pode colocá-lo em cron.hourly, o que é necessário se você usar um tempo máximo de menos de 24 horas, caso contrário, ainda seria verificado diariamente.

Para fazer isso, vamos para /etc/cron.daily

cd /etc/cron.daily

Agora criamos um novo arquivo “clean-mailfolders”

nano clean-mailfolders

E faça com que fique assim:

#!/bin/sh
# Tempo a esperar antes de remover emails da pasta de Spam (Padrão: 7 dias) Defina 0 para desativar.
junk_max_hours=$((24*7))
# Tempo a esperar antes de remover emails da pasta de Lixeira (Padrão: 30 dias) Defina 0 para desativar.
trash_max_hours=$((24*30))
for domain in /var/www/*
do
  if [ -d "$domain"/user ]
  then
    for user in $domain/user/*
    do
      if [ "$junk_max_hours" -gt "0" ]
      then
        if [ -d "$user/Maildir/.Junk" ]
        then
          tmpreaper -m $junk_max_hours $user/Maildir/.Junk/{cur,new}
        fi
      fi
      if [ "$trash_max_hours" -gt "0" ]
      then
        if [ -d "$user/Maildir/.Trash" ]
        then
          tmpreaper -m $trash_max_hours $user/Maildir/.Trash/{cur,new}
        fi
      fi
    done
  fi
done

Você pode querer alterar as datas para atender às suas próprias necessidades. No início do arquivo, são dadas 2 variáveis chamadas “junk_max_hours” contendo o máximo de horas que os emails na pasta de Spam são mantidos e “trash_max_hours” contendo o máximo de horas que os emails na pasta de Lixeira são mantidos. Definir o valor como 0 desativará a limpeza desse tipo.

NOTA: Se você tiver que usar tmpwatch em vez de tmpreaper, não se esqueça de modificar o arquivo cron e substituir “tmpreaper” por “tmpwatch”.

Conclusão

Certifique-se de que você verifica isso antes de realmente executá-lo em servidores de produção. Este tutorial não vem com garantia alguma. Seja sábio, teste!

Você pode modificar as variáveis para atender às suas próprias necessidades, conforme descrito anteriormente.

Espero que você goste do meu primeiro tutorial!

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.