Procmail · 11 min read · Dec 30, 2025
6.0 Coincidencias y expresiones regulares (regexps)
Autor: Jari Aalto.
1.0 ID del documento
- 1.1 General
- 1.2 ¿Qué es Procmail?
- 1.3 Abreviaturas y agradecimientos
- 1.4 Información de la versión
- 1.5 Diseño y mantenimiento del documento
- 1.6 Sobre las recetas presentadas
- 1.7 Variables utilizadas en las recetas
- 1.8 Sobre el “premio al uso inútil de cat”
2.0 Puntos de referencia de Procmail - 2.1 ¿Dónde se desarrolla procmail?
- 2.2 Recursos de Procmail
- 2.3 Modo Procmail para Emacs
- 2.4 Proyecto de biblioteca de módulos de Procmail
- 2.5 Código de Procmail para filtrar UBE
3.0 Pruebas de ejecución en seco - 3.1 ¿Qué es una prueba en seco?
- 3.2 ¿Por qué el campo De no está bien después de la prueba en seco?
- 3.3 Obtener el valor predeterminado de una variable de procmail
4.0 Cosas a recordar - 4.1 Obtén la versión más reciente de procmail
- 4.2 La tilde de Csh no es compatible
- 4.3 Asegúrate de escribir la receta correctamente
- 4.4 Siempre establece SHELL
- 4.5 Verifica y establece PATH
- 4.6 Mantén el registro todo el tiempo
- 4.7 Nunca agregues una barra inclinada al final para directorios
- 4.8 Recuerda lo que significa el término ENTREGA
- 4.9 Ten cuidado al poner comentarios en lugares incorrectos
- 4.10 Colocación de llaves
- 4.11 Uso de archivo de bloqueo local
- 4.12 Archivo de bloqueo global
- 4.13 Vaya, ¿dónde pongo todos esos ! * $ ??
- 4.14 Si envías una respuesta automática, usa el encabezado X-loop
- 4.15 Evita una capa adicional de shell y verifica el comando para SHELLMETAS
- 4.16 Piensa en qué comandos de shell usas
- 4.17 Usando rutas absolutas al llamar a un programa de shell
- 4.18 Deshabilitando temporalmente una receta
- 4.19 Mantén una copia de seguridad del mensaje, pase lo que pase
- 4.20 Orden de las recetas de procmail
5.0 Banderas de Procmail - 5.1 El orden de las banderas
- 5.2 Banderas HB en la parte superior de la receta (advertencia)
- 5.3 Bandera w y receta con |
- 5.4 Bandera w, archivo de bloqueo y receta con |
- 5.5 Bandera f y w juntos
- 5.6 Banderas h y b
- 5.7 Bandera h y hundimiento a /dev/null
- 5.8 Bandera i y bandera de tubería f
- 5.9 Bandera r
- 5.10 Antecedentes de la bandera c
- 5.11 Bandera c antes de que el bloque anidado fork un hijo
- 5.12 Bandera c y comprensión de la posible penalización por bifurcación
- 5.13 Banderas antes del bloque anidado
- 5.14 Tutorial de banderas aAeE
6.0 Coincidencias y regexps (expresiones regulares) - 6.1 Filosofía de la abstracción en regexps
- 6.2 Las coincidencias no son sensibles a mayúsculas
- 6.3 Procmail utiliza coincidencias de múltiples líneas
- 6.4 Los encabezados se despliegan antes de la coincidencia
- 6.5 Mejorando el síndrome de espacio-tab
- 6.6 Manejo del carácter de exclamación
- 6.7 Reglas para generar una clase de caracteres
- 6.8 Coincidencia de espacio al final de la condición
- 6.9 Cuidado con la barra invertida inicial
- 6.10 Uso correcto de la macro TO
- 6.11 Motor regexp de Procmail
- 6.12 Diferencias entre Procmail y egrep
- 6.13 Comprendiendo la coincidencia mínima de procmail (tacaño vs. codicioso)
- 6.14 Explicando \/ y ()\/
- 6.15 Explicando ^^ y ^
- 6.16 ANDing tradicionalmente
- 6.17 ORing tradicionalmente
- 6.18 ORing y receta de puntuación
- 6.19 ORing utilizando las reglas de De Morgan
7.0 Variables - 7.1 Estableciendo y desestableciendo variables
- 7.2 Inicialización de variables y sintaxis sh
- 7.3 Pruebas de variables
- 7.4 ¿Qué significa $\VAR?
- 7.5 Errores comunes al usar variables
- 7.6 Citando: Usando comillas simples o dobles
- 7.7 Citando: Pasando valores a un programa externo
- 7.8 Pasando valores desde un programa externo
- 7.9 Incrementando una variable por un valor N
- 7.10 Comparando valores
- 7.11 Cadenas: ¿Cuántos caracteres hay en una cadena dada?
- 7.12 Cadenas: Cómo eliminar la nueva línea final.
- 7.13 Cadenas: derivando los últimos N caracteres de una cadena.
- 7.14 Cadenas: Obteniendo coincidencias parciales de una cadena.
- 7.15 Cadenas: Ejemplo de manipulación de cadenas de Procmail
- 7.16 Cómo elevar una bandera si el mensaje fue archivado
- 7.17 Signo de dólar en líneas de condición.
- 7.18 Encontrando la misteriosa variable foo
- 7.19 Almacenando código en una variable
- 7.20 Obteniendo encabezados en una variable.
- 7.21 Convirtiendo valor a minúsculas
8.0 Sugerencias y varios - 8.1 Acelerando procmail
- 8.2 Ver los ejemplos de instalación de procmail
- 8.3 Imprimiendo estadísticas de tu correo entrante
- 8.4 Almacenando buzones UBE fuera de la cuota
- 8.5 Usando las primeras 5-30 líneas del mensaje
- 8.6 ¿Usando cat o echo en scripts?
- 8.7 Cómo ejecutar un comando de shell adicional como efecto secundario?
- 8.8 Forzando el estado de retorno “ok” desde un script de shell
- 8.9 Haz que tu propio .procmailrc esté disponible para otros
- 8.10 Usando fechas de manera eficiente
- 8.11 Mantén un registro simple de encabezados
- 8.12 Gzipping mensajes
- 8.13 Parada de emergencia para tu .procmailrc
9.0 Puntuación - 9.1 Usando puntuaciones mediante un ejemplo
- 9.2 Breve tutorial de puntuación
- 9.3 Alcance de la puntuación
- 9.4 Contando la longitud de una cadena
- 9.5 Contando líneas en un mensaje (Agregando líneas: encabezado)
- 9.6 Determinando si el cuerpo es más largo que el encabezado
- 9.7 Coincidiendo con el último encabezado Recibido
- 9.8 Probando el rango de valores con puntuación (bogofilter)
- 9.9 Cómo agregar el encabezado Content-Length
- 9.10 Probando el tamaño del mensaje o el número de líneas
- 9.11 Contando comas con includerc recursivo
10.0 Uso de Formail - 10.1 Obteniendo campos con formail -x
- 10.2 Siempre usa el interruptor -rt de formail
- 10.3 Usando -rt y reescribiendo la dirección From
- 10.4 Formail -rt y encabezado Resent-From
- 10.5 Citando el mensaje
- 10.6 Sin citar el mensaje
- 10.7 Cómo incluir encabezados y cuerpo en el mensaje de respuesta
- 10.8 Agregando texto al principio del mensaje
- 10.9 Agregando texto al final del mensaje
- 10.10 Agregando texto antes del mensaje citado
- 10.11 Agregando encabezados adicionales desde un archivo
- 10.12 Dividiendo el resumen
- 10.13 Buzón: Dividiendo en archivos individuales
- 10.14 Buzón: Extrayendo todas las direcciones From del buzón
- 10.15 Buzón: Aplicando receta de procmail en todo el buzón
- 10.16 Buzón: ejecutando una serie de comandos para cada correo (buzón dividido)
- 10.17 Opción -D y caché
- 10.18 Opción -D y message-id en el cuerpo
- 10.19 Reducción de llamadas a formail (agregando campos condicionalmente)
- 10.20 Formail -A -a opciones
- 10.21 Formail -e -s opciones
11.0 Guardando mensajes de listas de correo - 11.1 Usando la subrutina pm-jalist.rc para detectar listas de correo
- 11.2 Usando la dirección plus [email protected]
- 11.3 Usando el truco de comentario RFC para información adicional
- 11.4 Manejo simple de listas de correo
- 11.5 Archivando según TO
- 11.6 Usando Return-Path para detectar listas de correo
12.0 Procmail, MIME y HTML - 12.1 Bibliografía de Mime
- 12.2 Notas de Mime
- 12.3 Software para tratar con mime o HTML
- 12.4 Tipo de contenido de mime application/ms-tnef
- 12.5 Capturando mensajes mime HTML
- 12.6 Quejándose de mensajes HTML
- 12.7 Convirtiendo el cuerpo HTML a texto plano
- 12.8 Deshaciéndose de archivos adjuntos mime no deseados (HTML, vcard)
- 12.9 Enviando el contenido de una página HTML en texto plano a alguien
13.0 Ejemplos de recetas simples - 13.1 Guardando: carpetas MH – mensajes numerados
- 13.2 Guardando: en carpetas mensuales
- 13.3 Modificando: conceptos básicos de filtrado
- 13.4 Modificando: comprimiendo líneas vacías alrededor del cuerpo del mensaje
- 13.5 Modificando: reorganizando encabezados siempre en el mismo orden
- 13.6 Servicio: Contestador automático para mensajes vacíos
- 13.7 Servicio: Respondedor de ping
- 13.8 Servicio: vacaciones simples con procmail
- 13.9 Servicio: ejemplo de código de vacaciones
- 13.10 Servicio: Reenvío automático
- 13.11 Servicio: reenviar solo mensajes específicos
- 13.12 Servicio: Creando resúmenes
- 13.13 Matar: eliminando encabezados y pies de publicidad
- 13.14 Matar: receta simple de archivo kill con procmail
- 13.15 Matar: mensajes duplicados
- 13.16 Matar: filtro de spam con recetas simples
- 13.17 Matar: (des)suscribir mensajes
- 13.18 Tiempo: Trabajo cron diario
- 13.19 Tiempo: Ejecutando una receta a una hora determinada
- 13.20 Tiempo: Activando correo y usando cron
- 13.21 Decodificación: Uudecode
- 13.22 Decodificación: MIME
- 13.23 Cómo enviar comandos en el cuerpo del mensaje
- 13.24 Coincidiendo dos palabras en una línea, pero no una
- 13.25 Cómo definir macros personales XX?
- 13.26 Cómo cambiar el asunto por coincidencia en el cuerpo
- 13.27 Cómo cambiar el Asunto de acuerdo con algún otro encabezado
- 13.28 Cómo llamar a un programa con parámetros 14.0 Recetas varias
- 14.1 Coincidiendo con encabezado Message-Id válido
- 14.2 Enviando dos archivos en un mensaje
- 14.3 Citando excesivamente el mensaje
- 14.4 Enviando mensajes a un pagador en partes
- 14.5 Reproduciendo un sonido particular cuando llega un mensaje
- 14.6 Combinando múltiples encabezados Original-Cc y Original-To
- 14.7 Reenviando mensajes sensibles en formato cifrado 15.0 Procmail y PGP
- 15.1 Desencriptar mensajes pgp automáticamente
- 15.2 Obtener claves del servidor de claves
- 15.3 Captura automática de claves pgp entrantes 16.0 Uso de Includerc
- 16.1 Usando: múltiples archivos rc
- 16.2 Usando: llamar a un archivo rc condicionalmente
- 16.3 Usando: autoloading de un archivo rc
- 16.4 Haciendo: nombrando el archivo rc
- 16.5 Haciendo: Usando espacio de nombres al guardar variables procmail
- 16.6 Haciendo: Variables públicas y privadas en el archivo rc
- 16.7 Las reglas generales para construir un archivo rc de propósito general
- 16.8 Un esqueleto de includerc 17.0 Servidor de listas de correo
18.0 Problemas comunes - 18.1 Modos de Procmail: normal, entrega y filtro de correo.
- 18.2 Procmail como dispositivo de filtrado de correo Mlocal de sendmail
- 18.3 Procmail no pasa caracteres de 8 bits
- 18.4 Mi ISP no está muy interesado en instalar procmail
- 18.5 Mi ISP tiene procmailrc a nivel de sistema; ¿es esto una buena idea?
- 18.6 Procmail cambia los permisos de buzón y directorio
- 18.7 Cambiando permisos de mbox durante la compilación a 660
- 18.8 El archivo .forward debe ser un archivo real
- 18.9 Usando .forward si procmail ya es LDA
- 18.10 El correo debe ser puesto en la cola de correo si falla la escritura
- 18.11 Qmail: cómo hacerlo funcionar con procmail
- 18.12 Qmail: Procmail busca archivos solo en /var/spool/mail
- 18.13 Qmail: parche a procmail 3.11pre7 para trabajar con Maildirs
- 18.14 AFS: Cómo usar Procmail cuando HOME está en la celda AFS
- 18.15 Ayuda, algún idiota envió mi dirección a 30 listas de correo
- 18.16 Ayuda, Procmail pita e imprime en mi consola
- 18.17 Ayuda, procmail vuelca correo en la consola
- 18.18 Ayuda, línea From_ corrupta en el buzón
- 18.19 Dirigiendo el correo del usuario a HOME en lugar de /var/spool/
- 18.20 Montar NFS /var/mail es una buena manera de obtener un mal rendimiento
- 18.21 No puedo ver la respuesta de sendmail en LOGFILE
- 18.22 Compilando procmail y eligiendo esquema de bloqueo
- 18.23 Reenviar mucho correo causa una carga pesada
- 18.24 ¿Qué pasa con el correo si falla el MDA Procmail?
- 18.25 Procmail lee todo el mensaje de 90Mb en memoria
- 18.26 Ayuda, procmail usa ocasionalmente un gran trozo de memoria
- 18.27 Procmail señalizado fuera de memoria en mi registro detallado
- 18.28 Variables DEFAULT y ORGMAIL
- 18.29 Cuando DEFAULT no puede ser enviado
- 18.30 Variable DROPPRIVS
- 18.31 Variable HOME
- 18.32 Variable HOST
- 18.33 Variable LINEBUF
- 18.34 Variable LOG y LOGFILE
- 18.35 Variable TRAP
- 18.36 Variable UMASK
- 18.37 UMASK y permisos
- 18.38 Diferencia de rendimiento entre el backtick y la receta “|”
- 18.39 Nombres de archivos temporales de Procmail al escribir archivos
- 18.40 Parámetro $@
- 18.41 Las variables de Procmail están terminadas en nulo (detectando cadena nula)
- 18.42 FROMDAEMON TO y TO y sensibilidad a mayúsculas
- 18.43 Macro TO_ descifrada
- 18.44 Macro TO_ y RFC 822
- 18.45 FROM_DAEMON descifrado 19.0 Asuntos técnicos
- 19.1 Lista de códigos de salida
- 19.2 Lista de códigos de precedencia
- 19.3 Sendmail y -t
- 19.4 RFC822 Reply-To y problema de formail con múltiples destinatarios
- 19.5 Procmail y servidor IMAP
- 19.6 Máquina que procesa correo
- 19.7 Compilando procmail y MAILSPOOLHOME 20.0 Software Procmail para Emacs
- 20.1 ¿Qué es Emacs?
- 20.2 Modo procmail de Emacs y verificación de código Procmail (Lint)
- 20.3 ¿Por qué usar procmail con Gnus?
- 20.4 Configurando Gnus para procmail - Conceptos básicos
- 20.5 Gnus para procmail - Más sobre ello
- 20.6 Emacs y Gnus - Manipulando archivos de spool
- 20.7 Fragmentos de artículos de Gnus 21.0 RFC, Solicitud de comentarios
- 21.1 RFC y su jurisdicción (Direcciones modificadas)
- 21.2 Comentarios sobre direcciones modificadas
- 21.3 RFC y caracteres de dirección de correo válidos
- 21.4 RFC y login-name@fdqn
- 21.5 RFCs y firmas de mensajes
- 21.6 RFC y uso de MIME en grupos de noticias de Usenet
- 21.7 Algunos apuntadores de RFC 22.0 Introducción a los encabezados de correo electrónico
- 22.1 Para saber más sobre correo (Recursos)
- 22.2 Conferencia de Alan Stebbens
- 22.3 Encabezados de mensajes
- 23.1 ¿Cuál es la sintaxis correcta de la dirección From?
- 23.2 ¿Qué es ese encabezado X-UIDL?
- 23.3 ¿Qué es ese primer encabezado From_?
- 23.4 Encabezado Message-Id
- 23.5 Encabezado Recibido
- 23.6 Return-Path
- 23.7 Errors-To
- 23.8 X-Subscription-Info
- 23.9 Encabezado Reply-To
- 23.10 Encabezado Mail-Copies-To
- 23.11 Encabezado Mail-Followup-To y Reply-To-Personal
- 23.12 Encabezado Content-Length y especificación From_
- 23.13 Moral sobre las copias CC en Usenet
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.