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

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

Tengo un pequeño servidor doméstico configurado detrás de mi módem por cable (comunicaciones Bresnan). Quiero que este cuadro pueda enviar correos electrónicos (no recibir) notificaciones y todo eso.

Lo que ya he hecho:

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

Lo que creo que es el problema

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 mensaje para su entrega, 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 eso pmx0.bresnan.netno es lo que tengo SMART_HOSTconfigurada en mi directiva. Este es el servidor (¿externo?) MXpara 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 puedo conectarme). El problema es que no sé cómo decirle a sendmail que use esto.servidory no eldominio.

lo que he probado

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

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

Nuevamente, los accesorios van para webmin (ver nota a continuación) por ayudarme a aprender esto. Si ingresa su host inteligente con corchetes, le indica a sendmail que no realice una búsqueda MX, entonces: define('SMART_HOST','[69.145.248.18]')(Corregir las comillas->comillas invertidas) en realidad funciona sin una tabla de correo.

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

Como se indica a continuación, es necesario configurar un mailertable. Sin embargo, como se señala en elpágina de manual, esta función también debe estar habilitada en su sendmail.mcarchivo.

También tenga en cuenta que la ruta del 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 unos pocos dominios (gmail, alojamiento de Google y mi trabajo).

Resumen:

  • Agregue FEATURE('mailertable')a su sendmail.mcarchivo. (tenga en cuenta que la primera comilla debe ser una comilla invertida.
  • Crea tu /etc/mail/mailertablearchivo (Verpágina de manual)
  • Crea un archivo de mapa:sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Reconstruye tus configuracionesmake -C /etc/mail
  • Reiniciar envío de correo:service sendmail restart

NOTA:IaltamenteRecomendamos usar WebMin para editar/reconstruir estos archivos. Sin él, me habría vuelto loco tratando de descubrir por qué se ignoraba mi archivo de correo.

Respuesta1

Puede evitar la búsqueda de MX agregando una entrada breve en su /etc/mail/mailertablearchivo de 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 hacerlo manualmente).

información relacionada