Con FiltaQuilla, y algunas acciones / reglas de JavaScript, es factible. Sin embargo, aquí hay un ejemplo con algunas modificaciones en la fuente FiltaQuilla para simplificar el proceso.
El ejemplo aquí hará tres etapas de filtrado: marcado, que solo clasifica los correos electrónicos. Luego, modificando: eso hace un cálculo lógico y modifica el asunto o los encabezados del correo electrónico. Y, acción: hacer la acción real. Cada una de las etapas implicará la edición de filtros en el diálogo de filtro de Thunderbird normalmente, pero con opciones agregadas por FiltaQuilla. Las etapas 1 y 2 guardan sus resultados en un campo de encabezado de correo electrónico agregado recientemente, y las etapas 2 y 3 usan los resultados en el campo para hacer algo de lógica antes de las acciones normales.
Pasos:
Instalar FiltaQuilla
Parece que muchas funciones solo funcionan con Thunderbird 3.1. Por lo tanto, actualice a TB 3.1 primero. Luego instale FiltaQuilla.
En la pestaña de preferencias de FiltaQuilla, habilite "Sufijo al asunto" y "Acción de Javascript".
Modificar fuente FiltaQuilla
Edite "filtaquilla@mesquilla.com/content/filtaquilla.js" en el directorio de extensiones para que se vea así:
// Suffix to subject
self.subjectSuffix =
{
...
apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow)
{
for (var i = 0; i < aMsgHdrs.length; i++)
{
var msgHdr = aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr);
////var appSubject = _mimeAppend(aActionValue, msgHdr.subject, false);
////msgHdr.subject = appSubject;
var headerName = "mykeywords";
var headerValue = msgHdr.getStringProperty(headerName);
msgHdr.setStringProperty(headerName, headerValue + " " + aActionValue);
headerValue = msgHdr.getStringProperty(headerName);
// Cu.reportError("chg : " + headerName + " : " + headerValue);
}
},
El código cambia la acción original de "Suffix to Subject" y agrega las cadenas con sufijo en un nuevo encabezado llamado "mykeywords". Este nuevo campo de encabezado se utilizará para mantener el resultado de las dos primeras etapas de filtrado en forma de palabras de cadena.
Este cambio de código fuente es para reutilizar la acción "Sufijo" ya que generalmente el sufijo a un tema no es muy útil. Por lo tanto, reutilizar sus intestinos internos no afectaría mucho la usabilidad de FiltaQuilla. Si no está haciendo esto, se debe publicar una solicitud de función oficial al creador de FiltaQuilla para agregar la función que desee, o deberá escribir un poco más de código Javascript en la condición de filtro como condición de Javasctipt.
Crear reglas de filtro para marcado
Un ejemplo es crear una serie de reglas, cada una de las cuales tendrá una sola acción: "Sufijo al sujeto", pero las palabras con sufijo identificarán cuál es el resultado obtenido. Por ejemplo, clasifique los correos electrónicos de acuerdo a su procedencia con las palabras "empresa-A", "empresa-B", ..., etc. Recuerde que estas palabras "empresa-A", "empresa-B", etc. ., se concatenará en el campo de encabezado "mykeywords".
Coloque estas reglas al comienzo de la lista de reglas de filtro.
Crear reglas de filtro para modificación lógica
En el cuadro desplegable de campo de encabezado de reglas de filtro, use "Personalizar" para agregar "palabras clave" a la lista. Luego elija "mykeywords contiene company-" para la condición en el diálogo de filtro.
Elija "Acción Javascript" en la sección de acción. Agregue un código como este:
for (let index = 0; index < msgHdrs.length; index++)
{
let hdr = msgHdrs.queryElementAt(index, Ci.nsIMsgDBHdr);
let s = hdr.getStringProperty("mykeywords");
let v = s.split("company-"); /* result words are in v[] now */
let r = ""; /* logic conversion result */
let cnt = 0;
if ( v != undefined && v.length != undefined && v.length > 0) {
let lastVN = 0;
for(var i=v.length -1; i>=0; i--) {
let ss = v[i];
if ( ss.length > 1 ) {
ss = ss.substring(0);
/* convert company A into VIP, B into NORMAL, C into IGNORE.
* Assume the marking section starts with A,B, then C thus
* C gets parsed first, then A and B.
*/
if (ss.search(/A/) == 0) { ss = "V"; lastVN = 1; } /*VIP*/
else if (ss.search(/B/) == 0 ) { ss = "N"; lastVN = 1; } /*NORMAL*/
else if (ss.search(/C/) == 0 ) { ss = "IGNORE"; }
/* prepend subject line */
if ( cnt == 0 ) { r = ss + "] ";
} else { if (lastVN == 0) r = ss + " " + r; else r = ss + r; }
cnt ++;
}
} /* for(var i=v.length -1; */
if ( cnt > 0 ) { r = "[" + r; }
} /* if ( v != undefined && */
hdr.subject = r + hdr.subject;
} /* for (let index = 0; */
En este punto, el script puede acceder a todos los resultados de marcado desde el campo de encabezado "mykeywords". Simplemente analice la cadena, luego se puede aplicar cualquier lógica después del análisis para lograr el resultado lógico que desee. Por ejemplo, puede aplicar si "A" y "B", agregar "result-AB" a "mykeywords", etc. Luego, en la siguiente etapa, marque "mykeywords contiene result-AB" para el significado real de "A y B ".
El ejemplo anterior también muestra que "[VN IGNORE]" puede anteponerse a la línea de asunto para indicar cuál de las tres compañías ha estado involucrada en el asunto del correo electrónico.
Crear reglas de filtro para la acción
Ahora cree la regla de acción basada en los valores contenidos en "mykeywords". Esta será solo la configuración normal.
Notas:
FiltaQuilla admite javascripts en la sección de condición. Por lo tanto, si no desea cambiar el código fuente de la extensión, deberá escribir un poco más de código en la sección de condición del cuadro de diálogo de filtro. Con ese código también se puede hacer cualquier cálculo lógico.
Visite el sitio de FiltaQuilla para obtener más información.