elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Enviar formulario a correo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Enviar formulario a correo  (Leído 9,088 veces)
lluk

Desconectado Desconectado

Mensajes: 106


C++Programming


Ver Perfil
Enviar formulario a correo
« en: 6 Agosto 2010, 01:51 am »

Hola a todos hace tiempo que busco algun script para enviar un formulario por correo electronico pero me refiero ha que yo lo envio y el que recibe el mail lo contesta y se me envia la respuesta a algun archivo .txt que tenga por internet. Tambien necesito que el remitente del mail sea el que yo quiera. estuve buscando por internet y encontre esto:

Código:
<?php
$aviso = "";
// check form 
if ($_POST['email'] != "") {
// email de destino
$email = "emailde@destino.com";

// asunto del email
$subject = "Prueba";

// Cuerpo del mensaje
$mensaje = "---------------------------------- \n";
$mensaje.= "            Contacto               \n";
$mensaje.= "---------------------------------- \n";
$mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
$mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
$mensaje.= "EMAIL:    ".$_POST['email']."\n";
$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
$mensaje.= "FECHA:    ".date("d/m/Y")."\n";
$mensaje.= "HORA:     ".date("h:i:s a")."\n";
$mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
$mensaje.= "---------------------------------- \n\n";
$mensaje.= $_POST['mensaje']."\n\n";
$mensaje.= "---------------------------------- \n";
$mensaje.= "Enviado desde http://www.miweb.es \n";

// headers del email
$headers = "From: ".$_POST['email']."\r\n";

// Enviamos el mensaje
if (mail($email, $subject, $mensaje, $headers)) {
$aviso = "Su mensaje fue enviado correctamente";
} else {
$aviso = "Error de envío";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Enviar Email con PHP - unijimpe</title>
<style type="text/css">
body {
margin: 16px;
padding: 0;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333;
}
input, textarea {
float: left;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333;
padding: 2px;
width: 250px;
margin-bottom: 4px;
}
label {
float: left;
width: 100px;
}
button {
width: 80px;
background: #333;
color: #FFF;
padding: 3px 8px;
}
form {
border: solid 1px #CCC;
background: #efefef;
padding: 16px;
width: 380px;
}
br { clear: both; }
em { color: red; } 
</style>
</head>
<body>
<h2>Enviar Email con PHP</h2>
<?php if ($aviso != "") { ?>
<p><em><?php echo $aviso; ?></em></p>
<?php } ?>
<form action="" method="post">
    <label for="nombres">Nombres</label> <input name="nombre" id="nombre" type="text" /><br />
    <label for="empresa">Empresa</label> <input name="empresa" id="empresa" type="text" /><br />
    <label for="email">Email</label> <input name="email" id="email" type="text" /><br />
    <label for="telefono">Telefono</label> <input name="telefono" id="telefono" type="text" /><br />
    <label for="mensaje">Mensaje</label> <textarea name="mensaje" cols="30" rows="6"></textarea><br />
    <label for="btsend">&nbsp;</label> <button name="btsend" id="btsend" type="submit">Enviar</button>
</form>
</body>
</html>

haber si alguien me explica como puedo modificar el codigo para hacer eso o si me puede pasar algun otro codigo =)

gracias de antemano


En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: Enviar formulario a correo
« Respuesta #1 en: 6 Agosto 2010, 04:44 am »

explicate mejor,sobre el envio de correo y archivo de text no se de que  :huh:

donde estas probando este php, en un servidor web en tu pc?
en un servidor contratado? cpanel?


saludos


En línea

lluk

Desconectado Desconectado

Mensajes: 106


C++Programming


Ver Perfil
Re: Enviar formulario a correo
« Respuesta #2 en: 6 Agosto 2010, 23:27 pm »

mira ya se que no me explique muy bien pero yo quiero enviar un correo con un remitente falso. Lo que quiero hacer es enviar un formulario que cuando finalicen el formulario se me envien todos los campos a un email o que se queden guardados en un archivo .txt que ya tenga subido en mi servidor web.

P.D. no se si me explicado bien xdd
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Enviar formulario a correo
« Respuesta #3 en: 7 Agosto 2010, 01:28 am »

Espero que sepas lo minimo de php y html porque sino te va a ser bastante jodido :P

para empezar necesitas 2 archivos (3 con el que vas a guardar los datos). El mail.php que servira para enviar el email y el recive.php con el que recibiras la informacion.

el mail.php contendra esto:
Código
  1. <?php
  2. // drvy bsm
  3. if (isset($_POST['hacia'],$_POST['subjeto'],$_POST['mensaje'],$_POST['desde']))
  4. {print enviar_mail($_POST['hacia'],$_POST['subjeto'],$_POST['mensaje'],$_POST['desde']);} else {print 'Todos los campos son obligatorios';}
  5.  
  6. function enviar_mail($hacia,$subjeto,$mensaje,$desde)
  7. {
  8. $cabeceras = "From: " . strip_tags($_POST['desde']) . "\r\n";
  9. $cabeceras .= "MIME-Version: 1.0\r\n";
  10. $cabeceras .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
  11. if (mail($hacia,$subjeto,$mensaje,$cabeceras)) {print 'Email enviado';} else {print 'Email no enviado';}
  12. }
  13. ?>
  14. <html>
  15. <head>
  16. <title>WIKI WIKI [drvy|BSM]</title>
  17. </head>
  18. <body>
  19. <center>
  20. <form action="" method="POST">
  21. <input type="text" name="hacia" value="destinario@destino.com">
  22. <br /><input type="text" name="subjeto" value="subjeto">
  23. <br /><textarea name="mensaje">Texto...</textarea>
  24. <br /><input type="text" name="desde" value="mailfalso@mailfalso.com">
  25. <br /><input type="submit" value="Enviar">
  26. </form>
  27. </center>
  28. </body>
  29. </html>

el recive.php esto:
Código
  1. <?php
  2. $ruta = 'datos.txt';
  3. if(isset($_POST['k_nombre'])) {$nombre = $_POST['k_nombre'];} else {$nombre = 'NoIntroducido';}
  4. if(isset($_POST['k_cuidad'])) {$cuidad = $_POST['k_cuidad'];} else {$cuidad = 'NoIntroducido';}
  5. if(isset($_POST['k_pais'])) {$pais = $_POST['k_pais'];} else {$pais = 'NoIntroducido';}
  6. if(isset($_POST['k_email'])) {$email = $_POST['k_email'];} else {$email = 'NoIntroducido';}
  7. if(isset($_POST['k_telefono'])) {$telefono = $_POST['k_telefono'];} else {$telefono = 'NoIntroducido';}
  8.  
  9. function escribir_en($ruta,$nombre,$cuidad,$pais,$email,$telefono)
  10. {
  11. $archivo = fopen($ruta,'a+');
  12. fwrite($archivo,$nombre.' | '.$cuidad.' | '.$pais.' | '.$email.' | '.$telefono."\r\n");
  13. fclose($archivo);
  14. return true;
  15. }
  16.  
  17. escribir_en($ruta,$nombre,$cuidad,$pais,$email,$telefono);
  18. ?>
Puedes cambiar la variable $ruta por un archivo con un nombre que te de la gana.

Y el formulario (de prueba) que tienes que enviar mas o menos contiene esto:
Código
  1. <h1> Rellene este formulario </h1>
  2. <span>Todos los campos son obligatorios!</span>
  3. <form action="http://dominio.com/mail/recive.php" method="POST">
  4. <tr><td>Nombre:</td><td><input type="text" name="k_nombre"></td></tr>
  5. <tr><td>Cuidad:</td><td><input type="text" name="k_cuidad"></td></tr>
  6. <tr><td>Pais:</td><td><input type="text" name="k_pais"></td></tr>
  7. <tr><td>Email:</td><td><input type="text" name="k_email"></td></tr>
  8. <tr><td>Telefono:</td><td><input type="text" name="k_telefono"></td></tr>
  9. <tr><td>Enviar:</td><td><input type="submit" value="Enviar"></td></tr>
  10. </table>
  11. </form>
  12. </center>
  13.  

lo mas importante ahi es el..
Código
  1. <form action="http://dominio.com/mail/recive.php" method="POST">
que es donde tendras que introducir tu dominio y donde alojas el archivo recive.php.

Una vez que hayas enviado el email y el cliente lo haya rellenado te vas a tu servidor buscas el archivo donde se guardan los datos y los ves :P . Como dije si no tienes ni **** idea de esto mejor ni lo hagas.

PD: Tambien se puede combinar en un solo archivo pero pa eso ya colores y gustos :P

Saludos
En línea

lluk

Desconectado Desconectado

Mensajes: 106


C++Programming


Ver Perfil
Re: Enviar formulario a correo
« Respuesta #4 en: 7 Agosto 2010, 02:16 am »

ok gracias por el script aunque aun no lo he provado porque estoy con el internet de movistar y mi conexion va a 1kb/ps xdd y no me deja subir archivos a ningun servidor asi que lo probare con localhost aunque no creo que funcione

gracias ;)
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Enviar formulario a correo
« Respuesta #5 en: 7 Agosto 2010, 12:17 pm »

Obviamente en localhost no funcionara a no ser que tengas instalado un servidor smtp.




Saludos
En línea

lluk

Desconectado Desconectado

Mensajes: 106


C++Programming


Ver Perfil
Re: Enviar formulario a correo
« Respuesta #6 en: 10 Agosto 2010, 02:37 am »

lo probe en localhost uso xampp y tenia el mercury y el apache activados y me ponia que se habia enviado el mensaje pero nunca llegaba al destinatario. Despues lo probe con webcindario pero me ponia mensaje no enviado =mente no se si tiene smtp

edito: lo pude enviar desde localhost pero el problema esque solo se envia el texto y no el formulario no entiendo porque?
si me puedes volver a ayudar te lo agradeceria
« Última modificación: 10 Agosto 2010, 03:05 am por lluk » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Enviar formulario a correo
« Respuesta #7 en: 10 Agosto 2010, 09:33 am »

Los hosting gratuitos no suelen ser muy hospitalarios en temas de smtp XD.
Como envias exactamente el correo ?
prueba con ::www.000webhost.com/



Saludos
En línea

lluk

Desconectado Desconectado

Mensajes: 106


C++Programming


Ver Perfil
Re: Enviar formulario a correo
« Respuesta #8 en: 10 Agosto 2010, 17:20 pm »

bueno como no me funcionaba decidi crear mi script en php.
lo voy a poner para que lo veas y me ayudes y me aconsejes (ya que solo hace 10 dias que empeze con php xd aunque antes estudiaba C y creo que son dos lenguajes muy parecidos.
aqui el codigo:
Código:
<?php
$destino = "destinatario@hotmail.com"; //creamos una variable donde ponemos el email del destinatario
$asunto = "Asunto de prueba"; //creamos una variable donde ponemos el asunto
$mensaje = "<table>
<form method=post>
<tr><td>Nombre:</td><td><input name=nombre type=text></td></tr>
<tr><td>Ciudad</td><td><input name=pass type=password></td></tr>
<tr><td>Email alternativo:</td><td><input name=email type=text></td></tr>
<tr><td>Fecha de nacimiento:</td><td><input name=fecha type=fecha></td></tr>
<tr><td>Enviar:</td><td><input value=Enviar type=submit></td></tr>
</form>
</table>";
/*creamos una variable donde pondremos el asunto del mensaje en este caso hemos
 creado un formulario para enviar y en la primera linea del form necesito ayuda con
 el action porque no se que hacer para que cuando se termine se me envien los datos
*/
$cabeceras = "From:remitente@remitente.com\nContent-Type: text/html; charset=iso-8859-1";
/*
aqui van las cabeceras con From: indicamos el remitente
con la \n indicamos salto de linia
con Content-Type: text... hacemos que se puedan añadir mensajes
*/
mail($destino,$asunto,$mensaje,$cabeceras) or die ("El mensaje no se pudo enviar");
echo ("El mensaje se ha enviado correctamente");
/*
con esto ultimo enviamos el mensaje (cogemos todas las variables y las ponemos en su respectivo orden.
con or die veremos en pantalla: El mensaje no se pudo enviar y si se pudo enviar mostraremos: El mensaje se ha enviado correctamente
*/
?>

necesito ayuda con la parte del formulario porque nose que hacer para que se me envien los datos del formulario al pulsar el boton enviar
En línea

Dznp

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Enviar formulario a correo
« Respuesta #9 en: 10 Agosto 2010, 17:41 pm »

Para que se envie a determinado archivo se pone "action", quedaria así...

Código
  1. <form method=post action="">
  2. <tr><td>Nombre:</td><td><input name=nombre type=text></td></tr>
  3. <tr><td>Ciudad</td><td><input name=pass type=password></td></tr>
  4. <tr><td>Email alternativo:</td><td><input name=email type=text></td></tr>
  5. <tr><td>Fecha de nacimiento:</td><td><input name=fecha type=fecha></td></tr>
  6. <tr><td>Enviar:</td><td><input value=Enviar type=submit></td></tr>
  7. </form>

En ese caso se enviaria al mismo archivo, usando isset(en php) podrias hacer que se envie dependiendo si se envio o no algun dato por POST
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines