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
- Ingresá a cPanel.
- Abrí Cron Jobs o Trabajos de cron dentro de Avanzado.
- Configurá un correo de notificación para recibir el resultado inicial.
- En Common Settings, elegí una frecuencia diaria.
- Agregá primero el comando de prueba del paso anterior.
- 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
rmpara 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
- Cómo programar tareas automáticas con Cron Jobs en cPanel.
- Cómo administrar cuentas de correo en cPanel.
- Cómo encontrar qué ocupa espacio en la cuenta de hosting.