¿Cómo configuro sendmail para enviar correo a través del registro MX y no a localhost?

¿Cómo configuro sendmail para enviar correo a través del registro MX y no a localhost?

Estoy intentando que sendmail transfiera correos a los servidores especificados en los registros MX para que cuando el servidor envíe un correo electrónico a[correo electrónico protegido]Quiero que se salte localhost e vaya directamente a Gmail.

Revisé los documentos de sendmail, pero no entiendo muy bien cómo explicar mi situación. Básicamente, el nombre de host de mi servidor es 'www.dominio.com' pero cuando envío un correo electrónico a '[correo electrónico protegido]' termina en el carrete de correo local.

Cuando ejecuto sendmail en modo de depuración:

sendmail -bt
> $=w

Yo obtengo:

www.domain.com
www.domain.com.
domain.com
localhost
[54.245.___.___] 

Por lo tanto, intercepta todo el correo saliente a domain.com. No quiero que llegue a localhost. Quiero que vaya a los servidores de Gmail.

Todo el correo destinado a otras direcciones funciona bien. También tengo sendmail configurado para usar DKIM.

Agregué un registro a mailertable (y reconstruí mailertable.db y recopilé el archivo mc>cf), pero no estoy seguro de si eso es lo que necesito hacer o si lo estoy haciendo correctamente.

domain.com esmtp:[aspmx.l.google.com]

¿Cómo consigo que permita el envío de correo?[correo electrónico protegido]salir del servidor?

INFORMACIÓN ADICIONAL: Aquí está mi archivo sendmail.mc:

divert(-1)dnl

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl

define(`confDEF_USER_ID', ``8:12'')dnl

define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl

define(`confTO_IDENT', `0')dnl

FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl

FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`relay_based_on_MX')dnl
FEATURE(`relay_entire_domain')dnl

LOCAL_DOMAIN(`localhost.localdomain')dnl

MASQUERADE_AS(`domain.com')dnl
MASQUERADE_DOMAIN(`localhost.localdomain')dnl

EXPOSED_USER(`root')dnl

FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl

INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')

MAILER(smtp)dnl
MAILER(procmail)dnl

Respuesta1

Finalmente encontré una solución bastante completa.aquí. Para resumir, hay varias opciones (la mayoría de las cuales se han mencionado en otras respuestas, pero por alguna razón no funcionaron en mi escenario particular).

Opción 1:eliminar la entrada de /etc/mail/local-host-names

para mi este archivo ya estaba vacío

Opcion 2:eliminar cualquier entrada LOCAL_DOMAIN en el archivo mc

no tuve ninguno

Opción 3:decirle a sendmail que no sondee las interfaces

define(`confDONT_PROBE_INTERFACES', `true')dnl

en mi caso esto estaba configurado, pero el host problemático todavía estaba presente en la clase w de sendmail

Opción 4:cambiar el nombre del servidor. el enlace externo proporcionado arriba incluso dice específicamente: "Si quiero eliminar Whipple.org de la clase w, podría cambiar el nombre del servidor a frodo.whipple.org, www.whipple.org, elvis.whipple.org, por ejemplo".

Para mí esto no fue suficiente. con el anfitrión nombradowww.dominio.com, la clase w de sendmails todavía contenía AMBOS www.dominio.com Y dominio.com (incluso después de reiniciar)

Opción 5: ESTO ES LO QUE FUNCIONÓ PARA MÍagregue un LOCAL_RULE_0 al archivo mc de sendmail

LOCAL_RULESETS
LOCAL_RULE_0
R$* < @domain.com. > $*  <tab>$#esmtp $@ mail.domain.com $: $1<@domain.com.>$2

esto debe ir al final del archivo y <tab>debe ser un carácter de tabulación real

Respuesta2

Cambie el nombre de host del servidor. No existe ninguna razón válida para que un nombre de host sea igual a un nombre de dominio simple.

Respuesta3

Aquí está mi comprensión de su pregunta:

  1. Instalaste Sendmail para poder usarlo para enviar correos electrónicos desde tu sitio web.

  2. Configuró Sendmail para que sea el servidor de correo electrónico autorizado para su espacio de nombres DNS público.

  3. No desea que Sendmail tenga autoridad para su espacio de nombres DNS público. Quiere que el correo electrónico enviado a su espacio de nombres DNS público se envíe a su correo electrónico alojado en Google.

Solución: reconfigure Sendmail para que no tenga autoridad para su espacio de nombres DNS público.

Respuesta4

1) Sendmail llena automáticamente la lista de dominios de correo electrónico locales ( $=w).

No puedes desactivarlo usando la siguiente línea en tu sendmail.mc:

define(`confDONT_PROBE_INTERFACES',`True')

Puede agregar correos electrónicos locales "manualmente" en /etc/mail/local-host-namesel archivo.
(Requiere HUPing o reiniciar el demonio de sendmail después)

2) Sendmail puede agregar (configurado automáticamente) "este nombre de correo electrónico del host" ( $j) a la lista de dominios de correo electrónico locales.

Puede definir "este nombre de correo electrónico del host"

define(`confDOMAIN_NAME',`hostname.example.net')

3) mailertableesNOconsultade para entregas a dominios listados en $=w.

información relacionada