2008-09-02 8 views
6

No estoy seguro de estar usando la terminología correcta aquí, así que sea indulgente.Funciona la función PHP mail() si no poseo el registro MX

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.

Así que 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

Respuesta

2

Hola chicos gracias por las respuestas, es muy apreciado.

Después de ignorar el problema durante unos meses ha vuelto a aparecer, sin embargo, encontré la respuesta a mis problemas.

En primer lugar, como sus respuestas sugieren, PHP y la función de correo() funcionaban como se esperaba. El correo estaba siendo enviado.

El problema radica en cuando se envía el correo electrónico, simplemente supone que, como se envía desde midominio.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í y ignora el registro MX.

OK, es un poco más complicado que eso, pero eso es lo general.

Editar: encontrado una mejor versión del tema sendmail and MX records when mail server is not on web host.

0

Sí, podría poner lo que quiera en el campo 'desde' y aún así funcionaría.

3

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), entonces 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.

2

Algunos hosts (GoDaddy es el peor) bloquean el uso de sendmail y mail().

Generalmente utilizo 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.

1

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

1

Si el sitio usa SPF, recuerde incluir el sitio de envío en su registro SPF. Para más información, vea here.