Procmail · 11 min read · Dec 30, 2025

6.0 Correspondência e regexps (expressões regulares)

Autor: Jari Aalto.

1.0 ID do documento

  • 1.1 Geral
  • 1.2 O que é Procmail?
  • 1.3 Abreviações e agradecimentos
  • 1.4 Informações sobre a versão
  • 1.5 Layout e manutenção do documento
  • 1.6 Sobre as receitas apresentadas
  • 1.7 Variáveis usadas nas receitas
  • 1.8 Sobre o “prêmio de uso inútil do cat” 2.0 Pontos de referência do Procmail
  • 2.1 Onde o procmail é desenvolvido
  • 2.2 Recursos do Procmail
  • 2.3 Modo Procmail para Emacs
  • 2.4 Projeto da biblioteca de módulos do Procmail
  • 2.5 Código do Procmail para filtrar UBE 3.0 Teste de execução seca
  • 3.1 O que é teste de execução seca?
  • 3.2 Por que o campo From não está correto após a execução seca?
  • 3.3 Obtendo o valor padrão de uma variável do procmail 4.0 Coisas para lembrar
  • 4.1 Obtenha o procmail mais recente
  • 4.2 O til do Csh não é suportado
  • 4.3 Certifique-se de escrever a receita corretamente
  • 4.4 Sempre defina SHELL
  • 4.5 Verifique e defina PATH
  • 4.6 Mantenha o log sempre ativo
  • 4.7 Nunca adicione uma barra final para diretórios
  • 4.8 Lembre-se do que o termo ENTREGUE significa
  • 4.9 Cuidado ao colocar comentários em lugares errados
  • 4.10 Colocação de chaves
  • 4.11 Uso de arquivo de bloqueio local
  • 4.12 Arquivo de bloqueio global
  • 4.13 Gee, onde coloco todos esses ! * $ ??
  • 4.14 Se você enviar uma resposta automática, use o cabeçalho X-loop
  • 4.15 Evite camada extra de shell e verifique o comando para SHELLMETAS
  • 4.16 Pense nos comandos de shell que você usa
  • 4.17 Usando caminhos absolutos ao chamar um programa de shell
  • 4.18 Desabilitando uma receita temporariamente
  • 4.19 Mantenha o backup da mensagem, não importa o que
  • 4.20 Ordem das receitas do procmail 5.0 Sinais do Procmail
  • 5.1 A ordem dos sinais
  • 5.2 Sinais HB no topo da receita (aviso)
  • 5.3 Sinal w e receita com |
  • 5.4 Sinal w, arquivo de bloqueio e receita com |
  • 5.5 Sinal f e w juntos
  • 5.6 Sinais h e b
  • 5.7 Sinal h e afundando em /dev/null
  • 5.8 Sinal i e sinal de tubo f
  • 5.9 Sinal r
  • 5.10 Contexto do sinal c
  • 5.11 Sinal c antes do bloco aninhado cria um filho
  • 5.12 Sinal c e compreensão da possível penalidade de fork
  • 5.13 Sinais antes do bloco aninhado
  • 5.14 Tutorial de sinais aAeE 6.0 Correspondência e regexps (expressões regulares)
  • 6.1 Filosofia da abstração em regexps
  • 6.2 Correspondências não são sensíveis a maiúsculas
  • 6.3 Procmail usa correspondências de várias linhas
  • 6.4 Cabeçalhos são desdobrados antes da correspondência
  • 6.5 Melhorando a síndrome Espaço-Tab
  • 6.6 Tratamento do caractere de exclamação
  • 6.7 Regras para gerar uma classe de caracteres
  • 6.8 Correspondendo espaço no final da condição
  • 6.9 Cuidado com a barra invertida inicial
  • 6.10 Uso correto do Macro TO
  • 6.11 Motor regexp do Procmail
  • 6.12 Diferenças entre Procmail e egrep
  • 6.13 Compreendendo a correspondência mínima do procmail (mesquinho vs. ganancioso)
  • 6.14 Explicando \/ e ()\/
  • 6.15 Explicando ^^ e ^
  • 6.16 ANDing tradicionalmente
  • 6.17 ORing tradicionalmente
  • 6.18 ORing e receita de pontuação
  • 6.19 ORing usando regras de De Morgan 7.0 Variáveis
  • 7.1 Definindo e desdefinindo variáveis
  • 7.2 Inicialização de variáveis e sintaxe sh
  • 7.3 Testando variáveis
  • 7.4 O que significa $\VAR?
  • 7.5 Armadilhas comuns ao usar variáveis
  • 7.6 Citação: Usando aspas simples ou duplas
  • 7.7 Citação: Passando valores para um programa externo
  • 7.8 Passando valores de um programa externo
  • 7.9 Incrementando uma variável por um valor N
  • 7.10 Comparando valores
  • 7.11 Strings: Quantos caracteres existem em uma determinada string?
  • 7.12 Strings: Como remover a nova linha final.
  • 7.13 Strings: derivando os últimos N caracteres de uma string.
  • 7.14 Strings: Obtendo correspondências parciais de uma string.
  • 7.15 Strings: Exemplo de manipulação de string do Procmail
  • 7.16 Como levantar uma bandeira se a mensagem foi arquivada
  • 7.17 Sinal de dólar em linhas de condição.
  • 7.18 Encontrando a misteriosa variável foo
  • 7.19 Armazenando código em variável
  • 7.20 Obtendo cabeçalhos em uma variável.
  • 7.21 Convertendo valor para minúsculas 8.0 Sugestões e várias
  • 8.1 Acelerando o procmail
  • 8.2 Veja os exemplos da instalação do procmail
  • 8.3 Imprimindo estatísticas do seu e-mail recebido
  • 8.4 Armazenando caixas de correio UBE fora da cota
  • 8.5 Usando as primeiras 5-30 linhas da mensagem
  • 8.6 Usando cat ou echo em scripts?
  • 8.7 Como executar um comando extra de shell como efeito colateral?
  • 8.8 Forçando status de retorno “ok” de script de shell
  • 8.9 Torne seu próprio .procmailrc disponível para outros
  • 8.10 Usando datas de forma eficiente
  • 8.11 Mantenha um log de cabeçalho simples
  • 8.12 Compactando mensagens
  • 8.13 Parada de emergência para seu .procmailrc 9.0 Pontuação
  • 9.1 Usando pontuações por um exemplo
  • 9.2 Tutorial breve de pontuação
  • 9.3 Escopo da pontuação
  • 9.4 Contando o comprimento de uma string
  • 9.5 Contando linhas em uma mensagem (Adicionando Linhas: cabeçalho)
  • 9.6 Determinando se o corpo é mais longo que o cabeçalho
  • 9.7 Correspondendo o último cabeçalho Recebido
  • 9.8 Testando intervalo de valores com pontuação (bogofilter)
  • 9.9 Como adicionar cabeçalho Content-Length
  • 9.10 Testando o tamanho da mensagem ou número de linhas
  • 9.11 Contando vírgulas com includerc recursivo 10.0 Uso do Formail
  • 10.1 Buscando campos com formail -x
  • 10.2 Sempre use a opção -rt do formail
  • 10.3 Usando -rt e reescrevendo o endereço From
  • 10.4 Formail -rt e cabeçalho Resent-From
  • 10.5 Citando a mensagem
  • 10.6 Sem citar a mensagem
  • 10.7 Como incluir cabeçalhos e corpo na mensagem de resposta
  • 10.8 Adicionando texto ao início da mensagem
  • 10.9 Adicionando texto ao final da mensagem
  • 10.10 Adicionando texto antes da mensagem citada
  • 10.11 Adicionando cabeçalhos extras de arquivo
  • 10.12 Dividindo digest
  • 10.13 Caixa de correio: Dividindo em arquivos individuais
  • 10.14 Caixa de correio: Extraindo todos os endereços From da caixa de correio
  • 10.15 Caixa de correio: Aplicando receita do procmail em toda a caixa de correio
  • 10.16 Caixa de correio: executar uma série de comandos para cada e-mail (dividir caixa de correio)
  • 10.17 Opção -D e cache
  • 10.18 Opção -D e message-id no corpo
  • 10.19 Reduzindo chamadas do formail (adicionando campos condicionalmente)
  • 10.20 Formail -A -a opções
  • 10.21 Formail -e -s opções 11.0 Salvando mensagens de listas de discussão
  • 11.1 Usando sub-rotina pm-jalist.rc para detectar listas de discussão
  • 11.2 Usando endereçamento plus [email protected]
  • 11.3 Usando truque de comentário RFC para informações adicionais
  • 11.4 Manipulação simples de listas de discussão
  • 11.5 Arquivando de acordo com TO
  • 11.6 Usando Return-Path para detectar listas de discussão 12.0 Procmail, MIME e HTML
  • 12.1 Bibliografia Mime
  • 12.2 Notas Mime
  • 12.3 Software para lidar com mime ou HTML
  • 12.4 Tipo de conteúdo mime application/ms-tnef
  • 12.5 Capturando mensagens mime HTML
  • 12.6 Reclamações sobre mensagens HTML
  • 12.7 Convertendo corpo HTML para texto simples
  • 12.8 Livrando-se de anexos mime indesejados (HTML, vcard)
  • 12.9 Enviando conteúdos de uma página HTML em texto simples para alguém 13.0 Exemplos de receitas simples
  • 13.1 Salvando: pastas MH – mensagens numeradas
  • 13.2 Salvando: para pastas mensais
  • 13.3 Modificando: Noções básicas de filtragem
  • 13.4 Modificando: Espremendo linhas vazias ao redor do corpo da mensagem
  • 13.5 Modificando: embaralhando cabeçalhos sempre na mesma ordem
  • 13.6 Serviço: Auto respondedor para mensagens vazias
  • 13.7 Serviço: Respondedor de ping
  • 13.8 Serviço: férias simples com procmail
  • 13.9 Serviço: exemplo de código de férias
  • 13.10 Serviço: Auto-encaminhamento
  • 13.11 Serviço: encaminhar apenas mensagens específicas
  • 13.12 Serviço: Fazendo digests
  • 13.13 Matar: matando cabeçalhos e rodapés de anúncios
  • 13.14 Matar: receita simples de kill file com procmail
  • 13.15 Matar: mensagens duplicadas
  • 13.16 Matar: filtro de spam com receitas simples
  • 13.17 Matar: (des)inscrever mensagens
  • 13.18 Tempo: Trabalho cron-like uma vez por dia
  • 13.19 Tempo: Executando uma receita em um horário específico
  • 13.20 Tempo: Acionando e-mail e usando cron
  • 13.21 Decodificando: Uudecode
  • 13.22 Decodificando: MIME
  • 13.23 Como enviar comandos no corpo da mensagem
  • 13.24 Correspondendo duas palavras em uma linha, mas não uma
  • 13.25 Como definir macros pessoais XX?
  • 13.26 Como mudar o assunto por correspondência no corpo
  • 13.27 Como mudar o assunto de acordo com algum outro cabeçalho
  • 13.28 Como chamar programa com parâmetros 14.0 Receitas diversas
  • 14.1 Correspondendo cabeçalho Message-Id válido
  • 14.2 Enviando dois arquivos em uma mensagem
  • 14.3 Citação excessiva da mensagem
  • 14.4 Enviando mensagem para pager em partes
  • 14.5 Tocando som particular quando a mensagem chega
  • 14.6 Combinando múltiplos cabeçalhos Original-Cc e Original-To
  • 14.7 Encaminhando mensagens sensíveis em formato criptografado 15.0 Procmail e PGP
  • 15.1 Descriptografar mensagens pgp automaticamente
  • 15.2 Obter chaves do servidor de chaves
  • 15.3 Captura automática de chaves pgp recebidas 16.0 Uso do Includerc
  • 16.1 Usando: múltiplos arquivos rc
  • 16.2 Usando: chamar arquivo rc condicionalmente
  • 16.3 Usando: carregamento automático de um arquivo rc
  • 16.4 Fazendo: nomeação do arquivo rc
  • 16.5 Fazendo: Usando espaço de nomes ao salvar variáveis procmail
  • 16.6 Fazendo: Variáveis públicas e privadas em arquivo rc
  • 16.7 As regras práticas para construir arquivos rc de uso geral
  • 16.8 Um esqueleto de includerc 17.0 Servidor de lista de discussão 18.0 Problemas comuns
  • 18.1 Modos do Procmail: normal, entrega e filtro de e-mail.
  • 18.2 Procmail como dispositivo de filtragem Mlocal do sendmail
  • 18.3 Procmail não passa caracteres de 8 bits
  • 18.4 Meu ISP não está muito interessado em instalar procmail
  • 18.5 Meu ISP tem procmailrc em todo o sistema; isso é uma boa ideia?
  • 18.6 Procmail altera permissões de caixa de correio e diretório
  • 18.7 Mudando a permissão do mbox durante a compilação para 660
  • 18.8 O arquivo .forward deve ser um arquivo real
  • 18.9 Usando .forward se o procmail já é LDA
  • 18.10 O e-mail deve ser colocado na fila de e-mail se a gravação falhar
  • 18.11 Qmail: como fazê-lo funcionar com procmail
  • 18.12 Qmail: Procmail olha o arquivo apenas de /var/spool/mail
  • 18.13 Qmail: patch para procmail 3.11pre7 para funcionar com Maildirs
  • 18.14 AFS: Como usar Procmail quando HOME está em célula AFS
  • 18.15 Ajuda, algum idiota enviou meu endereço para 30 listas de discussão
  • 18.16 Ajuda, Procmail apita e imprime no meu console
  • 18.17 Ajuda, procmail despeja e-mail no console
  • 18.18 Ajuda, linha From_ corrompida na caixa de correio
  • 18.19 Direcionando o e-mail do usuário para HOME em vez de /var/spool/
  • 18.20 Montar NFS /var/mail é uma boa maneira de obter um desempenho ruim
  • 18.21 Não consigo ver a resposta do sendmail no LOGFILE
  • 18.22 Compilando procmail e escolhendo esquema de bloqueio
  • 18.23 Encaminhar muitos e-mails causa carga pesada
  • 18.24 O que acontece com o e-mail se o MDA Procmail falhar
  • 18.25 Procmail lê toda a mensagem de 90Mb na memória
  • 18.26 Ajuda, procmail usa ocasionalmente um enorme pedaço de memória
  • 18.27 Procmail sinalizou falta de memória no meu log detalhado
  • 18.28 Variáveis DEFAULT e ORGMAIL
  • 18.29 Quando o DEFAULT não pode ser enviado
  • 18.30 Variável DROPPRIVS
  • 18.31 Variável HOME
  • 18.32 Variável HOST
  • 18.33 Variável LINEBUF
  • 18.34 Variável LOG e LOGFILE
  • 18.35 Variável TRAP
  • 18.36 Variável UMASK
  • 18.37 UMASK e permissões
  • 18.38 Diferença de desempenho entre backtick e receita “|”
  • 18.39 Nomes de arquivos temporários do Procmail ao escrever arquivo
  • 18.40 Parâmetro $@
  • 18.41 Variáveis do Procmail são terminadas em nulo (detectando string nula)
  • 18.42 FROMDAEMON TO e TO e sensibilidade a maiúsculas
  • 18.43 Macro TO decifrada
  • 18.44 Macro TO_ e RFC 822
  • 18.45 FROM_DAEMON decifrado 19.0 Questões técnicas
  • 19.1 Lista de códigos de saída
  • 19.2 Lista de códigos de precedência
  • 19.3 Sendmail e -t
  • 19.4 RFC822 Reply-To e problema do formail com múltiplos destinatários
  • 19.5 Procmail e servidor IMAP
  • 19.6 Máquina que processa e-mail
  • 19.7 Compilando procmail e MAILSPOOLHOME 20.0 Software Procmail para Emacs
  • 20.1 O que é Emacs
  • 20.2 Modo procmail do Emacs e verificação de código Procmail (Lint)
  • 20.3 Por que usar procmail com Gnus
  • 20.4 Configurando Gnus para procmail - Noções básicas
  • 20.5 Gnus para procmail - Mais sobre isso
  • 20.6 Emacs e Gnus – Brincando com arquivos spool
  • 20.7 Trechos de artigos do Gnus 21.0 RFC, Pedido de comentários
  • 21.1 RFCs e sua jurisdição (endereços alterados)
  • 21.2 Comentários sobre endereços alterados
  • 21.3 RFC e caracteres de endereço de e-mail válidos
  • 21.4 RFC e login-name@fdqn
  • 21.5 RFCs e assinatura de mensagens
  • 21.6 RFC e uso de MIME em grupos de notícias Usenet
  • 21.7 Alguns apontadores RFC 22.0 Introdução aos Cabeçalhos de E-mail
  • 22.1 Para saber mais sobre e-mail (Recursos)
  • 22.2 Palestra de Alan Stebbens
  • 22.3 Aplicado a mensagens recebidas
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.