FAQ - Come cancellare automaticamente le email più vecchie di un determinato numero di giorni?
Tramite i Processi Cron disponibili nel cPanel è possibile programmare la cancellazione automatica dei messaggi presenti in una casella email da più di un determinato numero di giorni.
Questa soluzione può essere utile, ad esempio, per caselle utilizzate per notifiche, log, alert o altri messaggi che non è necessario conservare a lungo.
La procedura comporta la cancellazione automatica e definitiva dei messaggi che soddisfano i criteri indicati.
Prima di configurare il cron è quindi importante verificare attentamente:
| - | la casella email sulla quale si desidera intervenire; |
| - | il numero di giorni impostato; |
| - | che non siano presenti messaggi che si desidera conservare. |
Il comando riportato di seguito è destinato a utenti esperti e viene fornito come esempio. Non viene fornita assistenza relativamente alla personalizzazione di comandi o script.
Le caselle email di un account cPanel sono normalmente memorizzate utilizzando un percorso simile al seguente:
| /home/USERNAME/mail/DOMINIO/CASELLA/ |
Dove:
| USERNAME | è il nome utente dell'account cPanel. |
| DOMINIO | è il dominio al quale appartiene la casella email. |
| CASELLA | è la parte dell'indirizzo email che precede la @. |
Ad esempio, per la casella:
| info@example.com |
appartenente all'utente cPanel:
| esempio |
il percorso sarà:
| /home/esempio/mail/example.com/info/ |
La procedura descritta in questa guida è valida per le caselle email memorizzate in formato Maildir, utilizzato normalmente sui nostri servizi di hosting.
Il comando opera infatti sui messaggi presenti nelle directory cur e new tipiche del formato Maildir.
La procedura non è applicabile alle caselle eventualmente configurate con un formato di memorizzazione differente, come mbox.
Per cancellare i messaggi presenti da più di 7 giorni è possibile utilizzare:
| find /home/USERNAME/mail/DOMINIO/CASELLA/ -type f ( -path '*/cur/*' -o -path '*/new/*' ) -mtime +7 -delete |
Ad esempio:
| find /home/esempio/mail/example.com/info/ -type f ( -path '*/cur/*' -o -path '*/new/*' ) -mtime +7 -delete |
Il comando cerca ricorsivamente i messaggi presenti nelle directory cur e new della casella email e cancella quelli il cui file risulta più vecchio del periodo indicato.
La ricerca comprende anche le eventuali sottocartelle IMAP create dall'utente. Ad esempio, se nella webmail viene creata una cartella denominata Lavoro, verranno controllati anche i messaggi presenti nelle relative directory della cartella.
Il valore:
| -mtime +7 |
determina l'età minima dei file da eliminare.
È quindi possibile modificare 7 con il numero di giorni desiderato.
Ad esempio:
| -mtime +30 |
permette di eliminare i messaggi più vecchi di circa 30 giorni.
Il parametro mtime considera la data di modifica del file presente sul server e non la data visualizzata nel campo Data del messaggio email. Il calcolo viene inoltre effettuato da find sulla base di intervalli completi di 24 ore.
Prima di configurare il cron, verificare con particolare attenzione il percorso della casella email e il numero di giorni impostato, poiché i messaggi eliminati non potranno essere recuperati tramite il comando.
Per automatizzare la procedura:
| 1. | Accedere al cPanel. |
| 2. | Entrare nella sezione Processi Cron. |
| 3. | Creare un nuovo processo cron scegliendo la frequenza desiderata, ad esempio una volta al giorno o una volta a settimana. |
| 4. | Nel campo Comando inserire: |
| find /home/USERNAME/mail/DOMINIO/CASELLA/ -type f ( -path '*/cur/*' -o -path '*/new/*' ) -mtime +7 -delete >/dev/null 2>&1 |
| 5. | Sostituire USERNAME, DOMINIO e CASELLA con i dati effettivi del proprio account. |
| 6. | Salvare il cron job. |
Ad ogni esecuzione verranno individuati ed eliminati automaticamente i messaggi che soddisfano il limite temporale impostato.
Supponiamo di avere:
|
Utente cPanel: esempio Dominio: example.com Casella email: notifiche@example.com |
e di voler eliminare automaticamente i messaggi più vecchi di 7 giorni.
Il comando sarà:
| find /home/esempio/mail/example.com/notifiche/ -type f ( -path '*/cur/*' -o -path '*/new/*' ) -mtime +7 -delete >/dev/null 2>&1 |
Configurandolo per essere eseguito una volta al giorno, la pulizia della casella avverrà automaticamente senza ulteriori interventi.
Il comando opera ricorsivamente sull'intera casella email e comprende quindi anche le cartelle e sottocartelle create dall'utente, purché i messaggi siano memorizzati nelle normali directory Maildir cur o new.
La cancellazione non è quindi limitata alla sola Posta in arrivo.
Se si desidera conservare permanentemente alcuni messaggi, è necessario utilizzare una configurazione differente oppure evitare questa procedura.


©