PHP - Necesito ayuda con el cambio de remitente de un formulario

 
Vista:
sin imagen de perfil

Necesito ayuda con el cambio de remitente de un formulario

Publicado por Diego Reyes (2 intervenciones) el 23/11/2016 04:32:40
Hola buenas noches, disculpen si me equivoco de hilo pero necesito ayuda con un codigo php de un formulario donde no consigo cambiarle el nombre del remitente, el codigo php es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
require("phpmailer/class.phpmailer.php");
    $mail = new PHPMailer();
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $mail->From = $_POST['email'];
	$mail -> IsSMTP();
	$mail -> SMTPAuth = true;
    $to = 'xxx@xxx.com';
	$host = 'smtp.xxx.com';
    $port = '25';//"587";
    $username = 'xxx@xxx.com';
    $password = 'xxx';
    $subject = 'Mensaje';
    $human = $_POST['human'];
	$mail->WordWrap = 50;
    $mail->IsHTML(true);
 
    $body = "From: $name\n E-Mail: $email\n Message:\n $message";
 
    if ($_POST['submit'] && $human == '4') {
        if (mail ($to, $subject, $body, $from)) {
	    echo "<script>alert('Formulario Enviado');location.href ='javascript:history.back()';</script>";
	} else {
	    echo "<script>alert('Error al enviar el formulario');location.href ='javascript:history.back()';</script>";
	}
    } else if ($_POST['submit'] && $human != '4') {
	echo "<script>alert('Respondiste la pregunta antispam incorrectamente');location.href ='javascript:history.back()';</script>";
    }
?>

y mi formulario en html es asi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form method="post" action="bat/prueba.php">
 
    <label>Name</label>
    <input name="name" placeholder="Type Here">
 
    <label>Email</label>
    <input name="email" type="email" placeholder="Type Here">
 
    <label>Message</label>
    <textarea name="message" placeholder="Type Here"></textarea>
    <label>*What is 2+2? (Anti-spam)</label>
<input name="human" placeholder="Type Here">
 
    <input id="submit" name="submit" type="submit" value="Submit">
</form>

por favor si me pueden ayudar se los agradeceria enormemente
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

Necesito ayuda con el cambio de remitente de un formulario

Publicado por xve (6935 intervenciones) el 23/11/2016 10:29:24
Hola Diego, estas mezclando dos manera de enviar correo, una utilizando la librería phpmailer y otra utilizando la instrucción de PHP mail()

Si envias el correo con la instrucción mail(), lo que configures en la librería phpmailer no vale para nada!!!
te recomiendo utilizar la libreria phpmailer en vez de la instrucción mail()

http://www.lawebdelprogramador.com/codigo/PHP/1884-Envio-de-correo-mediante-servidor-SMTP.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Necesito ayuda con el cambio de remitente de un formulario

Publicado por Diego (2 intervenciones) el 23/11/2016 14:22:41
Muchas gracias por aclararme esa duda, el problema es que ahora me sale otro error y la verdad no se que estoy haciendo mal, el error es el siguiente

Fatal error: Class 'SMTP' not found in E:\web\tecnovigius\htdocs\new site\bat\phpmailer\class.phpmailer.php on line 1204

y el codigo php luce asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/**
 * Envio de correo mediante un servidor SMTP
 */
 
include("phpmailer/class.phpmailer.php");
 
$smtp=new PHPMailer();
 
# Indicamos que vamos a utilizar un servidor SMTP
$smtp->IsSMTP();
 
# Definimos el formato del correo con UTF-8
$smtp->CharSet="UTF-8";
 
# autenticación contra nuestro servidor smtp
$smtp->SMTPAuth   = true;						// enable SMTP authentication
$smtp->Host       = "smtp.live.com";			// sets MAIL as the SMTP server
$port = '25';//"587";
$smtp->Username   = "ejemplo@midominio.com";	// MAIL username
$smtp->Password   = "xxx";			// MAIL password
 
# datos de quien realiza el envio
$smtp->From       = "ejemplo@midominio.com"; // from mail
$smtp->FromName   = "Diego Reyes"; // from mail name
 
# Indicamos las direcciones donde enviar el mensaje con el formato
#   "correo"=>"nombre usuario"
# Se pueden poner tantos correos como se deseen
$mailTo=array(
    "ejemplo@midominio.com"=>"Diego Reyes",
);
 
# establecemos un limite de caracteres de anchura
$smtp->WordWrap   = 50; // set word wrap
 
# NOTA: Los correos es conveniente enviarlos en formato HTML y Texto para que
# cualquier programa de correo pueda leerlo.
 
# Definimos el contenido HTML del correo
$contenidoHTML="<head>";
$contenidoHTML.="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
$contenidoHTML.="</head><body>";
$contenidoHTML.="<b>Contenido en formato HTML</b>";
$contenidoHTML.="<p><a href='http://www.lawebdelprogramador.com'>http://www.lawebdelprogramador.com</a></p>";
$contenidoHTML.="</body>\n";
 
# Definimos el contenido en formato Texto del correo
$contenidoTexto="Contenido en formato Texto";
$contenidoTexto.="\n\nhttp://www.lawebdelprogramador.com";
 
# Definimos el subject
$smtp->Subject="Envio de prueba utilizando un servidor SMTP";
 
# Adjuntamos el archivo "leameLWP.txt" al correo.
# Obtenemos la ruta absoluta de donde se ejecuta este script para encontrar el
# archivo leameLWP.txt para adjuntar. Por ejemplo, si estamos ejecutando nuestro
# script en: /home/xve/test/sendMail.php, nos interesa obtener unicamente:
# /home/xve/test para posteriormente adjuntar el archivo leameLWP.txt, quedando
# /home/xve/test/leameLWP.txt
$rutaAbsoluta=substr($_SERVER["SCRIPT_FILENAME"],0,strrpos($_SERVER["SCRIPT_FILENAME"],"/"));
$smtp->AddAttachment($rutaAbsoluta."/leameLWP.txt", "LeameLWP.txt");
 
# Indicamos el contenido
$smtp->AltBody=$contenidoTexto; //Text Body
$smtp->MsgHTML($contenidoHTML); //Text body HTML
 
foreach($mailTo as $mail=>$name)
{
    $smtp->ClearAllRecipients();
    $smtp->AddAddress($mail,$name);
 
    if(!$smtp->Send())
    {
        echo "<br>Error (".$mail."): ".$smtp->ErrorInfo;
    }else{
        echo "<br>Envio realizado a ".$name." (".$mail.")";
    }
}
?>
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