[SOLVED] SpamAssassin Custom Rules are not being parsed correctly

fernoliv

Active Member
Sep 30, 2018
20
4
43
40
Hi there,

I tried to configure some SpamAssassin custom rules on our PMG (/etc/mail/spamassassin/custom.cf, then spamassassin --lint, then pmgconfig sync --restart 1 and systemctl restart pmg-smtp-filter) using accents from Brazilian Portuguese and it's not working as expected. The rules are these below:

header LOCAL_ATUALIZACAONECESSARIA_RULE Subject=~ /atualiza[çc][ãa]o necess[áa]ria/i
score LOCAL_ATUALIZACAONECESSARIA_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA2_RULE Subject=~ /Atualização necessária/i
score LOCAL_ATUALIZACAONECESSARIA2_RULE 10.0

header LOCAL_PROPOSTAMOVEL_RULE Subject=~ /Proposta Telefonia Móvel/i
score LOCAL_PROPOSTAMOVEL_RULE 10.0

header LOCAL_EXCLUSAOICMS_RULE Subject=~ /Exclusão do ICMS da Base de Cálculo do PIS e da COFINS na Prática/i
score LOCAL_EXCLUSAOICMS_RULE 10.0

header LOCAL_TEMOSSOLUCOES_RULE Subject=~ /Temos soluções para sua empresa/i
score LOCAL_TEMOSSOLUCOES_RULE 10.0

header LOCAL_COTACAOSAUDE_RULE Subject=~ /Cotação Saúde, Empresarial - Reduza custos sem perder benefícios/i

score LOCAL_COTACAOSAUDE_RULE 10.0

Even using and validating the regex, it is not working with accents. But if I remove the accents, it is working.

I tried also start the line with "lang pt_BR", change the system locale to pt_BR_UTF8 and pt_BR_ISO-8859 with no success.

Anyone has ideas about what I'm doing wrong or how I can have it working correctly?
 

Attachments

  • Captura de Tela 2020-12-15 às 14.59.10.png
    Captura de Tela 2020-12-15 às 14.59.10.png
    52.6 KB · Views: 18
Any error from syslog or mail.log?
Unfortunately no, I'm watching the logs all day long with no traces about why SpamAssassin is not accepting any regex (validated on regex101.com for example) or parsing the rules correctly.

That is only happening with words using accents.
 
This is my custom.cf file when I use the "cat" command to open it:

Code:
mimeheader MIME_FAIL   Content-Type =~ /\.(ade|adp|bat|chm|cmd|com|cpl|exe|hta|ins|isp|jse|lib|lnk|mde|msc|msp|mst|pif|scr|sct|shb|sys|vb|vbe|vbs|vxd|wsc|wsf|wsh|reg)\b/i
describe   MIME_FAIL   Blacklisted file extension detected
score      MIME_FAIL   10.0

header LOCAL_BOOMDEVENDAS_RULE Subject=~ /BOOM DE VENDAS/i
score LOCAL_BOOMDEVENDAS_RULE 10.0

header LOCAL_ALERTASEGURANCA_RULE Subject=~ /Alerta de Seguranca/i
score LOCAL_ALERTASEGURANCA_RULE 10.0

header LOCAL_NOVODISPOSITIVO_RULE Subject=~ /Um novo dispositivo foi conectado a sua conta/i
score LOCAL_NOVODISPOSITIVO_RULE 10.0

header LOCAL_CHAVEPIX_RULE Subject=~ /Chave Pix/i
score LOCAL_CHAVEPIX_RULE 10.0

header LOCAL_PREZADOCLIENTE_RULE Subject=~ /Prezado Cliente/i
score LOCAL_PREZADOCLIENTE_RULE 10.0

header LOCAL_FBCONTABLOQUEADA_RULE Subject=~ /FACEBOOK - SUA CONTA FOI TEMPORARIAMENTE BLOQUEADA/i
score LOCAL_FBCONTABLOQUEADA_RULE 10.0

header LOCAL_NETFLIXCONTASUSPENSA_RULE Subject=~ /nextflix informa conta suspensa/i
score LOCAL_NETFLIXCONTASUSPENSA_RULE 10.0

header LOCAL_DIVULGUE200_RULE Subject=~ /Divulgue para/i
score LOCAL_DIVULGUE200_RULE 10.0

header LOCAL_MASCARACORONAVIRUS_RULE Subject=~ /scara que elimina o Coronavirus - Temos Anvisa e Unicamp/i
score LOCAL_MASCARACORONAVIRUS_RULE 10.0

header LOCAL_YOURBUSINESS_RULE Subject=~ /Your Business/i
score LOCAL_YOURBUSINESS_RULE 10.0

header LOCAL_INDICADORESFINANCEIROS_RULE Subject=~ /Indicadores Financeiros/i
score LOCAL_INDICADORESFINANCEIROS_RULE 10.0

header LOCAL_LGPD_RULE Subject=~ /LGPD/i
score LOCAL_LGPD_RULE 10.0

header LOCAL_CONTABLOQUEADA_RULE Subject=~ /conta bloqueada/i
score LOCAL_CONTABLOQUEADA_RULE 10.0

header LOCAL_CEF_RULE Subject=~ /cef/i
score LOCAL_CEF_RULE 10.0

header LOCAL_FATURACLARO_RULE Subject=~ /A Sua fatura Claro NET por e-mail/i
score LOCAL_FATURACLARO_RULE 10.0

header LOCAL_FATURAVIVOMOVEL_RULE Subject=~ /Sua Fatura Vivo Mo]vel Chegou/i
score LOCAL_FATURAVIVOMOVEL_RULE 10.0

header LOCAL_PROPOSTAVIVO_RULE Subject=~ /Proposta Vivo para linhas novas e portabilidade/i
score LOCAL_PROPOSTAVIVO_RULE 10.0

header LOCAL_DIMINUAMEDIDAS_RULE Subject=~ /Diminua medidas/i
score LOCAL_DIMINUAMEDIDAS_RULE 10.0

header LOCAL_CINTASMODELADORAS_RULE Subject=~ /CINTAS MODELADORAS/i
score LOCAL_CINTASMODELADORAS_RULE 10.0

header LOCAL_INDICADORESFINANCEIROS2_RULE Subject=~ /de Indicadores Financeiros/i
score LOCAL_INDICADORESFINANCEIROS2_RULE 10.0

header LOCAL_ALERTA_RULE Subject=~ /ALERTA: Regularize-se/i
score LOCAL_ALERTA_RULE 10.0

header LOCAL_ONLINEAOVIVO_RULE Subject=~ /online ao vivo/i
score LOCAL_ONLINEAOVIVO_RULE 10.0

header LOCAL_ANTECIPE_RULE Subject=~ /antecipe as inscri[c?][o?]es/i
score LOCAL_ANTECIPE_RULE 10.0

header LOCAL_COMDESCONTO_RULE Subject=~ /com desconto/i
score LOCAL_COMDESCONTO_RULE 10.0

header LOCAL_LEIGERALPROTECAODADOS_RULE Subject=~ /Lei Geral de Prote/i
score LOCAL_LEIGERALPROTECAODADOS_RULE 10.0

header LOCAL_RISCOSTRABALHISTAS_RULE Subject=~ /Riscos Trabalhistas e o Compliance/i
score LOCAL_RISCOSTRABALHISTAS_RULE 10.0

header LOCAL_DESCONTOEMTODOS_RULE Subject=~ /de desconto em todos/i
score LOCAL_DESCONTOEMTODOS_RULE 10.0

header LOCAL_AVISOBLOQUEIO_RULE Subject=~ /Aviso: BLOQUEIO/i
score LOCAL_AVISOBLOQUEIO_RULE 10.0

header LOCAL_GRANDETENDENCIA_RULE Subject=~ /Parte da Grande Tend/i
score LOCAL_GRANDETENDENCIA_RULE 10.0

header LOCAL_ACESSOSUSPEITO_RULE Subject=~ /Verifique o acesso suspeito ao seu Mercado Pago/i
score LOCAL_GRANDETENDENCIA_RULE 10.0

header LOCAL_SOMENTEHOJE_RULE Subject=~ /Somente hoje/i
score LOCAL_SOMENTEHOJE_RULE 10.0

header LOCAL_GESTAODECOMPRAS_RULE Subject=~ /o de Compras e Negocia/i
score LOCAL_GESTAODECOMPRAS_RULE 10.0

header LOCAL_PROPOSTASAUDE_RULE Subject=~ /RES: Proposta Sa[u?]de - Redu[c?][a?]o de valores/i
score LOCAL_PROPOSTASAUDE_RULE 10.0

header LOCAL_WEBINARHOLDINGPATRIMONIAL_RULE Subject=~ /Webinar - Holding Patrimonial/i
score LOCAL_WEBINARHOLDINGPATRIMONIAL_RULE 10.0

header LOCAL_ENCNOTAELETRONICA_RULE Subject=~ /Enc: Nota eletronica/i
score LOCAL_ENCNOTAELETRONICA_RULE 10.0

header LOCAL_APLICORCAMENTOBASE_RULE Subject=~ /Aplica[c?][a?]o do Or[c?]amento Base/i
score LOCAL_APLICORCAMENTOBASE_RULE 10.0

header LOCAL_KN95_RULE Subject=~ /kn95/i
score LOCAL_KN95_RULE 10.0

header LOCAL_TEMOSSURPRESA_RULE Subject=~ /temos uma surpresa para voc/i
score LOCAL_TEMOSSURPRESA_RULE 10.0

header LOCAL_VERIFIQUEACESSO_RULE Subject=~ /Verifique o acesso suspeito ao seu Mercado Pago/i
score LOCAL_VERIFIQUEACESSO_RULE 10.0

header LOCAL_NASUACONTADEEMAIL_RULE Subject=~ /na sua conta de e-mail/i
score LOCAL_NASUACONTADEEMAIL_RULE 10.0

header LOCAL_FIQUEESPERTO_RULE Subject=~ /Fique Esperto/i
score LOCAL_FIQUEESPERTO_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA_RULE Subject=~ /atualiza[?c][?a]o necess[?a]ria/i
score LOCAL_ATUALIZACAONECESSARIA_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA2_RULE Subject=~ /Atualiza??o necess?ria/i
score LOCAL_ATUALIZACAONECESSARIA2_RULE 10.0

header LOCAL_ENRIQUECER2021_RULE Subject=~ /Um 2021 para Enriquecer/i
score LOCAL_ENRIQUECER2021_RULE 10.0

header LOCAL_PROPOSTAMOVEL_RULE Subject=~ /Proposta Telefonia M?vel/i
score LOCAL_PROPOSTAMOVEL_RULE 10.0

header LOCAL_EXCLUSAOICMS_RULE Subject=~ /Exclus?o do ICMS da Base de C?lculo do PIS e da COFINS na Pr?tica/i
score LOCAL_EXCLUSAOICMS_RULE 10.0

header LOCAL_TEMOSSOLUCOES_RULE Subject=~ /Temos solu??es para sua empresa/i
score LOCAL_TEMOSSOLUCOES_RULE 10.0

header LOCAL_COTACAOSAUDE_RULE Subject=~ /Cota??o Sa?de, Empresarial - Reduza custos sem perder benef?cios/i
 
But if I use vim or nano, I can see it with accents:


Code:
mimeheader MIME_FAIL   Content-Type =~ /\.(ade|adp|bat|chm|cmd|com|cpl|exe|hta|ins|isp|jse|lib|lnk|mde|msc|msp|mst|pif|scr|sct|shb|sys|vb|vbe|vbs|vxd|wsc|wsf|wsh|reg)\b/i
describe   MIME_FAIL   Blacklisted file extension detected
score      MIME_FAIL   10.0

header LOCAL_BOOMDEVENDAS_RULE Subject=~ /BOOM DE VENDAS/i
score LOCAL_BOOMDEVENDAS_RULE 10.0

header LOCAL_ALERTASEGURANCA_RULE Subject=~ /Alerta de Seguranca/i
score LOCAL_ALERTASEGURANCA_RULE 10.0

header LOCAL_NOVODISPOSITIVO_RULE Subject=~ /Um novo dispositivo foi conectado a sua conta/i
score LOCAL_NOVODISPOSITIVO_RULE 10.0

header LOCAL_CHAVEPIX_RULE Subject=~ /Chave Pix/i
score LOCAL_CHAVEPIX_RULE 10.0

header LOCAL_PREZADOCLIENTE_RULE Subject=~ /Prezado Cliente/i
score LOCAL_PREZADOCLIENTE_RULE 10.0

header LOCAL_FBCONTABLOQUEADA_RULE Subject=~ /FACEBOOK - SUA CONTA FOI TEMPORARIAMENTE BLOQUEADA/i
score LOCAL_FBCONTABLOQUEADA_RULE 10.0

header LOCAL_NETFLIXCONTASUSPENSA_RULE Subject=~ /nextflix informa conta suspensa/i
score LOCAL_NETFLIXCONTASUSPENSA_RULE 10.0

header LOCAL_DIVULGUE200_RULE Subject=~ /Divulgue para/i
score LOCAL_DIVULGUE200_RULE 10.0

header LOCAL_MASCARACORONAVIRUS_RULE Subject=~ /scara que elimina o Coronavirus - Temos Anvisa e Unicamp/i
score LOCAL_MASCARACORONAVIRUS_RULE 10.0

header LOCAL_YOURBUSINESS_RULE Subject=~ /Your Business/i
score LOCAL_YOURBUSINESS_RULE 10.0

header LOCAL_INDICADORESFINANCEIROS_RULE Subject=~ /Indicadores Financeiros/i
score LOCAL_INDICADORESFINANCEIROS_RULE 10.0

header LOCAL_LGPD_RULE Subject=~ /LGPD/i
score LOCAL_LGPD_RULE 10.0

header LOCAL_CONTABLOQUEADA_RULE Subject=~ /conta bloqueada/i
score LOCAL_CONTABLOQUEADA_RULE 10.0

header LOCAL_CEF_RULE Subject=~ /cef/i
score LOCAL_CEF_RULE 10.0

header LOCAL_FATURACLARO_RULE Subject=~ /A Sua fatura Claro NET por e-mail/i
score LOCAL_FATURACLARO_RULE 10.0

header LOCAL_FATURAVIVOMOVEL_RULE Subject=~ /Sua Fatura Vivo Mo]vel Chegou/i
score LOCAL_FATURAVIVOMOVEL_RULE 10.0

header LOCAL_PROPOSTAVIVO_RULE Subject=~ /Proposta Vivo para linhas novas e portabilidade/i
score LOCAL_PROPOSTAVIVO_RULE 10.0

header LOCAL_DIMINUAMEDIDAS_RULE Subject=~ /Diminua medidas/i
score LOCAL_DIMINUAMEDIDAS_RULE 10.0

header LOCAL_CINTASMODELADORAS_RULE Subject=~ /CINTAS MODELADORAS/i
score LOCAL_CINTASMODELADORAS_RULE 10.0

header LOCAL_INDICADORESFINANCEIROS2_RULE Subject=~ /de Indicadores Financeiros/i
score LOCAL_INDICADORESFINANCEIROS2_RULE 10.0

header LOCAL_ALERTA_RULE Subject=~ /ALERTA: Regularize-se/i
score LOCAL_ALERTA_RULE 10.0

header LOCAL_ONLINEAOVIVO_RULE Subject=~ /online ao vivo/i
score LOCAL_ONLINEAOVIVO_RULE 10.0

header LOCAL_ANTECIPE_RULE Subject=~ /antecipe as inscri[c?][o?]es/i
score LOCAL_ANTECIPE_RULE 10.0

header LOCAL_COMDESCONTO_RULE Subject=~ /com desconto/i
score LOCAL_COMDESCONTO_RULE 10.0

header LOCAL_LEIGERALPROTECAODADOS_RULE Subject=~ /Lei Geral de Prote/i
score LOCAL_LEIGERALPROTECAODADOS_RULE 10.0

header LOCAL_RISCOSTRABALHISTAS_RULE Subject=~ /Riscos Trabalhistas e o Compliance/i
score LOCAL_RISCOSTRABALHISTAS_RULE 10.0

header LOCAL_DESCONTOEMTODOS_RULE Subject=~ /de desconto em todos/i
score LOCAL_DESCONTOEMTODOS_RULE 10.0

header LOCAL_AVISOBLOQUEIO_RULE Subject=~ /Aviso: BLOQUEIO/i
score LOCAL_AVISOBLOQUEIO_RULE 10.0

header LOCAL_GRANDETENDENCIA_RULE Subject=~ /Parte da Grande Tend/i
score LOCAL_GRANDETENDENCIA_RULE 10.0

header LOCAL_ACESSOSUSPEITO_RULE Subject=~ /Verifique o acesso suspeito ao seu Mercado Pago/i
score LOCAL_GRANDETENDENCIA_RULE 10.0

header LOCAL_SOMENTEHOJE_RULE Subject=~ /Somente hoje/i
score LOCAL_SOMENTEHOJE_RULE 10.0

header LOCAL_GESTAODECOMPRAS_RULE Subject=~ /o de Compras e Negocia/i
score LOCAL_GESTAODECOMPRAS_RULE 10.0

header LOCAL_PROPOSTASAUDE_RULE Subject=~ /RES: Proposta Sa[u?]de - Redu[c?][a?]o de valores/i
score LOCAL_PROPOSTASAUDE_RULE 10.0

header LOCAL_WEBINARHOLDINGPATRIMONIAL_RULE Subject=~ /Webinar - Holding Patrimonial/i
score LOCAL_WEBINARHOLDINGPATRIMONIAL_RULE 10.0

header LOCAL_ENCNOTAELETRONICA_RULE Subject=~ /Enc: Nota eletronica/i
score LOCAL_ENCNOTAELETRONICA_RULE 10.0

header LOCAL_APLICORCAMENTOBASE_RULE Subject=~ /Aplica[c?][a?]o do Or[c?]amento Base/i
score LOCAL_APLICORCAMENTOBASE_RULE 10.0

header LOCAL_KN95_RULE Subject=~ /kn95/i
score LOCAL_KN95_RULE 10.0

header LOCAL_TEMOSSURPRESA_RULE Subject=~ /temos uma surpresa para voc/i
score LOCAL_TEMOSSURPRESA_RULE 10.0

header LOCAL_VERIFIQUEACESSO_RULE Subject=~ /Verifique o acesso suspeito ao seu Mercado Pago/i
score LOCAL_VERIFIQUEACESSO_RULE 10.0

header LOCAL_NASUACONTADEEMAIL_RULE Subject=~ /na sua conta de e-mail/i
score LOCAL_NASUACONTADEEMAIL_RULE 10.0

header LOCAL_FIQUEESPERTO_RULE Subject=~ /Fique Esperto/i
score LOCAL_FIQUEESPERTO_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA_RULE Subject=~ /atualiza[?c][?a]o necess[?a]ria/i
score LOCAL_ATUALIZACAONECESSARIA_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA2_RULE Subject=~ /Atualiza??o necess?ria/i
score LOCAL_ATUALIZACAONECESSARIA2_RULE 10.0

header LOCAL_ENRIQUECER2021_RULE Subject=~ /Um 2021 para Enriquecer/i
score LOCAL_ENRIQUECER2021_RULE 10.0

header LOCAL_PROPOSTAMOVEL_RULE Subject=~ /Proposta Telefonia M?vel/i
score LOCAL_PROPOSTAMOVEL_RULE 10.0

header LOCAL_EXCLUSAOICMS_RULE Subject=~ /Exclus?o do ICMS da Base de C?lculo do PIS e da COFINS na Pr?tica/i
score LOCAL_EXCLUSAOICMS_RULE 10.0

header LOCAL_TEMOSSOLUCOES_RULE Subject=~ /Temos solu??es para sua empresa/i
score LOCAL_TEMOSSOLUCOES_RULE 10.0

header LOCAL_COTACAOSAUDE_RULE Subject=~ /Cota??o Sa?de, Empresarial - Reduza custos sem perder benef?cios/i
score LOCAL_COTACAOSAUDE_RULE 10.0

blacklist_from *@kupiizaradi.cjb.net
#whitelist_from fernoliv@gmail.com
root@antispam01:/tmp# vim /etc/mail/spamassassin/custom.cf

header LOCAL_TEMOSSURPRESA_RULE Subject=~ /temos uma surpresa para voc/i
score LOCAL_TEMOSSURPRESA_RULE 10.0

header LOCAL_VERIFIQUEACESSO_RULE Subject=~ /Verifique o acesso suspeito ao seu Mercado Pago/i
score LOCAL_VERIFIQUEACESSO_RULE 10.0

header LOCAL_NASUACONTADEEMAIL_RULE Subject=~ /na sua conta de e-mail/i
score LOCAL_NASUACONTADEEMAIL_RULE 10.0

header LOCAL_FIQUEESPERTO_RULE Subject=~ /Fique Esperto/i
score LOCAL_FIQUEESPERTO_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA_RULE Subject=~ /atualiza[çc][ãa]o necess[áa]ria/i
score LOCAL_ATUALIZACAONECESSARIA_RULE 10.0

header LOCAL_ATUALIZACAONECESSARIA2_RULE Subject=~ /Atualização necessária/i
score LOCAL_ATUALIZACAONECESSARIA2_RULE 10.0

header LOCAL_ENRIQUECER2021_RULE Subject=~ /Um 2021 para Enriquecer/i
score LOCAL_ENRIQUECER2021_RULE 10.0

header LOCAL_PROPOSTAMOVEL_RULE Subject=~ /Proposta Telefonia Móvel/i
score LOCAL_PROPOSTAMOVEL_RULE 10.0

header LOCAL_EXCLUSAOICMS_RULE Subject=~ /Exclusão do ICMS da Base de Cálculo do PIS e da COFINS na Prática/i
score LOCAL_EXCLUSAOICMS_RULE 10.0

header LOCAL_TEMOSSOLUCOES_RULE Subject=~ /Temos soluções para sua empresa/i
score LOCAL_TEMOSSOLUCOES_RULE 10.0

header LOCAL_COTACAOSAUDE_RULE Subject=~ /Cotação Saúde, Empresarial - Reduza custos sem perder benefícios/i
score LOCAL_COTACAOSAUDE_RULE 10.0
 
I got it. I ran “dpkg-reconfigure locales”, selected “pt_BR.UTF-8 UTF-8” and save pt_BR.UTF-8 as the default locale.

I rebooted the server after this configuration and now I’m able to write custom spamassassin rules using Brazilian Portuguese language with accents, as expected.

Thank you so much @hata_ph for your attention taking a look on that thread.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!