PHP - envio de formulario

 
Vista:

envio de formulario

Publicado por ferrer (8 intervenciones) el 30/08/2011 13:25:29
Hola, alguien me podría ayudar.
CUANDO HAGO UN FORMULARIO PARA ENVIAR UN MENSAJE A UN CORREO, EN LA FUNCIÓN MAIL ME SALE ESTE ERROR en el navegador:

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:\Program Files\Apache Software Foundation\Apache2.2\htdocs\sendmail.php on line 21
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

envio de formulario

Publicado por xve (6935 intervenciones) el 30/08/2011 15:49:34
Hola Ferrer, por defecto, la instrucción mail() utiliza el servidor de correo que se encuentra instalado en la misma maquina (localhost), pero si esa maquina no dispone de servidor de correo, no puede enviar correos dando el error que te indica.
Puedes modificar la configuración del fichero php.ini, o establecer los valores con la instrucción ini_set() tal y como te indica el warning.

Si deseas utilizar ini_set(), puedes hacerlo así:
1
2
3
4
5
6
7
8
ini_set ( sendmail_from, "my_email@my_server.com" );
ini_set( SMTP, "smtphm.sympatico.ca" );
ini_set( smtp_port, 25 );
$message = "This is a test!";
$to = "my_email@hotmail.com";
$subject = "Email from my_server.com";
$headers = "From: www.my_server.com<my_email@my_server.com>\r\n";
mail($to, $subject, $message, $headers);


Aquí tienes un ejemplo de envío de correo utilizando una clase para el envio mediante un servidor smtp externo: http://www.lawebdelprogramador.com/codigo/PHP/1884-Envio_de_correo_mediante_servidor_SMTP.html

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

envio de formulario

Publicado por joan ferrer (8 intervenciones) el 30/08/2011 18:36:22
He usado los set_ini, pero ahora me da este error:

Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\sendmail.php on line 27
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

envio de formulario

Publicado por xve (6935 intervenciones) el 15/09/2011 09:46:06
Hola Joan, eso es porque el servidor stmp que estas utilizando utiliza la seguridad TLS.

Según he leído por internet, necesitas instalar un servidor de correo local que lo soporte: http://byitcurious.blogspot.com/2009/04/solving-must-issue-starttls-command.html

Te recomiendo que realices el envio utilizando tu servidor smtp como te puse en la anterior respuesta.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar