formulario - Funciona la función PHP mail() si no poseo el registro MX
funcion mail php (6)
Algunos hosts (Godaddy es el peor) bloquean el uso de sendmail y mail ().
Generalmente uso smtp para enviar correos electrónicos desde mis aplicaciones de php y con PHPMailer es muy fácil. Muchas aplicaciones están usando versiones anteriores de PHPMailer y, a veces, actualizarlas puede ser útil. También es bastante fácil de agregar rápidamente a los scripts cortos también.
No estoy seguro de estar usando la terminología correcta aquí, así que sea indulgente.
Acabo de poner un sitio con un formulario de contacto que envía un correo electrónico utilizando la función PHP mail (). Suficientemente simple. Sin embargo, el sitio en vivo en realidad no envía el correo electrónico, el sitio de prueba sí lo hace. Entonces no es mi código
Es un host compartido y tenemos otro sitio que tiene la misma función que funciona perfectamente, por lo que no es el servidor.
La única diferencia entre los dos es que el sitio que no funciona solo tiene el servidor de nombres apuntando hacia nosotros, por lo que el registro MX nunca toca nuestro servidor.
Entonces mi pregunta es, ¿podría alguien confirmar que la función mail () no funcionará si no tenemos el registro MX apuntando a nuestro servidor? Gracias
Sí, podrías poner lo que quieras en el campo ''de'' y aún así funcionaría.
Sí. Funcionará bien. Tengo un script PHP usando la función mail () con los registros MX establecidos en Google Apps.
Si los dos scripts están en diferentes hosts (no está claro desde su publicación), asegúrese de que el host no bloquee algunos de los encabezados personalizados. Tuve problemas con esto al crear mi script, pero al eliminar todos menos el encabezado From resolvió el problema.
Si el sitio usa SPF, recuerde incluir el sitio de envío en su registro de SPF. Para más información, mira aquí .
La función mail()
envía correo desde el servidor que aloja el script. Dado que muchos proveedores de hospedaje compartido alojan servidores de correo separados, y debido a que la función de mail()
no admite ningún tipo de autenticación, muchos proveedores de hosting compartido lo bloquean.
Hola chicos, gracias por las respuestas, es muy apreciado.
Después de ignorar el problema durante unos meses, volvió a surgir, sin embargo, encontré la respuesta a mis problemas.
En primer lugar, como sugirieron las respuestas, PHP y la función mail () funcionaban como se esperaba. El correo estaba siendo enviado.
El problema radica cuando se envía el correo electrónico, simplemente supone que, como se envía desde mydomain.com a *@midominio.com, envía por correo electrónico que el correo electrónico está alojado en el mismo servidor, por lo que se envía allí e ignora el registro MX. .
OK, es un poco más complicado que eso, pero ese es el jist general.
Editar: Encontré una mejor versión del tema sendmail y registros MX cuando el servidor de correo no está en el host web .