Cómo guardar automáticamente adjuntos de Gmail en Google Drive

Esto es un truco muy práctico e interesante. Ahora que tienes tus 5 Gb de Google Drive puedes hacer que cualquier adjunto que recibas en un correo de Gmail se almacene directamente en tu Drive.

¿Para qué, dirás, sin Gmail me permite almacenar hasta 10 Gb?

Sencillo, porque en Google Drive puedes compartir el archivo con quien te apetezca muy fácilmente. También porque en el Drive puedes tener perfectamente a mano esos archivos sin necesidad de andar buscando el correo al que estaba adjunto. Además estarán disponibles para ti en cualquier momento (online y offline) y no se borrarán si eliminas el correo original.

O sea, que viene bien tener esa opción.

¿Cómo se hace?


En primer lugar, claro está, debes tener Gmail y Google Drive bajo el mismo usuario.

1.- Suponiendo que estés logueado en tu cuenta Google (en la que tienes el Gmail y el Drive) crea una copia de esta hoja de cálculo en tu Google Docs.

2.- Abre la hoja de cálculo que has guardado y verás un nuevo menú "Gmail" superior.


3.- Abre el menú "Gmail" y haz clic en "Iniciar" (Initialize) y, en la pantalla que se abrirá, concédele el permiso para ejecutarse.

IMPORTANTE: este ese un script muy sencillo que solo se ejecuta entre los servicios de los que tú eres usuario al igual que la hoja de cálculo es solamente tuya. El script NO comparte tus datos con nadie más. Puedes ver el código fuente al final de este artículo.

4.- Vuelve a hacer clic en el menú "Gmail" y haz clic en "Ejecutar" (Run).

Eso es todo. Ya puedes cerrar la hoja de cálculo.

5.- Cuando quieras que un adjunto se guarde en tu Google Drive no tienes más que asignarle la etiqueta "GoogleDrive".

¿Cómo funciona?

La hoja de cálculo monitoriza tu bandeja de entrada en segundo plano (cada 2 minutos). Cada vez que encuentre un mensaje que tú hayas etiquetado como "GoogleDrive" guardará automáticamente todos los archivos que tenga adjuntos  en la carpeta Gmail de tu Google Drive.

Puede que el archivo no se envíe a Google Drive inmediatamente. Recuerda que el script se ejecuta cada dos minutos.

Los archivos adjuntos no se eliminan de Gmail sino que se copian al Drive manteniendo el email tal cual estaba. Por otra parte, los archivos guardados en Drive se mantienen allí incluso cuando el correo en el que iban adjuntos se haya borrado.

Si más tarde quieres borrar definitivamente el archivo guardado en tu Google Drive tendrás que eliminarlo en Drive y también quitarle la etiqueta "GoogleDrive" al correo en el que estaban adjuntos (o borrar ese correo).

Idea adicional: también puedes crear una regla para que los correos que recibas de determinada gente o dirección o los que te envíes tú se etiqueten como "GoogleDrive" con lo que se almacenarán sus adjuntos allí. Si lo piensas un poco tal vez puedas encontrar interesantes ideas alrededor de esto :-)


Código fuente del script

function sendToGDrive() {    
  var sheet   = SpreadsheetApp.getActiveSheet();  var gLabel  = sheet.getRange("D4:D4").getValues();  var gFolder = sheet.getRange("D5:D5").getValues();
  var threads = GmailApp.search("label:" + gLabel);  var folder  = DocsList.getFolder(gFolder);    for (var x=0; x<threads.length; x++) {        var messages = threads[x].getMessages();        for (var y=0; y<messages.length; y++) {            var att = messages[y].getAttachments();            for (var z=0; z<att.length; z++) {        try {          var file = folder.createFile(att[z]);          Utilities.sleep(1000);        }        catch (e) {          GmailApp.sendEmail(            Session.getActiveUser().getUserLoginId(),
            "Error: " + messages[z].getSubject(),
            e.message          );        }      }    
    }        GmailApp.getUserLabelByName(gLabel)      .removeFromThread(threads[x]);  }}
function configure() {  var sheet   = SpreadsheetApp.getActiveSheet();  var gLabel  = sheet.getRange("D4:D4").getValues();  var gFolder = sheet.getRange("D5:D5").getValues();    if (!GmailApp.getUserLabelByName(gLabel)) {    GmailApp.createLabel(gLabel);  }    var folders = DocsList.getAllFolders();  var found = false;    for (var i=0; i<folders.length; i++) {    if (folders[i].getName() == gFolder) {      found = true;      break;
    }  }    if (!found) {    DocsList.createFolder(gFolder);  }
  if (ScriptApp.getScriptTriggers().length == 0) {    ScriptApp.newTrigger("sendToGDrive").timeBased().everyMinutes(5).create();  }    SpreadsheetApp.getActiveSpreadsheet()    .toast("You can now close the Google Docs website.",           "Success", -1);}
function onOpen() {    var menu = [        {name: "Initialize", functionName: "configure"},    {name: "Run", functionName: "configure"}  ];    SpreadsheetApp.getActiveSpreadsheet()    .addMenu("Gmail (Clic aquí)", menu);}

Notas y fuente de la información:

Traducido del inglés, con algunos añadidos y variaciones, de Digital Inspiration.

0 Response to "Cómo guardar automáticamente adjuntos de Gmail en Google Drive"

Posting Komentar