Eliminar correos antiguos de Gmail automáticamente

carlos17 Enero 2013 - 10:04pm 3 comentarios
Enviar por Email Imprimir

Eliminar correos antiguos de Gmail automáticamente

¿Te gustaría eliminar los correos antiguos de Gmail automáticamente? Con este script podrás hacerlo sin problemas. Basta con asignarles una etiqueta y definir el número de días que deben transcurrir para ser eliminados.

La Papelera y la carpeta de Spam en Gmail tienen un sistema de borrado que elimina los correos electrónicos luego de pasado cierto tiempo (30 días). Pero hay casos, muchos casos, en que esto no es suficiente.

Por ejemplo, si creamos una regla en Gmail que archive todas nuestras suscripciones a newsletters con una etiqueta en particular, estos mensajes serán automáticamente borrados luego de que transcurra cierto número de días. ¡Ya no tenemos que hacerlo manualmente!

Cómo eliminar los correos de Gmail automáticamente

Por defecto, no se nos permite activar una función para eliminar los correos electrónicos automáticamente; sin embargo, para cumplir este propósito hay un sencillo Script de Google que agrega esta funcionalidad a nuestra cuenta Gmail. El script básicamente monitorea los correos bajo cierta etiqueta (carpeta) y borra aquellos que excedan el tiempo que hemos definido previamente.

Ahora veamos el paso a paso, para ejecutar el script.

  1. Abrir el Script de Google y pulsar en Archivo -> Crear una copia para copiarlo a nuestra cuenta de Google Drive.
  2. Definir el valor de GMAIL_LABEL con el nombre de la etiqueta que deseamos asignar a los correos que se borrarán automáticamente.
  3. Definir el valor de PURGE_AFTER con el número de días que deben transcurrir para eliminar el correo en Gmail. 
  4. Ir a Ejecutar -> Initialize y autorizar el script.
  5. Ir a Ejecutar -> Install para instalar el script.

¡Eso es todo! Salimos de Google Script y este continuamente monitoreará la etiqueta Gmail asignada automáticamente y en background. Si necesitas desactivar esta nueva funcionalidad, puedes hacerlo en cualquier momento. Simplemente debes Abrir el mismo Script de Google en tu cuenta de Google Drive y seleccionas Ejecutar -> Uninstall.

Me parece que esta es una buena solución ante la falta de la funcionalidad. Sin embargo, sería bueno que Gmail ofrezca esta característica en uno de sus Labs. ¿Què piensas? ¿Crees que es una funcionalidad útil?

Comentarios

Imagen de afaros
afaros

Me parece muy útil. Sin embargo, al ejecutarse el script recibía la siguiente notificación "Exceeded maximum execution time", al parecer por la cantidad de mensajes y duración que tomaba al hacer el ciclo 'for' para recorrer los mensajes .

Cambie un poco el código y pase a usar la función GmailApp.moveThreadsToTrash, con esto no es necesario el for y parece que ahora sí me funciona (aunque aún lo estoy monitoreando!)

Imagen de Alfonsito
Alfonsito

Afaros, ¿podrías compartir tu código para usarlo también?

A mí también me aparece el error de "Exceeded maximum execution time" y me gustaría probarlo...

Imagen de afaros
afaros

Hola Alfonsito,

Basicamente cambie la definición de las variables GMAIL_LABEL y PURGE_AFTER pues deseaba que el mismo script me borrara en diferentes labels, además luego me intereso que pasara un número distinto de días antes de borrar en cada uno de los labels de ahí que convertí estas variables en arreglos (de igual forma es posible colocar solo un elemento en el arreglo)

Además, cambie la función purgeGmail. Todo lo demás lo deje exactamente igual.

A mi me esta funcionando a la perfección, espero te sirva. Acá el código modificado, lo demás del código original se mantiene:

//var GMAIL_LABEL = "reportes-monitoreo-nacion";
var MIS_ETIQUETAS = new Array("label1", "label2", "label3");

// Número de días que deben pasar para que un mensaje sea purgado
var PURGE_AFTER = new Array("60", "30", "1"); // debe terner el mismo número de elementos que 'MIS_ETIQUETAS'
//var PURGE_AFTER = "2";

function purgeGmail() {

for(var c=0;c < MIS_ETIQUETAS.length; c++){
var age = new Date();
age.setDate(age.getDate() - PURGE_AFTER[c]);

var purge = Utilities.formatDate(age, Session.getTimeZone(), "yyyy-MM-dd");
//var search = "label:" + GMAIL_LABEL + " before:" + purge;
var search = "label:" + MIS_ETIQUETAS[c] + " before:" + purge;

try {
var threads = GmailApp.search(search, 0, 100);
var cantidad_threads = threads.length;
GmailApp.moveThreadsToTrash(threads);

if (cantidad_threads == 100) {
ScriptApp.newTrigger("purgeGmail")
.timeBased()
.at(new Date((new Date()).getTime() + 1000*60*10))
.create();
}
} catch (e) {}
}
}

saludos

Tutoriales

Cómo descargar videos de VK.com
En este artículo voy a explicar como descargar videos y películas...
Descargar Facebook Móvil Gratis
Por si aún no lo han hecho, es posible descargar Facebook Móvil...
Cómo generar tráfico web con las redes sociales - Paso a Paso
Muchas empresas están publicando contenidos como la forma de crear...

Artículo Recomendado

3 Tips cruciales para recuperar archivos eliminados
¿Te imaginas perder el trabajo de toda una semana en tan solo unos segundos? Todos hemos pasado por este problema. Quizás eliminamos por error un archivo importante o lo borramos sin pensar que era valioso para otro... más