Marcar Gmail como leído al archivar desde notificación

La versión más reciente de la aplicación Gmail como la gran característica en la que puede elegir entre archivar o responder correos electrónicos directamente desde la notificación.

Mi problema es que, si lo archivas desde la notificación, se queda sin leer (en lugar de marcarlo como leído). ¿Hay alguna forma de evitar eso?

Me gustaría que todos los correos electrónicos que se archivan directamente desde la notificación se marquen automáticamente como leídos.

No creo que eso sea posible actualmente. La única acción a la que puede cambiar es eliminar en lugar de archivar.
@AlEverett Esperaba que hubiera una forma de hacerlo con una aplicación alternativa, o al menos con un script de Google. =/

Respuestas (4)

¿Dijiste Google Script?

Marcar Gmail como leído con Apps Script

La idea detrás de este script es marcar como leído cualquier mensaje que no esté en la bandeja de entrada (es decir, que haya sido archivado).

  1. Dirígete a script.google.com para iniciar un script.
  2. Elija crear un script para Gmail en la pequeña ventana emergente.
  3. Elimine todo el código de muestra que le proporciona.
  4. Reemplácelo con esto (escrito usando la referencia API ):

    función marcar archivado como leído () {
       var hilos = GmailApp.search('etiqueta:no leído -etiqueta:bandeja de entrada');
       GmailApp.markThreadsRead(subprocesos);
     };
  5. Guarde el proyecto con Archivo > Guardar.

  6. Agregue una nueva versión usando Archivo > Administrar versiones e ingrese "versión inicial" y luego envíela.
  7. Realice una ejecución de prueba usando Ejecutar > marcar archivado como leído y asegúrese de autorizar la aplicación cuando se lo solicite.
  8. Agregue un nuevo activador mediante Recurso > Activadores del proyecto actual y elija ejecutar la función anterior cada minuto.
  9. Guarde el script nuevamente y salga.

No sé si es necesario ejecutarlo cada minuto , pero siempre y cuando lo ejecute con regularidad.

Esta no es una respuesta directa a su problema, y ​​si tiene motivos para tener mensajes no leídos que no están en su bandeja de entrada, esto no funcionará para usted.

Tengo algunos filtros que pueden archivar directamente los correos electrónicos no leídos y me gustaría mantenerlos sin leer, pero ese es un muy buen comienzo. Podría tener un segundo script que marque con una etiqueta específica los hilos no leídos en mi bandeja de entrada. Y luego, este primer script solo marcaría como leídos los mensajes archivados con esta etiqueta (en lugar de todos los mensajes archivados).
Esto también tiene un pequeño error. Si archiva un mensaje y llega un nuevo mensaje en el mismo hilo antes de que el script tenga la oportunidad de ejecutarse, ambos se marcarán como leídos cuando se ejecute el script. Esto se debe a que GmailApp.search devuelve hilos completos y no le importa si uno de los mensajes del hilo estaba en la bandeja de entrada.

Logré hacerlo funcionar con el siguiente Google Script .
Es casi lo mismo que la respuesta de @AlEverett, pero nunca marca como mensajes leídos que se saltan la bandeja de entrada por completo (de un filtro o algo así).

Desafortunadamente, no funcionará para usted si tiende a archivar mensajes muy rápidamente (menos de 30 segundos en promedio).

/** Mark as read archived threads which were previously in the inbox (determined by the label "i"). **/
function cleanAndroidArchived(){
  markArchivedAsRead();
  labelInboxAsI();
}

function markArchivedAsRead() {
  var threads = GmailApp.search('in:unread label:i -label:inbox');
  var label = GmailApp.createLabel("i");
  label.removeFromThreads(threads);
  GmailApp.markThreadsRead(threads);
};

function labelInboxAsI() {
  var threads = GmailApp.search('in:unread label:inbox');
  var label = GmailApp.createLabel("i");
  label.addToThreads(threads);
};

Creo que resolví el problema con el caso de @BruceConnor, y tuve que esperar a que se ejecutara el script antes de que pudiera funcionar.

  1. Creé un nuevo filtro que busca cualquier cosa en la bandeja de entrada
  2. asigna la etiqueta "i" (que es creada por su versión)

Gmail se queja de que el filtro nunca coincidirá con nada, pero en este caso sí coincide con todos los mensajes entrantes que permanecen en la bandeja de entrada.

El resultado es que todos los nuevos mensajes entrantes se "memorizan" automáticamente con esta etiqueta, luego, cuando presiona archivar, el script puede comparar la lista de la bandeja de entrada con la etiqueta "i" y saber cuáles se archivaron recientemente, y luego marcar solo esos como " leer". No tiene que esperar para archivar, porque todos los mensajes se asignan a la cola de archivo "i".

Bonificación: también configuré la nueva etiqueta "i" en "Ocultar en la lista de mensajes" y "Ocultar en la lista de etiquetas", por lo que nunca aparece. (Haga clic en la pequeña flecha junto a la nueva etiqueta "i" y elija estas opciones).

La respuesta de @ al-e funciona, pero tiene un pequeño error mencionado en los comentarios. Hice una versión diferente del script que resuelve este error y lo he estado usando con éxito durante algunos años. Aquí está el script que estoy usando:

function markArchivedAsRead() {
  var threads = GmailApp.search('label:unread -label:inbox');
  for (var i=0; i<threads.length; i++)
  {
    var messages = threads[i].getMessages();
    var markUnread = 1;
    for (var j=0; j<messages.length; j++)
    {
      if (messages[j].isInInbox())
        markUnread = 0;
    }
    if (markUnread)
      threads[i].markRead();
  }
};