Traté de enviar un correo electrónico utilizando la mail()
función php pero falló de alguna manera, quejándose de que se requiere un nombre de dominio real. Lo siguiente se observa en el registro de correo:
sendmail 4984 r25984: from = apache, size = 273, class = 0, nrcpts = 1, msgid = <[email protected]>, relay = apache @ localhost
sendmail 4985 r25985: ruleset = check_mail, arg1 =, relay = midominio.com [127.0.0.1], rechazar = 553 5.5.4 ... Se requiere un nombre de dominio real para la dirección del remitente
sendmail 4984 r25984: [email protected], ctladdr = apache (48/48), delay = 00: 00:01, xdelay = 00: 00: 00, mailer = relay, pri = 30273, relay = [127.0.0.1] [127.0.0.1], dsn = 5.6.0, stat = Error de formato de datos
sendmail 4984 r25984: r25984: DSN: error de formato de datos
cron puede enviar correos electrónicos a [email protected] siempre que haya un problema con logrotate. No estoy seguro de por qué PHP no puede hacerlo. Intenté hacer cambios a la configuración predeterminada en `sendmail.mc con lo siguiente:
MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(mycom)dnl
Pero, no parece tener ningún efecto. El encabezado de la dirección en la función de correo php ya se ha configurado. También me aseguré de que SELinux httpd_can_sendmail
esté habilitado. ¿Qué más debo hacer para recibir el correo?
fuente
sendmail.mc
, cambió las líneaslocalhost.localdomain
ylocalhost
algo significativo y compiló el archivo mcsendmail.cf
?dnl
frente a ellas.mail()
? Y,sendmail.mc
no es el archivo de configuración adecuado, este archivo debe compilarse parasendmail.cf
usarm4
.Respuestas:
Creo que lo acabo de resolver. Tengo lo siguiente en / etc / hosts :
Lo que necesito es colocar myserver.com delante de la línea
localhost.localdomain
para que sendmail piense que está utilizando un dominio real para enviar el correo electrónico.fuente
/etc/hosts
(con una "s"), aparte de eso: ¡buena respuesta!Debe configurar, en sus scripts, los encabezados de su correo electrónico
From: [email protected]
.fuente
En tu
sendmail.mc
complemento:Recompile
sendmail.cf
, reinicie sendmail y debería estar bienfuente
En mi caso, en Ubuntu 16.04 en una instancia de AWS, lo que se necesitaba era agregar a
/etc/mail/sendmail.mc
:en una línea antes de la
MAILER_DEFINITIONS
línea hacia el final del archivo, Y agregue la misma línea al final de/etc/mail/submit.mc
. Luego escribasudo su
los permisos de root y compile para configurar con:... entonces
exit
sudo. Finalmente,sudo service sendmail restart
para reiniciar sendmail, y a partir de ahí, los correos electrónicos aparecían como enviados desde el nombre de dominio. Ninguno de los otros comandos FEATURE o MASQUERADE fueron necesarios, ni una entrada en el/etc/hosts
archivo.fuente