Envio de formularios por mail

Hola a tod@s Estoy intentando mandar unos datos de un formulario por email, estoy trabajando en wampserver, el codigo lo tengo de una pagina de...

La FAQ Envio de formularios por mail tiene

Pertenece a la categoría:
Pregunta
Hola a tod@s


Estoy intentando mandar unos datos de un formulario por email, estoy trabajando en wampserver, el codigo lo tengo de una pagina de internet y es el siguiente:





<?php

//Copyright © McAnam.com



function form_mail($sPara, $sAsunto, $sTexto, $sDe){



$bHayFicheros = 0;

$sCabeceraTexto = "";

$sAdjuntos = "";



if ($sDe)$sCabeceras = "From:".$sDe."
"; else $sCabeceras = "";

$sCabeceras .= "MIME-version: 1.0
";

foreach ($_POST as $sNombre => $sValor)

$sTexto = $sTexto."
".$sNombre." = ".$sValor;



foreach ($_FILES as $vAdjunto){



if ($bHayFicheros == 0){



$bHayFicheros = 1;



$sCabeceras .= "Content-type: multipart/mixed;";

$sCabeceras .= "boundary="--_Separador-de-mensajes_--"
";



$sCabeceraTexto = "----_Separador-de-mensajes_--
";

$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1
";

$sCabeceraTexto .= "Content-transfer-encoding: 7BIT
";



$sTexto = $sCabeceraTexto.$sTexto;

}



if ($vAdjunto["size"] > 0){



$sAdjuntos .= "

----_Separador-de-mensajes_--
";

$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name="".$vAdjunto["name"].""
";;

$sAdjuntos .= "Content-Transfer-Encoding: BASE64
";

$sAdjuntos .= "Content-disposition: attachment;filename="".$vAdjunto["name"].""

";



$oFichero = fopen($vAdjunto["tmp_name"], 'r');

$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));

$sAdjuntos .= chunk_split(base64_encode($sContenido));

fclose($oFichero);

}



}



if ($bHayFicheros)

$sTexto .= $sAdjuntos."

----_Separador-de-mensajes_----
";



return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));

}



//Ejemplo de como usar:

if (form_mail("depcnaso@yahoo.es",

"Activación de formulario",

"Los datos introducidos en el formulario son:

",

"jero@localhost"

)

)

echo "Su formulario ha sido enviado con exito";

?>


y me da el siguiente error:


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:wampwwwcarmenformulariomail_adjuntos.php on line 51
también he probado con otros script de internet y siempre me da el mismo error.
Pueden decirme que debo hacer en php.ini para que funcione???

Gracias

Respuesta de Marco Antonio Camarena
Hola Nely.

El servidor WAMP es muy bueno, pero no incluye un servidor de Correo electrónico (que en este caso es el que necesitas para enviar los correos)... te recomiendo utilizar scripts que no usen la función mail() ya que normalmente utilizan/buscan el servidor local (localhost) para enviar los correos.

En el php.ini hay una configuración que dice:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
Si deseas tener un servidor de correo (SMTP es para enviar) instalado en tu equipo de pruebas no podría recomendarte uno. Sin embargo, si estás contratando con alguna empresa de hosting puede que te faciliten el servidor SMTP asociado a tu cuenta.

En lo personal recomiendo no tocar el php.ini y acudir a un servidor SMTP externo. Si puedes conseguir un script (como PHPMailer; hay mejores, pero no recuerdo los nombres) que se conecte, por ejemplo, a Yahoo, puedes enviar correos desde tu cuenta habitual.

Espero haber explicado claro y haber respondido a tu pregunta. En caso contrario, por favor, házmelo saber.

Saludos
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

Abraham

17/5/2009
Recomendacion
Amigo mucho gusto, yo te puedo recomendar servidorel altamente buenos con esa funcion aqui y a buen precio www.hostguard.org = www.hostguard.co.cc. para mas informacion contacta al emal ventas@hostguard.org o a mi correo personal abrahamargenisaalm@hotmail.com ó abraham@hostguard.org, espero poder ayudarte.

juan

10/10/2011
como cambiar la ultima linea "echo....." por la llamada de un html
Hola amigos, no tengo conocimientos en programacion php, y me gustaria que me ayudaran... he provado el formulario y funciona perfecto, pero queria saber como puedo cambiar la ultima linea de php - echo "Su formulario ha sido enviado con exito"; por una llamada a un html, para que quede mas vistoso y mejor... y poner sus datos han sido enviados con exito.... etc...

Gracias de antemano por la ayuda....
FAQ relacionadas
Volver al árbol de categoríasVolver al árbol de categorías