ISPConfig · 4 min read · Dec 26, 2025

Limpieza Automática De Carpetas De Papelera Y/O Spam Con ISPConfig (Con Roundcube + Tmpreaper (Tmpwatch))

Limpieza Automática De Carpetas De Papelera Y/O Spam Con ISPConfig (Con Roundcube + Tmpreaper (Tmpwatch))

Resumen:

Este breve mini-manual te ayudará a configurar la limpieza automática de las carpetas de Papelera y Spam. La mayoría de los clientes de (web)mail (pueden) crear estas carpetas automáticamente. Muchas personas no limpian sus directorios de correo, lo que provoca que las carpetas de Spam y Papelera crezcan masivamente en tamaño y, dado que ISPConfig (aún no) puede establecer buenos límites de tamaño de directorio de correo, la alternativa es limpiar estas carpetas después de varios días.

Requisitos:

Este tutorial asume que actualmente estás utilizando la siguiente configuración o similar:

  • Linux Debian Etch (v4.0)
  • ISPConfig (v2.2.24 o posterior)
  • Make
  • Nano o vi
  • Roundcubemail (instalación del paquete v0.1.1)
  • Al menos 1 dominio con 1 buzón en funcionamiento
  • Correo no deseado configurado para ser movido a una carpeta en lugar de eliminarse (Si no está configurado, consulta los enlaces)

Si esta configuración no coincide con la tuya, es posible que debas ajustar el manual para que se ajuste a tu configuración.

Enlaces:

Tutorial para mover correo no deseado a una carpeta en lugar de eliminar: https://www.howtoforge.com/forums/showthread.php?t=15704
Instalación del paquete Roundcubemail v0.1.1: http://ispconfig.bb-hosting.org/downloads/roundcube/roundcubemail-0.1.1.pkg

1 - Configurar roundcubemail para crear automáticamente las carpetas de Papelera y Spam

Si ya has hecho esto ya sea por Roundcubemail u otros métodos, puedes saltarte este capítulo. Asegúrate de que .Trash y .Junk existan.

Para configurar Roundcubemail para que cree automáticamente las carpetas de correo, necesitamos modificar la configuración de Roundcubemail:

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

Localiza “$rcmail_config[‘create_default_folders’]” y asegúrate de que esté configurado en TRUE y que la configuración sea similar a:

[...]
// almacenar el mensaje borrador en este buzón
// dejar en blanco si no se deben almacenar mensajes borrador
$rcmail_config['drafts_mbox'] = 'Drafts';
// almacenar mensajes de spam en este buzón
$rcmail_config['junk_mbox'] = 'Junk';
// almacenar el mensaje enviado en este buzón
// dejar en blanco si no se deben almacenar mensajes enviados
$rcmail_config['sent_mbox'] = 'Sent';
// mover mensajes a esta carpeta al eliminarlos
// dejar en blanco si deben eliminarse directamente
$rcmail_config['trash_mbox'] = 'Trash';
// mostrar estas carpetas por separado en la lista de buzones.
// estas carpetas también se mostrarán con nombres localizados
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
// crear automáticamente las carpetas predeterminadas listadas anteriormente al iniciar sesión
$rcmail_config['create_default_folders'] = TRUE;
// proteger las carpetas predeterminadas de cambios de nombre, eliminación y cambios de suscripción
$rcmail_config['protect_default_folders'] = TRUE;
[...]

Ahora, cuando un usuario inicie sesión, se crearán las carpetas de correo.

NOTA: Esto requiere que el usuario haya iniciado sesión, de lo contrario, las carpetas de papelera y spam simplemente no existen y, por supuesto, no se limpiarán.

2 - Instalar tmpreaper

El paquete tmpwatch solía estar en el gestor de paquetes Aptitude, sin embargo, por razones desconocidas ha sido reemplazado. Para otras variantes de linux, consulta tmpwatch.

Para hacer esto, ingresamos el siguiente comando:

apt-get install tempreaper

IMPORTANTE: Si puedes usar tmpreaper, salta al capítulo 3. Si tienes que usar tmpwatch, ¡no olvides modificar el archivo cron!

Si no puedes usar tmpreaper, puedes descargar e instalar tmpwatch de la siguiente manera:

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

¡Gracias a MTvermoes!

3 - Agregar un cronjob

Ahora necesitamos agregar un cronjob para que el sistema verifique diariamente qué correos se van a necesitar para eliminación. Sugerimos que configures esto en cron.daily para que verifique todos los días si hay correos lo suficientemente antiguos como para ser eliminados. Sin embargo, también podrías colocarlo en cron.hourly, lo cual es necesario si usas un tiempo máximo de menos de 24 horas, de lo contrario, aún se verificaría solo a diario.

Para hacer esto, vamos a /etc/cron.daily

cd /etc/cron.daily

Ahora creamos un nuevo archivo “clean-mailfolders”

nano clean-mailfolders

Y que se vea así:

#!/bin/sh
# Tiempo a esperar antes de eliminar correos de la carpeta de Spam (Predeterminado: 7 días) Establecer 0 para desactivar.
junk_max_hours=$((24*7))
# Tiempo a esperar antes de eliminar correos de la carpeta de Papelera (Predeterminado: 30 días) Establecer 0 para desactivar.
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

Es posible que desees cambiar las fechas para adaptarlas a tus propias necesidades. Al principio del archivo se dan 2 variables llamadas “junk_max_hours” que contienen el máximo de horas que se mantiene el correo en la carpeta de Spam y “trash_max_hours” que contienen el máximo de horas que se mantiene el correo en la carpeta de Papelera. Establecer el valor en 0 desactivará la limpieza de ese tipo.

NOTA: Si tienes que usar tmpwatch en lugar de tmpreaper, no olvides modificar el archivo cron y reemplazar “tmpreaper” por “tmpwatch”.

Conclusión

Asegúrate de verificar esto antes de ejecutarlo en servidores de producción. Este tutorial no viene con ninguna garantía. ¡Sé sabio, prueba!

Puedes modificar las variables para adaptarlas a tus propias necesidades como se describió anteriormente.

¡Espero que te guste mi primer tutorial!

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.