2011-01-19 35 views
6

No puedo enviar un correo electrónico a través de la función de correo de php.No se puede enviar correo a través de correo php()

Este es el error que recibo. Advertencia: mail() [function.mail]: No se pudo conectar al servidor de correo en el puerto 25 de "localhost", verifique su configuración "SMTP" y "smtp_port" en php.ini o use ini_set() en D: \ inetpub \ vhosts \ southernbatteries.com \ httpdocs \ includes \ utils.php en la línea 6 Matriz ([0] => [1] => No se pudo enviar el correo, intente más tarde ...)

¿Qué significa exactamente esto? ¿Significa que no hay un servidor de correo instalado en mi servidor web? ¿Es posible usar un servidor de correo diferente? E.g Gmails servidor de correo para enviar el correo?

+0

¿Tiene su propio servidor web? –

+0

@Pekka no, yo no. –

Respuesta

4

Si desea utilizar el mail() integrado, deberá hablar con el administrador del servidor. Es posible usar un servidor SMTP externo en Windows, pero debe especificarse en la configuración de php.ini, y las funciones incorporadas de PHP no son compatibles con la autenticación SMTP.

La forma más habitual es utilizar un servidor de correo local que a su vez puede hablar de un "verdadero" servidor SMTP con autenticación, o que utilice un embalaje como SwiftMailer que puede conectarse a un servidor de 3 ª parte SMTP como Gmail directamente.

+0

La cosa es que estoy tratando de ayudar a un amigo y ellos no conocen los detalles del servicio de alojamiento. Si tuviera que subir los archivos SwiftMailer al servidor web, ¿podré enviar correos utilizando eso? –

+0

@Prakash sí, funcionará independientemente de 'mail()'. Si el servidor no está mal configurado, debería poder trabajar con él. Consulte http://www.swiftmailer.org/wikidocs/v3/connections/smtp para obtener un ejemplo de GMail –

+0

Según el ejemplo, se conecta a localhost: 25. Y de acuerdo con el error que arroja mi página, 25 podría no estar abierto "No se pudo conectar al servidor de correo en" localhost "puerto 25, verifique su" SMTP "y" smtp_port "" Esta es una sección phpinfo() SMTP \t localhost \t localhost smtp_port ¿Las cosas se ven bien? –

0

Necesita tener un servidor de correo para enviar correos. Si solo tiene Apache, no puede, a menos que tenga edit the php.ini file and set the smpt_server, a uno que le permita hacerlo. Tenga en cuenta que esto solo funcionará según su ISP.

Si tiene una cuenta de alojamiento puede cargar los archivos y en línea funcionarán.

+0

Algunas de las líneas de phpinfo() son SMTP \t \t localhost localhost smtp_port \t Soporte Sendmail interna para Windows \t habilitado sendmail_from \t [email protected] \t [email protected] que tiene un aspecto Ok, está bien ? ¿Debo buscar algo más para asegurarme de que se está ejecutando un servidor de correo? –

0

Debe ejecutar su propio servidor de correo en su servidor. Lo más probable es que no se haya iniciado o no esté instalado.

Como puedo ver que lo está ejecutando en Windows lo más probable es que lo haga más tarde. Podría intentar usar el servidor de correo de su proveedor. O Google. Pero lo más probable es que necesites un nombre de usuario y contraseña para eso.

+0

¿no quiere decir "[...] ejecute su propio servidor ** de correo [...]"? – oezi

+0

sí, error de la mente corregido ahora. – RJD22

+0

¿Cómo podría usar el servidor de correo de Googles, ya que funcionaría si el correo fuera enviado desde mi cuenta de gmail? –

0

debe evitar el uso del correo de php() - function ist se conecta y desconecta al servidor de correo para cada correo enviado.

en lugar de eso, intente utilizar algo como phpMailer que permite una fácil configuración y el envío de una gran cantidad de correos sin problemas de rendimiento.

0

Si desea ejecutar su propio servidor de correo (si este es un entorno de desarrollo, por ejemplo) puede usar mercury.

+0

No tengo demasiada libertad con el servidor de alojamiento. Es un sistema de Windows (eso es todo lo que sé) y es posible que no pueda instalar nada en él. –

Cuestiones relacionadas