AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1098742
Accepted
user227963
user227963
Asked: 2022-04-16 22:15:03 +0800 CST2022-04-16 22:15:03 +0800 CST 2022-04-16 22:15:03 +0800 CST

procmail reescreve a linha de assunto se o usuário do destinatário do email falhar no teste de correspondência

  • 772

Eu tenho um usuário local do procmail "bob".

Se um e-mail chegar e corresponder a [email protected], nenhuma ação deverá ser tomada.

No entanto, se um e-mail chegar e for [qualquer outra coisa]@domínio.com, gostaria de reescrever a linha de assunto para inserir "[spam]" na frente da linha de assunto.

Portanto, é uma correspondência reversa em "bob@" (correspondência em qualquer coisa que não seja bob@) e preservamos a linha de assunto original, apenas acrescentando "[spam]" à frente dela.

Como posso fazer isso com o Procmail?

email spam procmail
  • 1 1 respostas
  • 52 Views

1 respostas

  • Voted
  1. Best Answer
    tripleee
    2022-04-16T23:47:50+08:002022-04-16T23:47:50+08:00

    Seus requisitos são bastante obscuros. O procmail pode corresponder em qualquer string, mas você realmente quer procurar a string em qualquer lugar da mensagem? E você realmente quer ignorar as mensagens sem domain.comelas para o propósito desta regra?

    :0 HB
    * ! ()\<bob@domain\.com\>
    * @domain\.com\>
    {
        :0fhw
        * ^Subject:\/.+
        | formail -I"Subject: [spam]$MATCH"
    }
    

    Os limites de palavra \<e \>impedem a correspondência em substrings como tombobou subdomain.complete.org, e os parênteses vazios são um hack porque o Procmail é estranho sobre regexes que começam com uma barra invertida.

    Se você quer dizer que quer olhar apenas nos cabeçalhos, solte o HBda primeira linha de dois pontos (você pode deixar o Hmas esse é o padrão se você não colocar nenhum sinalizador). Se você quiser corresponder a um cabeçalho específico, soletre-o. Se você deseja examinar o destinatário especificamente, a ^TO_macro permite que você faça isso em vários cabeçalhos diferentes ( To:, Cc:, etc) facilmente.

    :0fhw
    * ! ^TO_bob@domain\.com\>
    * ^TO_[^<>@ ]+@domain\.com\>
    * ^Subject:\/.+
    | formail -I"Subject: [spam]$MATCH"
    

    Como deixamos de lado as HBbandeiras, podemos combinar o que antes eram duas receitas com bandeiras diferentes. O segundo ^TO_verifica qualquer endereço, incluindo bob, que, no entanto, já foi excluído pela condição negada anterior.

    Isso ainda tem alguns casos de canto que podem precisar ser mais explorados; se você puder editar sua pergunta para esclarecê-la, talvez eu possa atualizar isso para cobrir mais do que o básico.

    O SMTP não exige que o destinatário seja especificado nos cabeçalhos, no entanto. O caso clássico é Bcc:que também é essencialmente o mecanismo usado por muitas listas de discussão. Talvez o seu MTA explique o destinatário, Delivered-To:mas, falando corretamente, esse tipo de filtro é melhor implementado no MTA.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve