Foros del Web » Programando para Internet » PHP »

Problema con script de php para enviar datos de formulario utilizando la función mail

Estas en el tema de Problema con script de php para enviar datos de formulario utilizando la función mail en el foro de PHP en Foros del Web. Hola amigos: Gracias por leer mi consulta. Verán. Tengo un formulario de html Código HTML: <form id= "Formulario" action= "enviar_email_3.php" method= "post" > <h3> CONTACTO ...
  #1 (permalink)  
Antiguo 03/10/2017, 11:12
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 47
Antigüedad: 2 años, 7 meses
Puntos: 2
Mensaje Problema con script de php para enviar datos de formulario utilizando la función mail

Hola amigos:
Gracias por leer mi consulta. Verán. Tengo un formulario de html
Código HTML:
<form id="Formulario" action="enviar_email_3.php" method="post" >
<h3>CONTACTO</h3>
<input name="first_name" type="text" maxlength="40" required="required" placeholder="Nombre" accept-charset="utf-8">
<input name="last_name" type="text" maxlength="50" required="required" placeholder="Apellidos" accept-charset="utf-8">
<input type="email" name="email" placeholder="Correo Electrónico">
<input type="tel" name="telephone" required="required" placeholder="Teléfono">
<textarea name="message" placeholder="Escriba aquí sus comentarios" accept-charset="utf-8"></textarea>

<select name="seleccionar" style="font-size:1.1em;">
  	<optgroup label="1. Especialidades"></optgroup>
  	<option value="Eleccion 1">Elección 1
  	<option value="Eleccion 2">Elección 2
        <option value="Eleccion 3">Eleccion 3
             
  </select>

<input type="submit" value="ENVIAR" id="boton">
<input name="Restablecer" type="reset" id="boton" value="BORRAR FORMULARIO">
</form> 
Y además tengo un script de php para que los datos de el formulario se envíen a una cuenta de correo. Copio el script:

Código PHP:
<?php
if(isset($_POST['email'])) {
    
error_reportingE_ALL & ~( E_NOTICE E_STRICT E_DEPRECATED ) ); //Aquí se genera un control de errores "NO BORRAR NI SUSTITUIR"
require_once "Mail.php"//Aquí se llama a la función mail "NO BORRAR NI SUSTITUIR"

$to '[email protected]'//Aquí definimos quien recibirá el formulario
$from '[email protected]'//Aquí definimos que cuenta mandará el correo, generalmente perteneciente al mismo dominio
$host 'smtp.dominio.com'//Aquí definimos cual es el servidor de correo saliente desde el que se enviaran los correos tiene que ser smtp.dominioabsoluto.net
$username '[email protected]'//Aqui se define el usuario de la cuenta de correo
$password '*****'//Aquí se define la contraseña de la cuenta d ecorreo que enviará el mensaje
$subject 'Mensaje enviado desde la web'//Aquí se define el asunto del correo
$first_name utf8_decode($_POST['first_name']);
$last_name utf8_decode($_POST['last_name']); 
$email $_POST['email']; 
$telephone $_POST['telephone'];  
$message utf8_decode($_POST['message']); 
$seleccionar utf8_decode($_POST['seleccionar']); 
$body 'Mensaje enviado desde el formulario de contacto de la web.'nn
        
"Nombre: ".$first_name."\n"
        "Apellido: "
.$last_name."\n"
        "Email: "
$email "\n"
        "Telefono: "
.$telephone."\n"
        "Mensaje: "
.$message."\n"
        "Especialidad: "
.$_POST ["seleccionar"];"\n";//Aquí se define el cuerpo de correo
//Encabezados
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; UTF-8\r\n"
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp Mail::factory('smtp',
array (
'host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));

$mail $smtp->send($to$headers$body);



<!-- 
Mensaje de Éxito-->
 
<
script>
     
window.location.href='Formulario_enviado.html';
</script> 
<?php 
}
?>
Y cuando doy al botón enviar, llega al script (enviar_email_3.php) y ahí se queda. Y estoy desesperada y no sé qué más hacerle...

¿Me pueden ayudar, por favor?

Muchísimas gracias de antemano. Saludos
__________________
Con dedicación, las pequeñas cosas crecen
  #2 (permalink)  
Antiguo 03/10/2017, 13:55
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 1.963
Antigüedad: 5 años, 3 meses
Puntos: 49
Respuesta: Problema con script de php para enviar datos de formulario utilizando la f

Usa phpmailer.php

https://desarrolloweb.com/articulos/phpmailer.html

Los demas problemas son por la seguridad de los remitentes que no dejan..
ya no tuve problemas con phpmailer

descarga la libreria aqui https://github.com/PHPMailer/PHPMailer

Esto lo debes probar ya en tu servidor de hosting, por que si lo tienes en local vas a tener que configurar para lo del correo aparte.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #3 (permalink)  
Antiguo 03/10/2017, 16:53
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 47
Antigüedad: 2 años, 7 meses
Puntos: 2
Respuesta: Problema con script de php para enviar datos de formulario utilizando la f

Muchas gracias por tu respuesta... Pero, ¿No habría alguna forma de solucionarlo con la función mail?

Muchas gracias de nuevo
__________________
Con dedicación, las pequeñas cosas crecen
  #4 (permalink)  
Antiguo 03/10/2017, 17:46
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 1.963
Antigüedad: 5 años, 3 meses
Puntos: 49
Respuesta: Problema con script de php para enviar datos de formulario utilizando la f

Cita:
Iniciado por MariaLSS Ver Mensaje
Muchas gracias por tu respuesta... Pero, ¿No habría alguna forma de solucionarlo con la función mail?

Muchas gracias de nuevo
Creeme que dure investigando el por que derrepente me dejaron de funcionar los correos con mail, y tiene que ver con la configuracion del servidor. los proveedores me sugirieron el phpmailer y yo andaba buscando solucion para mail.
por que en el servidor bloquean los correos con mail.
nose cual es el problema de no usar phpmailer, solo debes sustituir los datos asi como el ejemplo.

pero si quieres que funcione con la funcion mail deberas ponerte en contacto con tu proveedor para que aplique esa configuracion.
Yo los tenia con mail y funcionaban, pero debido a ese cambio que hizo mi proveedor dejaron de enviarse.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #5 (permalink)  
Antiguo 06/10/2017, 13:16
 
Fecha de Ingreso: julio-2012
Mensajes: 78
Antigüedad: 5 años, 4 meses
Puntos: 2
Respuesta: Problema con script de php para enviar datos de formulario utilizando la f

Prueba a utilizar esta función, es la que siempre utilizo y nunca me dio ningún problema
http://php.net/manual/es/function.mail.php
Además ten en cuenta que la función mail no funciona en localhost de tu ordenador personal. Tendrás que subirlo a un servidor.
Para utilizarlo desde tu ordenador personal tendrías que hacer unas configuraciónes en el Apache y el envío no es inmediato, tarda como unos 15 minutos en llegar.

Espero haberte ayudado



La zona horaria es GMT -6. Ahora son las 04:01.