Cómo configurar sendmail para retransmitir a través de un servidor específico

11

Tengo una pequeña configuración de servidor doméstico detrás de mi módem de cable (comunicaciones bresnan). Quiero poder enviar esta casilla de correo electrónico (no recibir) para recibir notificaciones y otras cosas.

Lo que ya hice:

  • He instalado y configurado sendmail.
  • He agregado mail.bresnan.netcomo mi SMART_HOSTdirectiva.

Lo que creo que el problema es

Cuando intento enviar un correo electrónico, aparece lo siguiente en mi registro de correo:

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<[email protected]>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<[email protected]>, 
  size=397, class=0, nrcpts=1,
  msgid=<[email protected]>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<[email protected]>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<[email protected]>, ctladdr=<[email protected]>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

Puede ver dónde mi servidor de sendmail acepta el envío del mensaje, luego dónde intenta pasarlo al servidor de bresnan y se agota el tiempo de espera.

Aquí es donde está mi pregunta. Los lectores astutos notarán que pmx0.bresnan.netno es lo que tengo SMART_HOSTestablecido como mi directiva. Este es el MXservidor (¿externo?) Para el dominio bresnan.com/net. Aparentemente, bresnan tiene su red configurada para que no pueda acceder a este servidor desde su propia red y en su lugar debe usar el mail.bresnan.netservidor (al que me puedo conectar). El problema es que no sé cómo decirle a sendmail que use este servidor y no el dominio .

Lo que he intentado

  • Establecer una entrada de hosts para que el servidor pmx0 apunte a la dirección IP del correo. Esto no funciona, lo que tiene sentido ya que obviamente sendmail está haciendo una consulta MX para encontrar el servidor que devuelve la IP, por lo que nunca es necesario hacer una resolución DNS 'normal' para que el archivo de hosts nunca se involucre.

La solución (para todo el correo saliente):

Nuevamente, los accesorios van a webmin (vea la nota a continuación) por ayudarme a aprender esto. Si ingresa su smarthost entre corchetes que le indica a sendmail que no realice una búsqueda MX, entonces: define('SMART_HOST','[69.145.248.18]')(Repare las comillas-> comillas invertidas) realmente funciona sin una tabla de correo.

La solución (para dominios específicos):

Como se señala a continuación, mailertablese requiere configurar a . Sin embargo, como se señala en la página del manual , esta función también debe habilitarse en su sendmail.mcarchivo.

También tenga en cuenta que la ruta de correo no obliga a sendmail a utilizar el servidor especificado para todas las operaciones, sino que se basa en la dirección del destinatario. En realidad, esto está bien para mí, ya que solo necesito enviar a algunos dominios (gmail, google alojado y mi trabajo).

Resumen :

  • Añadir FEATURE('mailertable')a su sendmail.mcarchivo. (tenga en cuenta que la primera cita debe ser un punto de retroceso.
  • Cree su /etc/mail/mailertablearchivo (vea la página del manual )
  • Crear un archivo de mapa: sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Reconstruye tus configuraciones make -C /etc/mail
  • Reinicie sendmail: service sendmail restart

NOTA: Yo altamente recomiendo usar WebMin a editar / reconstruir estos archivos. Sin él, me habría vuelto loco tratando de descubrir por qué mi archivo mailertable estaba siendo ignorado.

ErebusBat
fuente
¿Podemos ver su sendmail.mc?
Larsks
Cuando realizó cambios en el archivo de configuración sendmail.mc, ¿reinició sendmail después de cada cambio?
ewwhite

Respuestas:

7

Puede evitar la búsqueda de MX agregando una entrada breve en su /etc/mail/mailertablearchivo sendmail .

El contenido del archivo probablemente debería tener una sola línea como:

bresnan.net       esmtp:[69.145.248.18]

Guarde el archivo y reinicie sendmail (o reconstruya su sendmail.cf si debe hacerse manualmente).

ewwhite
fuente
2
Tu respuesta fue correcta; Sin embargo, tuve que tomar algunos pasos adicionales. Para otros que encuentran este problema, vea mi edición anterior.
ErebusBat