Estoy usando Sendmail en un servidor Centos para enviar correos electrónicos para scripts PHP, pero el problema es que el correo se entrega a un buzón local en la máquina en lugar de lo que se especifica en los registros MX para el dominio, que en realidad apuntan a otra máquina I utilizar para correo electrónico.
Me gustaría que sendmail no intente entregar localmente el correo para el dominio para el que está configurada la máquina, ¿hay alguna manera simple de desactivar la entrega local?
El dominio no está en el archivo local-host-names.
Ya he buscado mucho en Google y he mirado:
Configuración de Sendmail para no entregar correo a la máquina local
Deshabilitar la entrega local en Sendmail
Pero o no hay respuesta o no es adecuado.
No quiero retransmitir a otro servidor, solo quiero que envíe correo independientemente del dominio.
Para dar un ejemplo:
Tengo dos servidores, uno es el servidor de correo en mail.example.com y un servidor web que es example.com, cuando uso el servicio smtp en el servidor web actualmente dirige el correo a un buzón local en example.com, pero debería ir a buzones en mail.example.com
La salida de sendmail -bt devuelve:
MODO DE PRUEBA DE DIRECCIÓN (el conjunto de reglas 3 NO se invoca automáticamente) Entrar > 3,0 [email protected] canonify input: info @ example. com Entrada Canonify2: información Canonify2 devuelve: información canonify devuelve: información analizar entrada: información Entrada Parse0: información Parse0 devuelve: información Entrada ParseLocal: información ParseLocal devuelve: información Entrada Parse1: información Parse1 devuelve: $ # local $: info análisis devuelve: $ # local $: info
Respuestas:
Lo que hice para deshabilitar la entrega local. Usaré el dominio example.com.
Requisitos:
Pasos:
al final:
y entonces:
pruebas:
Debería ver que se conecta al servidor de Google y luego debería ver que su correo se entrega a su bandeja de entrada de Google.
fuente
sendmailconfig
, agregue las líneas que especificó,sendmailconfig
vuelva a ejecutar y haga unaservice sendmail restart
y ¡funciona!/etc/passwd
yetc/passwd
Gracias a Sporker y Pawel me pusiste en la dirección correcta para arreglar esto.
Mi problema original era que sendmail estaba considerando mis cuentas de correo electrónico de dominio example.com como cuentas locales.
Estos enlaces resultaron muy útiles: Sendmail al dominio local ignorando los registros MX (parte 2) http://lists.freebsd.org/pipermail/freebsd-questions/2004-September/057382.html http://objectmix.com/sendmail/ 367920-sendmail-ignores-mailertable-some-semilocal-domains.html
Pero en mi caso, usando FreeBSD 8.2, lo que realmente funcionó fue:
# cd /etc/mail
# vim freebsd.mc
Agregue estas dos líneas:
Justo antes de:
# make
--- Esto es salida ---
--- Fin de salida ---
# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
Espero que esto ahorre algunos dolores de cabeza a alguien.
fuente
No soy una persona de sendmail, pero creo que sendmail tratará cualquier dominio almacenado
/etc/mail/local-host-names
como nombres de dominio locales.Puedes intentar vaciar este archivo (no lo elimines) y reiniciar sendmail y ver cómo te va.
EDITAR
el nombre del archivo que he mencionado es en realidad situado en
sendmail.cf
y el suyo no puede ajustarse alocal-host-names
mirar en
/etc/mail/sendmail.cf
paraEsto no es de ninguna manera hechos probados sino solo yo pensando en voz alta.
fuente
Es posible que esta no sea la solución que está buscando, pero si su problema es que el usuario "administrador" o "raíz" está recibiendo muchos correos electrónicos y un buzón enorme, puede considerar configurar un trabajo cron para borrar el buzón fuera cada semana, día, etc.
Teníamos varios servidores CentOS con este problema, pero el problema era que queríamos poder leer el correo a veces, ya que puede ayudar a diagnosticar varios problemas a veces.
La solución fue simplemente cron job y limpiar la caja de vez en cuando.
Si encontramos un problema ... comentaríamos el trabajo cron (temporalmente) y leeremos los registros y correos electrónicos en busca de pistas.
Solo un pensamiento ... y una solución rápida / fácil para ti.
De lo contrario, eche un vistazo al archivo sendmail.mc y modifique en consecuencia.
Actualización rápida:
Esto no es exactamente lo que está pidiendo, pero podría darle algunas ideas y ayudarlo a arrojar algo de luz sobre usted:
http://www.pettingers.org/code/sendmail-local.html
fuente
Personalmente, soy más una persona de postfix, pero esto se parece mucho a que hayas configurado el servidor de envío para recibir correo para @ tudominio.com. Si hay un sendmail equivalente al mecanismo de transporte en postfix, eso es lo que uso para enrutar el correo interno entre mis servidores.
fuente
Parece que su conjunto de reglas 3 elimina la información del dominio. He incluido algunos pasos generales de solución de problemas a continuación. Si esto no funciona, deberá enviarme su sendmail.cf para echar un vistazo.
De la salida, example.com se trata como un dominio local. hacer un nslookup:
conjunto q = mx
dominio.com
Si esto le da la dirección IP de la máquina local, entonces debe mirar su dns. También busque en / etc / hosts para asegurarse de que domain.com no esté en la lista.
También parece eliminar el @ dominio.com, ¿podría intentar con algo como [email protected] para ver si también lo enumera como un dominio local?
También verifique el valor de Cw en su archivo sendmail.cf.
fuente
Probablemente no sea lo que desea, pero SSMTP es muy bueno para un servidor solo de salida, donde puede especificar un centro de correo.
fuente
Si desea devolver un error cuando se intenta la entrega a una dirección local, puede usar el mapa de acceso y algo como:
Si desea que los mensajes de correo electrónico se 'entreguen' pero se desechen, puede instalar una entrada virtusable que alias todo "
@your.domain
" para dev-null. Puede ser útil seguir entregando al menos "root
" localmente, porque a menudo es el destinatario de informes por correo electrónico de trabajos cron, etc. Intente algo como esto en suvirtusertable
:Con un
dev-null
alias local que redirige los mensajes a / dev / null, esto debería seguir entregando correo electrónico raíz, pero desechando los mensajes entregados a otros usuarios.fuente
La solución de Pawel funcionó para mí, pero sendmailconfig no existía en centos, así que tuve que ejecutar
para actualizar la configuración
fuente
Simplemente confirmando que la respuesta de Pawel resolvió mi problema muy similar.
Para cualquiera que use FreeBSD pero no esté interesado en involucrarse demasiado en el trabajo de envío de archivos cf de sendmail, la siguiente secuencia es la que usaría para agregar las dos líneas en el ejemplo de Pawel:
fuente
Seguí estas sugerencias y me di cuenta de que solo agregando el paso que mencionó Pawel,
"/ etc / hosts que define example.com asignado a la misma dirección IP anterior", básicamente agregué la IP de mi servidor seguido del nombre del servidor al
/etc/hosts
archivo, y eso es todo.Fue suficiente para mí recibir correos electrónicos enrutados a través de Google y volver a mis correos electrónicos.
fuente
Si está utilizando Cpanel / WHM para administrar su servidor, asegúrese de seleccionar Intercambiador de correo remoto en Cpanel / WHM en lugar de Detectar configuración automáticamente. Remote Mail Exchanger enviará todos los correos electrónicos a través de registros MX, incluido el dominio local. Con Automatic, los correos electrónicos de dominio local se enrutarán directamente localmente y no se enviarán a un servidor externo definido en los registros MX.
fuente