Hospedar subdominios comodín utilizando postfix

9

Estoy tratando de averiguar cómo puedo obtener postfix para aceptar correos electrónicos para cualquier subdominio de mi sitio principal. No tengo dominios virtuales, solo una larga lista de subdominios para entrega local. En concreto, estoy alimentando python@*.mydomain.comun Python usando el archivo de alias:

python:    |/www/proc_email.py

Python puede manejar la entrega desde allí. Imagino que esto se ve algo así como:

mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com

Estoy ejecutando la última versión de postfix en Ubuntu (no estoy seguro de cómo verificar la versión).

Gracias por adelantado.

Jack M.
fuente

Respuestas:

19

No puede usar comodines si enumera explícitamente los destinos en su configuración de Postfix, pero afortunadamente la $mydestinationopción acepta búsquedas de tablas. Así que intenta configurar $mydestinationun mapa pcre como este:

mydestination = pcre:/etc/postfix/mydestinations

Luego cree /etc/postfix/mydestinationscon expresiones regulares correctamente ancladas y escapadas:

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.example$/     ACCEPT

Técnicamente, podría poner cualquier cosa en lugar de "ACEPTAR" ya que el resultado se ignora; solo la presencia del partido es suficiente :

Especifique una lista de nombres de host o dominio, "/ archivo / nombre" o "tipo: tabla", separados por comas y / o espacios en blanco. Un patrón "/ archivo / nombre" se reemplaza por su contenido; una tabla de búsqueda "type: table" se corresponde cuando un nombre coincide con una clave de búsqueda (se ignora el resultado de la búsqueda).

Insyte
fuente
2
Las expresiones regulares deben ser ancladas; ver serverfault.com/a/352928/84843
Richard Hansen el
19

La solución pcre en la respuesta aceptada funciona bien, pero es posible que desee considerar el anclaje de la expresión regular para evitar que se produzcan aciertos en solo una parte del nombre de dominio.

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.com$/         ACCEPT
gldr
fuente
0

*.mydomain.com no funciona

Necesita crear relay-domainsy poner todos sus subdominios allí. 1 por línea

solefald
fuente