Cómo vaciar automáticamente la papelera (Trash) del correo en cPanel

Los mensajes eliminados desde Webmail o un cliente IMAP suelen pasar a Trash o Papelera. Mientras permanezcan allí, continúan ocupando espacio en la casilla y en la cuota total del hosting. Una tarea programada puede eliminar automáticamente los mensajes antiguos de esa carpeta, pero debe configurarse con cuidado porque la eliminación será permanente.

Este procedimiento está pensado para cuentas de correo con la estructura Maildir habitual de cPanel. Antes de automatizarlo, revisá el contenido de la Papelera y definí una política de retención razonable para tu negocio.

Cuándo conviene automatizar el vaciado

  • Las casillas reciben muchos adjuntos y Trash se acumula con rapidez.
  • Los usuarios borran mensajes, pero no vacían la Papelera.
  • Existe una política clara, por ejemplo conservar los eliminados durante 30 días.
  • Ya comprobaste que los mensajes importantes se archivan antes de eliminarlos.

No automatices esta tarea si la cuenta conserva comprobantes, contratos, tickets o información que deba retenerse durante más tiempo. En ese caso, definí primero una política de archivo y respaldo.

Primero considerá la limpieza desde cPanel

Para una casilla o carpeta concreta, la opción más segura suele ser Email Disk Usage, porque permite revisar el espacio utilizado y aplicar filtros por antigüedad o tamaño desde una interfaz visual. Consultá la guía de Email Disk Usage para liberar espacio de correo.

El cron resulta útil cuando querés aplicar la misma retención a todas las casillas de una cuenta de hosting sin repetir la limpieza manualmente.

Comprobá la estructura antes de borrar

En Maildir, los mensajes de Papelera se almacenan normalmente dentro de directorios como .Trash/cur y .Trash/new. La ruta completa depende del usuario de cPanel. Antes de crear una tarea destructiva, identificá el nombre de usuario y verificá que exista la carpeta esperada.

En los ejemplos siguientes, reemplazá USUARIO_CPANEL por el usuario real de la cuenta. No copies el texto del ejemplo sin modificarlo.

Paso 1: ejecutá una prueba sin eliminar nada

Antes de usar -delete, configurá temporalmente el siguiente comando en un Cron Job. Sólo mostrará los archivos que coinciden con el criterio:

/usr/bin/find /home/USUARIO_CPANEL/mail -type f \( -path "*/.Trash/cur/*" -o -path "*/.Trash/new/*" \) -mtime +30 -print

Este ejemplo busca mensajes ubicados en Trash con más de 30 días. Revisá el resultado que llega al correo configurado para los cron o ejecutalo sólo con asistencia técnica. Si aparecen rutas fuera de las carpetas esperadas, no continúes.

Cómo crear el Cron Job

  1. Ingresá a cPanel.
  2. Abrí Cron Jobs o Trabajos de cron dentro de Avanzado.
  3. Configurá un correo de notificación para recibir el resultado inicial.
  4. En Common Settings, elegí una frecuencia diaria.
  5. Agregá primero el comando de prueba del paso anterior.
  6. Comprobá el resultado antes de reemplazarlo por el comando definitivo.

No programes esta tarea varias veces por día. Una ejecución diaria es suficiente y evita trabajo innecesario sobre miles de archivos.

Paso 2: comando para eliminar mensajes antiguos de Trash

Cuando la prueba haya confirmado las rutas y el período, reemplazá -print por -delete:

/usr/bin/find /home/USUARIO_CPANEL/mail -type f \( -path "*/.Trash/cur/*" -o -path "*/.Trash/new/*" \) -mtime +30 -delete

El comando afecta solamente archivos ubicados dentro de las rutas .Trash/cur y .Trash/new que superen el período indicado. No elimina Inbox, Sent, Spam ni otras carpetas, siempre que la estructura de la cuenta sea la esperada.

Cómo definir el período de conservación

  • -mtime +7: elimina mensajes con más de siete días.
  • -mtime +15: elimina mensajes con más de quince días.
  • -mtime +30: elimina mensajes con más de treinta días.
  • -mtime +90: conserva la Papelera durante aproximadamente tres meses.

Elegí un plazo que responda a una necesidad real. Una retención de 30 días suele ser más prudente que siete días para cuentas comerciales, pero no reemplaza una política de respaldo.

Medidas de seguridad antes de dejarlo activo

  • Probá siempre el comando sin -delete.
  • Usá una ruta absoluta y el usuario de cPanel correcto.
  • No agregues comodines amplios ni comandos rm para este mantenimiento.
  • Conservá inicialmente el correo de notificación del cron para detectar errores.
  • Documentá el período de retención aplicado a las cuentas.
  • Probá la recuperación de correos importantes desde un backup independiente.

Una vez eliminado el mensaje mediante este comando, no existe una Papelera adicional en cPanel para restaurarlo. La recuperación sólo sería posible si existe una copia previa fuera de la cuenta.

Problemas frecuentes

El cron no libera espacio

Confirmá que los mensajes estén realmente en Trash y no en Sent, Junk u otra carpeta IMAP. Revisá también que la carpeta se llame .Trash en esa cuenta y que el período de antigüedad se haya cumplido.

El cron envía correos de error

No ocultes el mensaje de error de inmediato. Revisá la ruta, el usuario de cPanel y la sintaxis del comando. Una vez corregido y probado, podés decidir si querés mantener o redirigir las notificaciones.

Se eliminaron mensajes necesarios

Detené o eliminá el cron, revisá los respaldos disponibles y ampliá el período de retención antes de activarlo otra vez. No ejecutes el comando adicionalmente mientras investigás el incidente.

Herramientas relacionadas

Documentación oficial