Pregunta

No estoy seguro de estar usando toda la terminología correcta aquí, así que sea indulgente.

Acabo de crear 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, sino el sitio de prueba.Entonces no es mi código.

Es un host compartido y tenemos otro sitio que tiene la misma función que funciona perfectamente, entonces no es el servidor.

La única diferencia entre los dos es que el sitio que no funciona simplemente tiene el servidor de nombres apuntando hacia nosotros y, por lo tanto, 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

¿Fue útil?

Solución 3

Hola chicos, gracias por las respuestas, se agradece mucho.

Después de ignorar el problema durante unos meses, volvió a surgir, pero encontré la respuesta a mis problemas.

En primer lugar, como sugirieron sus 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 se supone que debido a que se envía desde midominio.com al correo electrónico *@midominio.com, el correo electrónico en sí está alojado en el mismo servidor, por lo que se envía allí e ignora el registro MX. .

Vale, es un poco más complicado que eso, pero esa es la esencia general.

Editar:Encontré una versión mejor del tema. registros sendmail y MX cuando el servidor de correo no está en el servidor web.

Otros consejos

Sí.Funcionará bien.Tengo un script PHP que usa la función mail() con los registros MX configurados en Google Apps.

Si los dos scripts están en hosts diferentes (no queda claro en su publicación), asegúrese de que el host no bloquee algunos de los encabezados personalizados.Tuve problemas con esto al crear mi secuencia de comandos, pero eliminar todo menos el encabezado De solucionó el problema.

Algunos servidores (Godaddy es el peor) bloquean el uso de sendmail y mail().

Generalmente uso smtp para enviar correos electrónicos desde mis aplicaciones php y con PHPMailer es súper fácil.Muchas aplicaciones utilizan versiones anteriores de PHPMailer y, a veces, actualizarlas puede resultar útil.También es bastante fácil agregar rápidamente scripts cortos.

El mail() La función envía correo desde el servidor que aloja el script.Dado que muchos proveedores de hosting compartido alojan servidores de correo separados y debido a que el mail() La función no admite ningún tipo de autenticación, muchos proveedores de alojamiento compartido la bloquean.

Si el sitio utiliza SPF, recuerde incluir el sitio de envío en su registro SPF.Para más información ver aquí.

Sí, podrías ingresar lo que quieras en el campo "de" y aún así funcionaría.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top