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.net
como miSMART_HOST
directiva.
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=<201012221724.oBMHOHrs001530@bresnan.net>,
relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<aburns@bresnan.net>,
size=397, class=0, nrcpts=1,
msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
to=<my@work-address.com>, 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=<my@work-address.com>, ctladdr=<aburns@bresnan.net>
(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.net
no es lo que tengo SMART_HOST
establecido como mi directiva. Este es el MX
servidor (¿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.net
servidor (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, mailertable
se 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.mc
archivo.
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 susendmail.mc
archivo. (tenga en cuenta que la primera cita debe ser un punto de retroceso. - Cree su
/etc/mail/mailertable
archivo (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.