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.

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).


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

0

*.mydomain.com no funciona

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.