Filtro de correo

 

Publicamos los detalles de cómo esta asamblea realiza el filtro de correo por las siguientes razones:

  1. Transparencia
  2. Que cunda la práctica de notificarle al remitente que su email no se va a leer

Con el 2º punto nos referimos a la parte de nuestro filtro que envía respuestas automáticas informando al remitente de por qué su email ha sido borrado.

Creemos que esto es muy importante y pedimos encarecidamente que las demás asambleas consideren aplicar medidas similares.

¿Por qué?

Sabemos que muchas comisiones (por no decir todas) son incapaces de leer todo el correo que les llega y por lo tanto han de hacer cribas más o menos cuidadas, que pueden ir desde el filtro que aquí trataremos al “miro lo que me da tiempo y el resto que se pierda en las profundidades de la bandeja de entrada que si es importante ya lo volverán a mandar” pasando por “a este remitente que ya me lo conozco, ni caso”.

En cualquier caso si no le notificamos al remitente lo que ha pasado nunca mejoraremos la situación global.

Responder al remitente nos permite:

  1. Saber que no perdemos información porque si nuestro filtro se pasa de estricto el remitente podrá tomar medidas para hacernos llegar su mensaje.
  2. Saber que si el remitente tiene buena voluntad corregirá sus malas prácticas en el futuro.
  3. Saber que si el remitente mandaba sus mails pensando que la gente se los leía, se tenga que enfrentar a la realidad y adopte nuevas medidas.
  4. Saber que si el remitente mandaba sus mails presuponiendo un porcentaje de no lecturas asumible pueda concretar cuán cuantioso es realmente ese porcentaje y reevaluar si realmente es asumible o no.
  5. Saber que si el remitente mandaba sus mails sin importarle nada de lo anterior porque le cuesta lo mismo mandar un mail a 1 cuenta que a 100, deje de costarle lo mismo porque por cada uno de esos destinatarios se puede topar con una respuesta que claramente desmotive esta practica.
  6. Saber que si no se cumple ninguno de los puntos anteriores el remitente manda sus mails como fin en sí mismo, sin preocuparle lo que pasa al otro lado y sin esperar respuesta pues cuando le llega la nuestra no le afecta en nada. En tal caso la misión de ese mail se ha cumplido en cuanto esa persona le dio a “enviar” y no es necesaria nuestra interacción para nada.

Por ello insistimos, sea cual sea tu filtro formalízalo, publícalo y da una respuesta automáticamente para que el remitente sepa lo que sucede.

Publicamos aquí nuestra metodología. Puedes tomar lo que creas conveniente para tu filtro.

0- Nuestra experiencia: un 16% menos de correos y más comunicación real

Nota: Éste iba a ser el último apartado del manual, pero hemos pensado que quizá antes de leerte este tocho quieras saber si merece la pena.

Aunque nuestra metodología sólo lleva en funcionamiento desde hace unos meses hemos hecho una simulación para ver cuántos mails habríamos filtrado si la hubiéramos usado desde julio de 2011.

El resultado a día de hoy (diciembre 2013) es que los filtros descritos en el punto 4 habrían capturado 421 mails, mientras que el script descrito en el punto 6 y 7 habría capturado 527 mails.

El total es 948 mails, lo que suponen una media de 1 mail al día o, si se prefiere, 31 al mes, y en nuestro caso particular se traduce en una disminución del 16% en el volumen total del correo entrante.

También hemos podido comprobar que ni uno sólo de los mails capturados en la simulación fue respondido ni redifundido en su día (es decir, todos cayeron en saco roto), mientras que algunos remitentes de los que capturamos ahora, gracias a la respuesta automática, han tomado la opción de responder concretando lo que querían y sí ha sido posible establecer una comunicación real.

1- La respuesta predefinida

Vamos a necesitar tener redactada una “respuesta predefinida” para contestar a estos mails. Se recomienda que esta respuesta sea concisa y breve (para facilitar que sea leída) y que enlace a una web donde se vea más detalladamente los distintos motivos por los que se puede haber eliminado su correo.

En Austrias usamos esta respuesta (a la cual llamamos «[RP] Eliminado»):

Tu email ha sido eliminado automáticamente

Para saber por qué y cómo evitarlo en el futuro por favor consulta: http://austrias.tomalosbarrios.net/email-borrado

Sentimos las molestias, pero el nivel de saturación de esta cuenta de correo exige tu colaboración.

Muchas gracias.

P.D.: Si el anterior enlace no te funciona prueba con éste: https://n-1.cc/pages/view/1834623

P.D.2: Si estamos en una lista de difusión a la que no nos hemos inscrito explicitamente, por favor, sacadnos de ella.

Y como veis enlazamos tanto nuestra web como a n-1 para que la información esté siempre accesible aunque tomalosbarrios se caiga.

Finalmente, necesitamos guardar en gmail este texto como “respuesta predefinida” para que se pueda usar de manera automática (ver es.wikihow.com, si no encuentras la opción como “respuesta predefinida” prueba con “respuesta estándar”).

2- La etiqueta “bórrame”

Para depurar nuestro filtro y además poder enviar respuestas automáticas necesitamos no borrar realmente estos mails, así que lo que vamos a hacer es etiquetarlos como “bórrame” y quitarlo de la bandeja de entrada (archivarlos). A efectos prácticos será como si los hubiéramos borrado pero estarán disponibles para depurar o reparar cualquier error.

3- Identificar remitentes spameadores

Revisaremos nuestros correos para encontrar aquellos remitentes que nos suelen mandar correos que nunca hemos sabido qué hacer con ellos. Para esto vamos mirando nuestra bandeja hacia el pasado y apuntando direcciones de correo de aquellos mails que rozan el spam. Cuando tengamos la lista buscaremos directamente todos los correos de cada remitente uno a uno y si nunca hemos tenido interacción real (son mails sueltos, nunca una conversación),  los apuntamos para usarlos en los siguientes filtros.

En Austrias hemos detectado 34 remitentes de este tipo pero por privacidad no publicaremos sus direcciones aquí y en su lugar las usaremos las cuentas ficticias fulano@mail.com y mengana@mail.com

4- Los filtros más básicos

Algunos mails los vamos a poder filtrar nada más llegar. Ponemos aquí los nuestros, la acción que ejecutan y una breve explicación.

Coincidencias: (-to:me AND ((list:"listas.nodo50.org" OR list:"lists.riseup.net") OR (from:(@hotmail.com OR @hotmail.es) AND -list:"googlegroups.com")))
Aplicar: Omitir Recibidos, Aplicar etiqueta "borrame", Enviar respuesta prediseñada "[RP] Eliminado", Excluye correo de la clasificación SmartLabel.

No estamos suscritos a ninguna lista de nodo50 ni de riseup (aunque si a alguna de googlegroups), ni tampoco conocemos ningún colectivo que use cuentas de Hotmail, por lo tanto si nos llega un mail donde no aparecemos como destinatarios (-to:me) hay dos posibilidades que nos interesa meter en “borrados”

  • Llega a través de una lista en la que no estamos suscritos (list:»listas.nodo50.org» OR list:»lists.riseup.net»)
  • Viene de un particular (from:(@hotmail.com OR @hotmail.es)) y no es a través de una lista a la que sí estamos suscritos (-list:»googlegroups.com»)

Coincidencias: (to:me AND -bcc:me AND -cc:me AND to:(info.barriosmadrid@gmail.com OR comisionbarrios@gmail.com) AND from:(fulano@mail.com OR megana@mail.com))
Aplicar: Omitir Recibidos, Aplicar etiqueta "borrame", Enviar respuesta prediseñada "[RP] Eliminado", Excluye correo de la clasificación SmartLabel.

Algunos remitentes mandan sus correos poniendo todas las direcciones en destinatarios principales (es decir, ni en copia ni en copia oculta, por lo tanto se cumple to:me AND -bcc:me) de manera que se puede ver cómo entre los destinatarios hay cuentas obsoletas que no sólo no se usan, sino que además mandan respuestas automáticas pidiendo al remitente que deje de usarlas (to:(info.barriosmadrid@gmail.com OR comisionbarrios@gmail.com)). Si además el remitente es uno de los detectados en el punto 3 (from:(fulano@mail.com OR megana@mail.com)) tiene todas las papeletas para ser un envío masivo que nunca iba a ser respondido.

Coincidencias: (((-to:me OR bcc:me) AND -list:"apm-comunicacion.listas.tomalosbarrios.net") AND (subject:(articulo OR artículo OR "fwd: fwd:" OR "fwd: fw:" OR "fwd: rv:" OR "fw: fwd:" OR "fw: fw:" OR "fw: rv:" OR "rv: fwd:" OR "rv: fw:" OR "rv: rv:") OR from:(fulano@mail.com OR megana@mail.com)))
Aplicar: Omitir Recibidos, Aplicar etiqueta "borrame", Enviar respuesta prediseñada "[RP] Eliminado", Excluye correo de la clasificación SmartLabel.

Cuando no figuramos en los destinatarios o estamos en copia oculta (-to:me OR bcc:me) y no viene a través de una lista de correo a la que estamos suscritos (-list:»apm-comunicacion.listas.tomalosbarrios.net») nos interesa meter en “borrados” los mails que publicitan artículos (subject:(articulo OR artículo)), son reenvíos de reenvíos (subject:( «fwd: fwd:» OR «fwd: fw:» OR «fwd: rv:» OR «fw: fwd:» OR «fw: fw:» OR «fw: rv:» OR «rv: fwd:» OR «rv: fw:» OR «rv: rv:»)) o vienen de esos remitentes que detectamos en el punto 3 (from:(fulano@mail.com OR megana@mail.com)).

Nota: Aunque parece que los remitentes detectados en el punto 3 nunca nos pueden mandar mails sí que tienen la posibilidad de hacerlo, simplemente nos tienen que poner en los destinatarios principales y no incluir direcciones obsoletas entre los demás destinatarios.

Y por último la gran excepción:

Coincidencias: subject:("Por favor, sacadme de la lista de bloqueo")
Aplicar: Aplicar etiqueta "Pendiente"

Por si todo falla, el remitente tiene que tener una manera segura de poder romper el bloqueo del filtro (obviamente esta manera viene documentada en la página enlazada en la respuesta automática). En nuestro caso eso significa meter los mails con el asunto “Por favor, sacadme de la lista de bloqueo” en la etiqueta “Pendiete”, que es una que siempre siempre miramos.

5- Preparar la 2º fase

Para poder filtrar con aun mayor precisión vamos a usar una segunda capa que consiste en un script que se ejecuta cada 5 minutos sobre nuestra bandeja de entrada. Es decir, no procesa los mail según llegan si no más tarde, por lo tanto nos conviene que nuestra bandeja de entrada esté lo más limpia y organizada posible para que cuando llegue el script todo le resulte más fácil.

En nuestros manuales se puede ver una descripción detallada de cómo organizamos nuestra bandeja de entrada, pero aquí repetiremos y ampliaremos lo más relevante para este manual.

Los siguientes filtros nos ayudaran a que el script se encuentre parte del trabajo ya hecho.

Coincidencias: from:(comisión_xxx.austrias@mail.com OR idiviudo_xxx.austrias@mail.com)
Aplicar: Aplicar etiqueta "Austrias”

comisión_xxx.austrias@mail.com y idiviudo_xxx.austrias@mail.com son dos cuentas ficticias que en nuestro filtro real están sustituidas por las cuentas de correo de comisiones, grupos de trabajo y personas que trabajan habitualmente en nuestra asamblea.

Coincidencias: (from:(barrio_vecino1@mail.com OR barrio_vecino2@mail.com))
Aplicar: Aplicar etiqueta "CT"

Donde barrio_vecino1@mail.com y  barrio_vecino2@mail.com son remplazadas por las cuentas de correo de las asambleas vecinas. Este filtro nos identifica las asambleas cercanas ya que son con las que más intercambiamos mails directos (con las demás nos solemos comunicar a través de la lista apm-com).

Coincidencias: (list:"apm-comunicacion.listas.tomalosbarrios.net" AND -(to:apm-comunicacion-owner@listas.tomalosbarrios.net OR from:(apm-comunicacion-bounces@listas.tomalosbarrios.net OR apm-comunicacion-request@listas.tomalosbarrios.net OR apm-comunicacion-owner@listas.tomalosbarrios.net)))
Aplicar: Omitir Recibidos, Aplicar etiqueta "apm-com", Excluye correo de la clasificación SmartLabel.

Quita de la bandeja de entrada todos los mails de la lista apm-comunicación y los deja en una etiqueta “apm-com” que también revisamos con cierta prioridad. Así los tenemos todos juntos y podemos tratarlos uno detrás de otro con más rapidez.

Coincidencias: from:(colectivo1@mail.com OR colectivo2@mail.com)
Aplicar: Aplicar etiqueta "noscript"

colectivo1@mail.com y colectivo2@mail.com son cuentas ficticias que en nuestro filtro real están sustituidas con aquellas cuentas de correo que sin ser ninguno de los casos anteriores queremos marcar con la etiqueta “noscript” para que posteriormente sean filtradas menos severamente.

Coincidencias: (subject:(urgente) AND -subject:(hoy OR mañana OR tarde OR noche OR enero OR febrero OR marzo OR abril OR mayo OR junio OR julio OR agosto OR septiembre OR octubre OR noviembre OR diciembre OR hora OR diaria OR dia OR finde OR lunes OR martes OR miercoles OR jueves OR viernes OR sabado OR domingo OR "fin de semana" OR nocturna OR miércoles OR sábado OR día))
Aplicar: Aplicar etiqueta "urg"

Más adelante vernos que queremos detectar los mails que dicen ser urgentes pero no especifican la fecha límite. Este filtro nos hace parte del trabajo, pero falta detectar si la fecha límite viene en forma de acrónimo (por ejemplo 18E, 16h, etc.), por eso este filtro solo marca con la etiqueta “urg” a los candidatos de luego ser filtrados con una regla adicional que veremos más tarde.

Coincidencias: ((bcc:me OR -to:me) AND -list:"apm-comunicacion.listas.tomalosbarrios.net")
Aplicar: Aplicar etiqueta "co"

Nos servirá para detectar los mails que no se han enviado directamente a nuestra cuenta, es decir, los que llegan a través de copia oculta u otros métodos indirectos.

6- El script

Nuestro script está escrito en javascript y corre sobre google script. Para no alargarnos demasiado nos limitaremos a simplemente dar el código (descargar de aquí) y explicar cómo funciona, dejando en tus manos buscar la documentación de cómo se usa este servicio u otro que te permita hacer algo parecido.

El script se ejecutará sobre los mails que cumplan lo siguiente:
in:inbox AND -from:me AND -in:chats AND -label:(borrame OR austrias OR apm-com OR pendiente) AND is:unread

Es decir, aquellos mails que están en la bandeja de entrada (in:inbox -in:chats), estén sin leer (is:unread) y úun no hayan sido procesados (-label:(borrame OR austrias OR apm-com OR pendiente)) ni respondidos (-from:me)

Nótese que con esto estamos excluyendo del filtro todos los mails que vienen de nuestra asamblea o de la lista de apm-comunicacion

Una vez hecho esto se va tratando los mails uno a uno diferenciando entre dos posibilidades:

  • Es un mail solitario (no forma parte de una conversación)
  • El mail forma parte de un hilo con más mensajes (es una conversación)

La mayoría de los filtros solo se ejecutaran sobre el primer caso, mientras que para el segundo caso sólo se mira si el mail es duplicado. Esto hace que al remitente afectado le baste simplemente con responder a nuestra contestación automática para saltarse el filtro y aclarar la situación o manifestar su queja si lo desea.

En cuanto al remitente los mails se dividen en dos tipos:

  • Mails que cumplen label:(noscript OR CT)
  • Todos los demás

Ambos tipos pasaran por las mismas validaciones. La diferencia es que los primeros (a los que llamaremos “lite”) sólo son realmente eliminados cuando no cumplen las validaciones más básicas, en los demás casos sólo reciben la respuesta automática en forma de aviso.

En cuanto a la respuesta predefinida durante esta parte del proceso, ya que el script permite un mayor grado de concreción, es enriquecida con un par de líneas que describen concretamente cuál es la validación que han incumplido (se puede ver en el código del script).

Aclaramos que en cuanto un mail no cumple una regla se despacha y se pasa al siguiente, es decir, no se da el caso de que a un mismo mail se le responda varias veces porque trasgreda varias reglas diferentes de nuestro script.

7- La validaciones del script

Para entender estos filtros previamente vamos a aclarar algunos de los términos que vamos a usar:

  • Asunto/cuerpo crudo: Es el asunto o cuerpo del mail tal y como viene, sin ninguna alteración
  • Asunto/cuerpo original: Es el asunto o cuerpo del mail tal como lo escribió el remitente, es decir, es decir, sin «fw:», «rv», etc., sin líneas de citas de mails anteriores, sin encabezados, sin texto entre corchetes que anidan las listas de correo, etc.
  • Texto significativo: Un texto es significativo cuando contiene al menos tres vocales.

La primera validación es mirar si se trata de un mail “solitario” o de un mail en una conversación. Si se trata del 2º caso se eliminará si y sólo si el correo no es “lite” y el último mail de la conversación sea exactamente igual al anterior. Este es el típico caso de cuando alguien está enviando un mail masivamente por tandas y te pone como destinatario en varias tandas distintas.

A partir de aquí todas las validaciones sólo se aplican a mails “solitarios” y las citamos por orden identificándolas con el nombre de la función que se encarga de ellas.

mandatory – éstas son las validaciones que provocan borrados tanto en mails “lite” como “no lite” y realiza las comprobaciones básicas sobre el asunto y el cuerpo del mail, es decir:

  • Que el asunto original tenga al menos 3 caracteres
  • Que el cuerpo del mail crudo sea significativo

A partir de aquí los mails “lite” seguirán siendo validados (como los demás) pero en vez de eliminar sus mails solo serán avisados del error cometido.

isBadSubject – se centra en el asunto y valida lo siguiente:

  • Que el asunto crudo no tenga más de dos cabeceras de reenvío (es decir, que el mail no sea un reenvío de un reenvío de un reenvío).
  • Que el asunto original no sea poco significativo y que al menos un 4% de él este escrito en minúsculas.
  • Que si el mail está marcado con la etiqueta “urg” (ver punto 5), el asunto lleve alguna referencia temporal tipo 18E o 16h.

isBadBody – se centra en el cuerpo del mail y valida lo siguiente:

  • Que al menos el 30% del cuerpo del mail crudo esté escrito en minúsculas.
  • Que el cuerpo del mail original sea significativo.
  • Que no esté lleno de direcciones de correo (típico caso de cuando se reenvia un mail masivo sin limpiar las cabeceras).
  • Que no esté lleno de imágenes o tipografías distintas, o sea muy largo (típico caso de cuando se corta y pega un artículo de alguna web).

isTooTo – mira si hay demasiados destinatarios o, en caso de que el mail tenga la etiqueta «co», si entre los destinatarios esta el propio remitente.

isTooAtt – mira si hay demasiada información en forma de archivos adjuntos (más de 4 adjuntos o más de 1MB en adjuntos).

isActa – mira, en caso de que el mail tenga la etiqueta «co», si el asunto crudo tiene la palabra «acta» (es decir, si nos están enviando un acta no solicitada).

Ésta es una descripción muy por encima ya que para un conocimiento detallado lo mejor es mirar el código del script.

8- La depuración

Como dijimos todos los mails eliminados realmente no son borrados si no que se meten en la etiqueta “bórrame”, por otro lado los mails que llegan ahí a través del script se le añaden una etiqueta adicional llamada “script”.

De esta manera si periódicamente le echamos un vistazo a nuestra etiqueta «bórrame» podremos revisar si nuestra metodología está funcionando o no, y si encontramos un mail que creemos que no debería estar ahí podemos saber, en función de si tiene la etiqueta “script” o no, en qué parte del proceso fue capturado.


Y eso es todo 🙂
Si se te ocurre alguna mejora, por favor siéntete libre de escribirla en los comentarios.

Print Friendly, PDF & Email
Share

Deja un comentario