Desarrollo y bases de datos
Eliminar correos antiguos automáticamente
El correo puede acumular mucho espacio, pero borrar directamente ficheros de Maildir evita las validaciones del servidor de correo y un error de ruta puede afectar a otros buzones.
Advertencia: no uses comodines como
mail/*/*, nifind -delete, nirmsobre el almacenamiento de correo. La eliminación automatizada es irreversible si no existe una copia recuperable.
Opción recomendada: retención soportada
Configura la política desde las herramientas de retención o uso de disco de cPanel, Dovecot o el cliente de correo. Estas vías conocen las carpetas IMAP y mantienen sus índices. Define siempre una cuenta y carpeta exactas, por ejemplo usuario@ejemplo.com y INBOX, y prueba primero la política en un buzón de pruebas.
Antes de activarla:
- Exporta o respalda el buzón y verifica que puedes recuperar un mensaje en una ubicación temporal.
- Selecciona la cuenta y la carpeta exactas; no apliques una regla global en el primer uso.
- Previsualiza la búsqueda, revisa una muestra y anota el número de mensajes y el espacio afectado.
- Ejecuta la primera retención manualmente y comprueba webmail, IMAP, índices y cuota.
- Programa la automatización solo después de esa validación y conserva sus registros.
Si no existe una herramienta de retención
Solicita soporte antes de manipular Maildir. Como mínimo, trabaja con una ruta absoluta previamente verificada y mueve los candidatos a una cuarentena fuera del buzón en vez de borrarlos.
Para una única cuenta, primero lista y cuenta sin modificar nada:
MAILBOX=/home/usuario_cpanel/mail/ejemplo.com/usuario test "$(realpath "$MAILBOX")" = "$MAILBOX" || exit 1 test -d "$MAILBOX/cur" && test -d "$MAILBOX/new" || exit 1 find "$MAILBOX/cur" "$MAILBOX/new" -type f -mtime +30 -print > /home/usuario_cpanel/mail-retention-preview.log wc -l /home/usuario_cpanel/mail-retention-preview.log
Revisa el listado completo, crea una copia verificada y repite el proceso en un buzón de prueba. La ejecución real debe mover exactamente ese listado a una cuarentena fechada, mantener un log de cada fichero y reconstruir los índices por la vía soportada por el servidor. No la conviertas en cron hasta observar al menos una ejecución completa sin incidencias.
Conserva la cuarentena durante el periodo de recuperación. Si aparece un mensaje afectado por error, detén la tarea, devuelve los ficheros a su carpeta original usando el log y reconstruye los índices. La eliminación definitiva solo debe hacerse después de validar la recuperación y vencer la retención acordada.
También te puede ayudar