PHP - funcion mail()

   
Vista:

funcion mail()

Publicado por aldo (824 intervenciones) el 03/01/2016 02:09:51
Desarrollé un codigo para recuperar la contraseña, pero estoy trabajando con localhost y alli no funciona la funcion mail(), ahora que sugerencia me podrían dar al respecto?
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

funcion mail()

Publicado por Sebastian (35 intervenciones) el 03/01/2016 04:31:36
Yo utilizo: https://github.com/PHPMailer/PHPMailer, quizas sea de ayuda

Saludos
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
Imágen de perfil de xve

funcion mail()

Publicado por xve (5515 intervenciones) el 03/01/2016 18:39:48
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

funcion mail()

Publicado por aldo (824 intervenciones) el 04/01/2016 01:36:03
Esta bien el PHPMailer,
¿pero como haria para determinar la contraseña de la cuenta de correo de cada usuario en el momento cuando él la escriba en el formulario? A través de ese formulario escribirán muchos usuarios los cuales tal vez habrán olvidado la contraseña.

$smtp->SMTPAuth = true; // enable SMTP authentication
$smtp->Host = "miservidor.com"; // sets MAIL as the SMTP server
$smtp->Username = "nombre@miservidor.com"; // MAIL username
$smtp->Password = "passwordDelCorreo"; // MAIL password
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

funcion mail()

Publicado por aldo (824 intervenciones) el 04/01/2016 02:31:27
Bueno estoy aplicando la clase PHPMailer, este es el codigo pero no esta enviando la contraseña:
¿DONDE DEBO ENVIAR LA CONTRASEÑA ALEATORIA?

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
<?php
$conexion = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=movilnet");
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
 
$email = $_POST['email'];
$e_mail="SELECT email FROM usuarios WHERE email = '$email'";
$res = @pg_query($conexion,$e_mail);
  if(@pg_num_rows($res)>0)
  {
     $cadena = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  	 $passw ='';
	 $lng_cadena = strlen($cadena);
	 $longitud = 8;
 
	 	for($x=1;$x<=$longitud;$x++)
		{
		   $aleatorio = mt_rand(0,$lng_cadena-1);
SE CREA LA CONTRASEÑA ALEATORIA
		   $passw = substr($cadena,$aleatorio,1);
		}
              SE ACTUALIZA LA BASE DE DATOS
		$contrasena = "UPDATE usuarios SET usuario_pass = '$passw' WHERE email = '$email'";
		$actualiza = @pg_query($conexion,$contrasena);
		$smtp=new PHPMailer();
		$smtp->IsSMTP();
		# Definimos el formato del correo con UTF-8 
		$smtp->CharSet="UTF-8";
		//$smtp->SMTPDebug = 1;
		# autenticación contra nuestro servidor smtp
		$smtp->SMTPAuth = true; // enable SMTP authentication
		$smtp->SMTPSecure = "tls";
		$smtp->Host = "smtp.live.com"; // sets MAIL as the SMTP server
		$smtp->Username = $de; // MAIL username
		$smtp->Port = 587;
NO SE SI SERÍA AQUI DONDE SE DEBE ENVIAR
                $para1 = $email;
                $nameTo = $para1;
 		$smtp->AddAddress($para1,utf8_decode($nameTo));
		$smtp->Subject = $asunto;
		$smtp->Body = $mensaje;
		$smtp->WordWrap = 50;
		//$smtp->Timeout=50;
		$smtp->IsHTML(true);
			   if ($smtp->Send())
				  {
					$respuesta ="El mensaje ha sido enviado";
				  }
 
   }
   else
   {
   	 echo' <script language="javascript">alert("Atencion, su correo no existe");</script> ';
     echo "<script>location.href='passw.php'</script>";
 
   }
 
 
?>
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
Imágen de perfil de xve

funcion mail()

Publicado por xve (5515 intervenciones) el 04/01/2016 12:53:45
Hola Aldo, el contenido del mensaje,tienes que ponerlo en $smtp->Body!!!

Que valor tienes la variable $mensaje??

Revisa el ejemplo que te indique, ahí se ve muy claro!!!
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

funcion mail()

Publicado por aldo (824 intervenciones) el 05/01/2016 01:12:15
Hola Xve, ya tengo la contraseña y la estoy dejando como variable en $mensaje

esto es parte del codigo:
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
$cadena = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  	 $passw ='';
	 $lng_cadena = strlen($cadena);
	 $longitud = 8;
 
	 	for($x=1;$x<=$longitud;$x++)
		{
		   $aleatorio = mt_rand(0,$lng_cadena-1);
		   $passw = substr($cadena,$aleatorio,1);
		   $mensaje = $passw;
		  // echo $passw;
		}
		$contrasena = "UPDATE usuarios SET usuario_pass = '$passw' WHERE email = '$email'";
		$actualiza = @pg_query($conexion,$contrasena);
		//mail($email,'Cambio de contraseña',"Estimado usuario hemos cambiado de su contraseña",'$passw');
		$smtp=new PHPMailer();
		$smtp->IsSMTP();
		# Definimos el formato del correo con UTF-8 
		$smtp->CharSet="UTF-8";
		//$smtp->SMTPDebug = 1;
		# autenticación contra nuestro servidor smtp
		$smtp->SMTPAuth = true; // enable SMTP authentication
		$smtp->SMTPSecure = "tls";
		$smtp->Host = "smtp.live.com"; // sets MAIL as the SMTP server
		$smtp->Username = $de; // MAIL username
		$smtp->Password = "6666666"; // MAIL password
		$smtp->Port = 587;
 
        $para1 = $email;
        $nameTo = $para1;
 		$smtp->AddAddress($nameTo);
		$smtp->Subject = $asunto;
		$smtp->Body = $mensaje;
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

funcion mail()

Publicado por carlos Mario (18 intervenciones) el 05/01/2016 01:50:21
Hola aldo, estas enviando un solo carácter como contraseña??

$passw = substr($cadena,$aleatorio,1);
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

funcion mail()

Publicado por aldo (824 intervenciones) el 05/01/2016 01:56:02
Hola Carlos esta linea de codigo:
1
echo $passw = substr($cadena,$aleatorio,1);

imprime esto:

0DQt29UG es decir si se esta creando el aleatorio.

Fijate este es el codigo que crea el aleatorio:

1
2
3
4
5
6
7
8
9
$cadena = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  	 $passw ='';
	 $lng_cadena = strlen($cadena);
	 $longitud = 8;
 
	 	for($x=1;$x<=$longitud;$x++)
		{
		   $aleatorio = mt_rand(0,$lng_cadena-1);
		  echo $passw = substr($cadena,$aleatorio,1);
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