2010-12-26 81 views
46

sigo recibiendo este error cuando intento enviar un correo electrónico en PHP:no pudo conectar con servidor de correo en el puerto "localhost" 25

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\dressoholic\register.php on line 50 

mi php.ini es el siguiente:

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
SMTP = localhost 
; http://php.net/smtp-port 
smtp_port = 25 

; For Win32 only. 
; http://php.net/sendmail-from 
sendmail_from = [email protected] 

Estoy usando mi computadora portátil como servidor ... ¿Qué estoy haciendo mal? Gracias.

+3

¿Tiene una configuración de servidor SMTP? –

+0

No ... Probablemente por eso :( – Loolooii

+1

Algunas preguntas, 1. ¿Ha reiniciado su servidor, 2. tiene un servidor de correo electrónico ejecutándose en la computadora portátil, 3. usamos el SMTP Listening? Cmd> 'netstat -aon'? – RobertPitt

Respuesta

26

Necesita ejecutar un servidor de correo localmente. Si esto es Unix, habilite sendmail Si este es Windows, instale el componente Servidor simple de transferencia de correo (no estoy seguro si el nombre es correcto) de IIs. P.ej. para Windows 2003 siga esto: http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx

+0

¿También es posible en Windows 7? – Loolooii

+6

Acabo de encontrar http://hmailserver.com /, intentará si funciona ... – Loolooii

+0

Sí, funcionará en algunas ediciones de W7: http://technet.microsoft.com/en-us/library/cc772058%28WS.10%29.aspx –

18

Para el envío de correos utilizando la función de correo php se utiliza. Pero la función de correo requiere un servidor SMTP para enviar correos electrónicos. debemos mencionar el host SMTP y el puerto SMTP en el archivo php.ini. Una vez configurada correctamente, los correos del servidor SMTP se enviarán con éxito a través de scripts php.

6

Si está ejecutando su aplicación solo en localhost y aún no está activa, creo que es muy difícil enviar correo usando esto.

Una vez que haya puesto su aplicación en línea, creo que este problema debería resolverse automáticamente. Pero creo que ini_set() le ayuda a cambiar los valores en php.ini durante el tiempo de ejecución.

función de correo
3

PHP puede enviar un correo electrónico en 2 escenarios:

a. Intente enviar un correo electrónico a través de unix sendmail programa En Linux ejecutará el programa "sendmail", ponga todos los parámetros en sendmail y todos.

O

b. Conéctese al servidor de correo (utilizando el protocolo smtp y el host/puerto/nombre de usuario/pase desde php.ini) e intente enviar correos electrónicos.

Si php no puede conectarse al servidor de correo electrónico, dará una advertencia (y verá dicho trabajo en sus registros) Para resolverlo, instale el servidor smtp en su máquina local o use cualquier servidor disponible. Cómo configurar/configurar smtp puede encontrar en php.net

5

En primer lugar, no está obligado a utilizar un SMTP en su servidor local, si cambia esa entrada de localhost en el nombre DNS del MTA de su ISP proveedor (que le permitirá retransmitir el correo) funcionará de inmediato, así que no se meta con su propio servicio de correo electrónico. Solo intente utilizar los servidores SMTP de su proveedor, funcionará de inmediato.

+1

¡Gracias funcionó bien! –

20

En Windows, casi todos los paquetes AMPP (Apache, MySQL, PHP, PHPmyAdmin) no incluyen un servidor de correo (¡pero casi todos los linux desnudos tienen!). Entonces, cuando usas PHP en Windows, ¡necesitas configurar un servidor de correo!

Imo la mejor y más sencilla ist herramienta de esto: http://smtp4dev.codeplex.com/

SMTP4Dev es una herramienta de servidor de correo de un archivo simple que hace recoger los correos que envía (por lo que en realidad no envía el correo, sólo los conserva durante desarrollo). Herramienta perfecta.

+1

Gracias por esta herramienta @Sliq – Harsha

+0

por favor me encantaría saber cómo configurar esta herramienta para escuchar mi servidor de correo electrónico real – Michael

-1

php no permite o cree que es muy difícil enviar correos electrónicos desde localhost, pero este problema se resolverá si carga el proyecto en el servidor. y si desea verificar si el correo electrónico se envió o no en el servidor local, entonces debe descargar smtp4dev, instalarlo y ejecutarlo. Esto le dará un mensaje si su correo electrónico se envió con éxito o si hay un problema con su código.

Cuestiones relacionadas