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:
Instalaste Sendmail para poder usarlo para enviar correos electrónicos desde tu sitio web.
Configuró Sendmail para que sea el servidor de correo electrónico autorizado para su espacio de nombres DNS público.
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-names
el 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) mailertable
esNOconsultade para entregas a dominios listados en $=w
.