Com o FiltaQuilla, e algumas ações / regras em javascript, é possível. No entanto, aqui está um exemplo com algumas modificações na fonte do FiltaQuilla para simplificar o processo.
O exemplo aqui fará três estágios de filtragem: marcação - que apenas classifica os e-mails. Em seguida, modificando - isso faz alguma computação lógica e modifica o assunto ou os cabeçalhos do email. E, ação - fazendo a ação real. Cada um dos estágios envolverá a edição de filtros na caixa de diálogo de filtro do Thunderbird normalmente, mas com opções adicionadas pelo 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.
Passos:
Instale o FiltaQuilla
Parece que muitas funções estão funcionando apenas com o Thunderbird 3.1. Assim, atualize para o TB 3.1 primeiro. Em seguida, instale o FiltaQuilla.
Na guia de preferências do FiltaQuilla, ative "Sufixo ao assunto" e "Ação Javascript".
Modificar fonte do FiltaQuilla
Edite "filtaquilla@mesquilla.com/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 "Sufixo para o assunto" e adiciona as seqüências com sufixo a um novo cabeçalho chamado "mykeywords". Este novo campo de cabeçalho será usado para manter o resultado dos dois primeiros estágios de filtragem nas formas de palavras de sequência.
Essa alteração no código-fonte é reutilizar a ação "Sufixo", pois geralmente o sufixo de um assunto não é muito útil. Portanto, reutilizar suas entranhas internas não afetaria muito a usabilidade do FiltaQuilla. Caso contrário, uma solicitação oficial de recurso deve ser enviada ao criador do FiltaQuilla para adicionar o recurso que você deseja, ou você precisará escrever um pouco mais de código Javascript na condição de filtro como condição de 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 ao Assunto", mas as palavras com sufixo identificarão qual é o resultado obtido. Por exemplo, classifique os e-mails de acordo com a sua origem, com o sufixo das palavras "empresa-A", "empresa-B", ..., etc. Lembre-se de que essas palavras "empresa-A", "empresa-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 do campo de cabeçalho das regras de filtro, use "Personalizar" para adicionar "mykeywords" à lista. Em seguida, escolha "mykeywords contains company-" para a condição na caixa de diálogo do 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; */
Nesse ponto, todos os resultados da marcação podem ser acessados pelo script no campo de cabeçalho "mykeywords". Apenas analise a sequência e qualquer lógica poderá 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. Em seguida, na próxima etapa, marque "mykeywords contém result-AB" para realmente significar "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 foram 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". Essas serão apenas as configurações normais.
Notas:
O FiltaQuilla suporta javascripts na seção de condição. Portanto, 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ções da caixa de diálogo do filtro. Com esse código, qualquer cálculo lógico também pode ser feito.
Confira o site FiltaQuilla para obter mais informações.