Com o FiltaQuilla e algumas ações / regras do javascript, é factível. No entanto, aqui está um exemplo com algumas modificações na fonte FiltaQuilla para simplificar o processo.
O exemplo aqui fará três etapas de filtragem: marcação - que classifica apenas os e-mails. Em seguida, modificando - isso faz alguma computação lógica e modifica o assunto ou cabeçalhos do email. E, ação - fazendo a ação real. Cada um dos estágios envolverá a edição de filtros no diálogo de filtro do Thunderbird normalmente, mas com opções adicionais do FiltaQuilla. Os estágios 1 e 2 salvam seus resultados em um campo de cabeçalho de email recém-adicionado, e os estágios 2 e 3 usam os resultados no campo para fazer alguma lógica antes das ações normais.
Etapas:
Instalar o FiltaQuilla
Parece que muitas funções estão apenas trabalhando com o Thunderbird 3.1. Assim, atualize para TB 3.1 primeiro. Em seguida, instale o FiltaQuilla.
Na guia de preferência FiltaQuilla, ative "Sufixo para Assunto" e "Ação Javascript".
Modificar a Fonte FiltaQuilla
Edite "[email protected]/content/filtaquilla.js" no diretório de extensão para que fique assim:
// 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);
}
},
O código altera a ação original de "Suffix to Subject" para adicionar as sequências com sufixo a um novo cabeçalho chamado "mykeywords". Esse novo campo de cabeçalho será usado para manter o resultado dos dois primeiros estágios de filtragem nas formas de palavras de string.
Esta alteração do código-fonte é reutilizar a ação "Sufixo", pois normalmente o sufixo para um assunto não é muito útil. Assim, reutilizar suas entranhas internas não afetaria muito a usabilidade do FiltaQuilla. Se não estiver fazendo isso, uma solicitação de recurso oficial deve ser enviada ao criador do FiltaQuilla para adicionar o recurso desejado ou você precisará escrever um pouco mais de código Javascript na condição de filtro como condição Javasctipt.
Criar regras de filtro para marcação
Um exemplo é criar uma série de regras, cada uma delas terá apenas uma ação: "Sufixo para Assunto", mas as palavras com sufixo identificarão cada um o resultado obtido. Por exemplo, classifique os emails de acordo com o local de origem das palavras com sufixo "company-A", "company-B", ..., etc. Lembre-se de que essas palavras "company-A", "company-B", etc ., será concatenado no campo de cabeçalho "mykeywords".
Coloque essas regras no início da lista de regras de filtro.
Criar regras de filtro para modificação lógica
Na caixa suspensa de campo de cabeçalho de regras de filtro, use "Personalizar" para adicionar "mykeywords" à lista. Em seguida, escolha "mykeywords contains company-" para condição na caixa de diálogo de filtro.
Escolha "Ação Javascript" na seção de ação. Adicione um 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; */
Neste ponto, todos os resultados da marcação podem ser acessados pelo script do campo de cabeçalho "mykeywords". Apenas analise a string, então qualquer lógica pode ser aplicada após a análise para obter o resultado lógico desejado. Por exemplo, você pode aplicar se "A" e "B", adicionar "result-AB" a "mykeywords", etc. Então, na próxima etapa, verificar "mykeywords contém resultado-AB" para o significado real de "A e B ".
O exemplo acima também mostra que o "[VN IGNORE]" pode ser anexado à linha de assunto para indicar quais das três empresas estiveram envolvidas no email do assunto.
Criar regras de filtro para ação
Agora crie a regra de ação com base nos valores contidos em "mykeywords". Isso será apenas configurações normais.
Notas:
O FiltaQuilla suporta javascripts na seção de condições. Assim, se você não quiser alterar o código-fonte da extensão, precisará escrever um pouco mais de código na seção de condição da caixa de diálogo do filtro. Com esse código, qualquer cálculo lógico pode ser feito também.
Confira o site FiltaQuilla para mais informações.