Foros del Web » Programando para Internet » PHP »

Ayuda con envío de formulario a email.

Estas en el tema de Ayuda con envío de formulario a email. en el foro de PHP en Foros del Web. Buenas! Estoy tratando de enviar un formulario básico a una cuenta de correo mediante PHP pero no hay manera. Antes de nada decir que en ...
  #1 (permalink)  
Antiguo 02/02/2006, 08:25
 
Fecha de Ingreso: junio-2003
Ubicación: Cantabria
Mensajes: 61
Antigüedad: 20 años, 10 meses
Puntos: 1
Ayuda con envío de formulario a email.

Buenas!
Estoy tratando de enviar un formulario básico a una cuenta de correo mediante PHP pero no hay manera. Antes de nada decir que en PHP estoy muy verde, yo aprendi a programar en ASP pero al servidor donde quiero subir la web no admite asp.
Asi que guiandome con un ejemplo basico he creado un formulario como este:

Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Mándanos tus comentarios</title>
</head>

<body bgcolor="#cccc66" text="#003300" link="#006060" vlink="#006060">
<?
if (!$HTTP_POST_VARS){
?>
<form action="envia_form_php.php" method=post>
Nombre: <input type=text name="nombre" size=16>
<br>
Email: <input type=text name=email size=16>
<br>
Comentarios: <textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</body>
</html>
*mi email en el documento está bien puesto.

Bien, pues relleno el formulario, lo envio y me sale el mensaje de que está enviado correctamente, pero al correo no llega nada.
Lo estoy enviando desde localhost, ¿tendria que llegar igual, verdad?
Gracias.
  #2 (permalink)  
Antiguo 02/02/2006, 08:34
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Saludos, jejeje el code se parece bastante al que mayormente uso yo, bueno en fin, si estas en localhost debes abrir tu php.ini que se encuentra en C://WINDOW

Lo abres y buscas esta palabra

SMTP

ahi debes colocar el correo saliente, en el caso de venezuela, coloco mail.cantv.net ya que cantv.net es el proveedor de mi internet y uso su correo saliente para enviar mails desde localhost, solamente debes colocar el SMT de tu proveedor de internet si el mismo lo tiene free, o coloca algun otro..

Saludos.
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #3 (permalink)  
Antiguo 02/02/2006, 08:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. tu tienes instalado en tu servidor (en lo que llamas "localhost" que es tu PC en realidad) un servidor SMTP?

Al "parecer" si PHP no dá ningún error en la función mail() es que PHP pudo entregar el e-mail al MTA (Mail Transfer Agent) que uses en ese "servidor" (un servidor SMTP).

Ahora .. desde que PHP consiga "entregar el mail al cartero (MTA)" y si este a su vez puede enviar correctamente el e-mail ya no es cosa de PHP sino de tu servidor SMTP que uses. Debes revisar los "log's" de actividad de tu servidor SMTP y ver si llegó el e-mail (fué recibido por tu servidor) y como fué el proceso de envio .. Ahí deberías ver si tienes problemas y de que tipo.

Un saludo,
  #4 (permalink)  
Antiguo 02/02/2006, 09:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por carlosfocus
Saludos, jejeje el code se parece bastante al que mayormente uso yo, bueno en fin, si estas en localhost debes abrir tu php.ini que se encuentra en C://WINDOW

Lo abres y buscas esta palabra

SMTP

ahi debes colocar el correo saliente, en el caso de venezuela, coloco mail.cantv.net ya que cantv.net es el proveedor de mi internet y uso su correo saliente para enviar mails desde localhost, solamente debes colocar el SMT de tu proveedor de internet si el mismo lo tiene free, o coloca algun otro..

Saludos.
OJO ..

mail() de PHP no permite realizar autentificación (SMPT o de otro tipo como "bajar antes de subir" .. es decir usar POP autentificandose antes de usar SMTP en ese lapsus de tiempo).

Si tu usas tu ISP desde PHP (php.ini SMPT = tu ISP) y no tienes problemas .. tal vez sea por dos razones:

1) Por tu "IP" de conexión tu proveedor te autentifica automáticamente o mejor dicho permite "relay" desde sus "IP's" conocidas.

Esto lo comento por si llega alguien a usar SMTP = mail.cantv.net (con otro ISP para su conexión a internet) y no le funciona.

2) por qué realmente "mail.cantv.net" es un "relay abierto" .. es decir . .no está "protegido" con contraseña para usarlo (muuuy peligroso para ese proveedor y suceptible a ser usado con fines de envio de SPAM!!!!!).

Un saludo,
  #5 (permalink)  
Antiguo 02/02/2006, 09:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por cierto .. si usas un ISP (cuenta de e-mail SMTP de cualquier proveedor) que requiera autentificación .. puedes usar desde PHP la classe:

PHP Mailer
http://phpmailer.sourceforge.net

Aporta más "funcionalidades" a la función mail() .. entre otras cosas:
* Envio de e-mail por SMTP directo (con o sin autentificación requerida)
* Envio de archivos ajuntos.
* etc ... (no soy "comisionista" de los autores de esta classe xDD)

Un saludo,
  #6 (permalink)  
Antiguo 02/02/2006, 09:50
 
Fecha de Ingreso: junio-2003
Ubicación: Cantabria
Mensajes: 61
Antigüedad: 20 años, 10 meses
Puntos: 1
Uff... esto es más complicado de lo que me esperaba.
Estoy bajandome un programa para hacer mi propio servidor Smtp y tambien estoy mirando eso de PHP Mailer.

Ahora me asalta una duda, en el momento de subir la pagina al servidor, se supone que me daran las claves junto con la direccion smtp del servidor, no? ¿tendré que cambiar algo de mi codigo cuando la suba?
  #7 (permalink)  
Antiguo 02/02/2006, 10:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Quee? ...

Pero a ver .. aclara .. ¿tu sabes si tienes instalado un servidor SMTP en tu PC .. en el que usas PHP para tus pruebas? .. (te lo comento por qué al parecer que tienes instalado aunque no lo sepas tu mismo). Sino, cuando instales un servidor SMTP .. te dará conflictos con el que puedas ya tener instalado y funcionando! ..

Cita:
Ahora me asalta una duda, en el momento de subir la pagina al servidor, se supone que me daran las claves junto con la direccion smtp del servidor, no? ¿tendré que cambiar algo de mi codigo cuando la suba?
No, no te tienen que dar esa información .. La función mail() de PHP funciona ("enviará tus e-mails") si tu proveedor tiene configurado un MTA (que lo suelen tener y sino: consultales). ..

Por ende para tus pruebas "locales" debes reproducir la misma situación (si quieres usar mail() si o si), es decir .. instalar un servidor SMTP en tu PC y que NO requiera autentificación (para windows: QK SMTP Server te podría servir o cualquier similar).


Un saludo,
  #8 (permalink)  
Antiguo 02/02/2006, 10:42
 
Fecha de Ingreso: junio-2003
Ubicación: Cantabria
Mensajes: 61
Antigüedad: 20 años, 10 meses
Puntos: 1
A ver, aclaro...no se si lo tengo instalado. Yo instalar no he instalado ningun servidor SMTP, pero acabo de hacer una busqueda al leer tu mensaje y veo que hay archivos que podrian pertenecer al SMTP (se instalaran por defecto con algun programa o con el windows, lo desconozco), es decir que puede que esté instalado y yo no lo supiera, desconocia la funcion de un SMTP hasta hoy, pero yo por mi parte no he instalado nada mas que el servidor Apache para poder ver las paginas PHP en localhost.
¿Me he explicado bien?

Ahora pregunto, sin animo de ser cansino, qué deberia hacer? instalar el QK SMTP Server o qué?

Gracias.
  #9 (permalink)  
Antiguo 02/02/2006, 11:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues deberías "investigar" en tu "PC" ver que servicios estás ejecuntando . .en general revisar) que servidor SMTP tienes instalado y funcionando (al parecer por lo que te comenté en mensajes anteriores de que PHP no emite mensaje de error).

Es importante que hagas esto .. por qué de nada servirá liarte en hechar andar -otro- servidor SMTP .. vas a tener Conflictos (de puertos) por tener ya uno funcionando en el mismo puerto que el que instales.

PD: Windows no instala ningún servidor SMTP "por defecto" .. Tampoco detallas que versión de Windows usas .. pero bueno eso es cosa que debes conocer tu o solventar por otros médios (preguntando en el foro de "Windows" o en el de "Seguridad y redes" para que te enseñen a ver si tienes corriendo un servidor SMTP en tal puerto .. etc).

Un saludo,
  #10 (permalink)  
Antiguo 02/02/2006, 11:31
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Cita:
Iniciado por Cluster
OJO ..

mail() de PHP no permite realizar autentificación (SMPT o de otro tipo como "bajar antes de subir" .. es decir usar POP autentificandose antes de usar SMTP en ese lapsus de tiempo).

Si tu usas tu ISP desde PHP (php.ini SMPT = tu ISP) y no tienes problemas .. tal vez sea por dos razones:

1) Por tu "IP" de conexión tu proveedor te autentifica automáticamente o mejor dicho permite "relay" desde sus "IP's" conocidas.

Esto lo comento por si llega alguien a usar SMTP = mail.cantv.net (con otro ISP para su conexión a internet) y no le funciona.

2) por qué realmente "mail.cantv.net" es un "relay abierto" .. es decir . .no está "protegido" con contraseña para usarlo (muuuy peligroso para ese proveedor y suceptible a ser usado con fines de envio de SPAM!!!!!).

Un saludo,

Si Cluster tienes razon cantv.net es open no hay que autentificarse......
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:11.