PHP - como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

   
Vista:

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 26/01/2016 21:12:25
Yendo al grano:

¿como se puede configurar la clase PHPMailer para enviar cualquier cuenta de correo, Hotmail, Gmail, etc.?
¿o acaso habría que descargar la ultima version de dicha clase?
la idea es pedir una contraseña aleatoria para cualquier cuenta de correo

NOTA: En este caso estoy utilizando mi cuenta de hotmail

Este es el formulario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!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=iso-8859-1" />
<title>CONSULTA DE CITAS</title>
 
</head>
<body>
<form action="generarcontrasena.php" method='POST'>
		<label>Email:</label>
		<input type="email" name="email" /><br /><br  /><br /><br  /><br /><br  /><br />
		<input type="submit" value="Recuperar Contraseña" /><br  /><br />
  <?php
  error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
	if(isset($_POST["respuesta"])){
	   echo "<span>".$_POST["respuesta"] ."</span>";
	}
  ?>
</form>
</body>
</html>


Este es el codigo que crea el aleatorio:

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
<?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);
				$passw .= substr($cadena,$aleatorio,1);
				$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 = $email; // MAIL username
				$smtp->Password = "*******"; // MAIL password
				$smtp->Port = 587;
                $smtp->SetFrom('alecuello84@hotmail.com', 'First Last');
            	$smtp->From = "alecuello84@hotmail.com";
				# datos de quien realiza el envio
				$smtp->FromName = "Alejandro"; // from mail name
				# Indicamos la dirección donde enviar el mensaje
				$para1= $email;
				//$nameTo=$para1;
				$smtp->AddAddress($email);
 
                $smtp->ConfirmReadingTo = $email;
              //  $smtp->addRecipient($email);
				//$smtp->AddBCC($addcco,$nameTo);
				$smtp->Subject = $passw;
			    $smtp->Body = $passw;
				$smtp->WordWrap = 50;
				$smtp->Timeout=50;
				$smtp->IsHTML(true);
                $smtp->MsgHTML($passw);
 
//            	$smtp->AddAttachment($destino, $_FILES["archivo_fls"]["name"]);
 
     }
				   if (!$smtp->Send())
					  {
						$respuesta ="El mensaje no se pudo enviar";
					echo $respuesta .="Error: " .$smtp->ErrorInfo;
					  }
				   else
					  {
						$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 pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de PHP
- Código fuente de PHP
- Cursos de PHP
- Temas de PHP
- Chat de PHP
información
Códigos de PHP
- Chat
- Contador de visitas
- Navegador de MySQL
Imágen de perfil de xve

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por xve (5522 intervenciones) el 27/01/2016 08:00:02
Hola Aldo, la clase phpmailer, envia correos a cualquier cuenta de correo que exista, siempre y cuando los datos del correo de la persona que los envia sean correctos.

En tu caso, creo que no lo son, porque tienes puesto esto:
1
2
$smtp->Username = $email; // MAIL username
$smtp->Password = "*******"; // MAIL password

Y aqui tendria que ir el usuario de tu cuenta de correo y tu contraseña, no el correo que ponen en el formulario.

Coméntanos, ok?
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 27/01/2016 14:30:56
Hola xve, por supuesto estoy de acuerdo contigo, ya la he cambiado pero funciona para una sola cuenta.

Este formulario esta diseñado para que varios usuarios puedan acceder al sistema, es para la mayor seguridad. Cada cuenta de correo esta en una base de datos la cual se valida, si la encuentra crea el aleatorio y se modifica en la tabla de postgresql y la envia a su correo.

Para el momento por supuesto la esta haciendo pero para solo un usuario, la cual es mi cuenta de correo: cuelloa70@gmail.com la cual viene del formulario con
1
$email
y la contraseña para esta es:111111 la cual no funciona para estas otras cuentas: alecuello84@hotmail.com, azze@hotmail.com, lopez@hotmail.com, cuelloa70@gmail.com.


Lo que no logro hacer es que funcione para todas las cuentas de correo, la idea es que este codigo se pueda adaptar a cualquier cuenta de correo.

que me sugerirías?
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por xve (5522 intervenciones) el 27/01/2016 15:11:49
Hola Aldo, o pones la misma contraseña a todas las cuentas de correo, o tendrás que obtener la contraseña de una base de datos...

Lo que esta claro, es que si la contraseña es incorrecta, no vas a poder enviar correo.
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 27/01/2016 16:21:40
Hola Xve, supon que tu fueras un nuevo usuario que usara ese formulario, habría que colocar tu contraseña en el codigo y no es lógico, la clase PHPMailer debiera ser flexible, cuando hayas olvidado tu contraseña irias al enlace ¿Olvido su contraseña? y con un simple click la obtendrias solo con enviar tu cuenta de correo a través del formulario.

Entonces habria un codigo inmenso con cuentas de correo y contraseñas.

He investigado bastante dentro de la Clase pero no veo una soluciòn, He visto muchos videotutoriales y tampoco.
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por xve (5522 intervenciones) el 27/01/2016 16:50:04
Exactamente que quieres hacer, que los usuarios puedan recordar la contraseña???

Haber...

La cuenta de envío del mensaje, siempre tiene que ser la tuya, tu correo y tu contraseña, si no, no vas a poder enviar el correo.
No querrás utilizar el servidor de correo del usuario que te pone su correo para recordar la contraseña, no?

La clase phpmailer envía correos desde una cuenta de correo valida, con su usuario y contraseña. si en esta web, vas a recordar tu contraseña, veras que no la envía desde tu cuenta de correo, sino de una cuenta de correo de lawebdelprogramador.

Yo creía que era para realizar envío de usuario de tu empresa, o algo privado.

No se si me he sabido explicar...
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por zendi (824 intervenciones) el 27/01/2016 17:26:42
Bueno por ejemplo la webdelprogramador tiene esa bondad, permite que cualquier usuario de la pagina logre obtener su contraseña si la olvidó por supuesto.

la webdelprogramador tiene esto:Si no recuerdas tu contraseña haz clic aquí. una vez que la envía aparece este mensaje:

ENVIADA NUEVA CONTRASEÑA
La contraseña ha sido enviada a tu cuenta de correo


No es para ninguna empresa, es para un sistema en cual hay algunos usuarios que manejan este formulario:

recuperar
luego este dirige al formulario donde el usuario enviara su cuenta de correo:

email el cual creará el aleatorio y lo enviara a su cuenta y a su base de datos.
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 28/01/2016 15:16:22
Hola Xve, te pregunto: ¿Ahora si pude explicarme mejor? ¿Tienes alguna idea para esto?
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por xve (5522 intervenciones) el 28/01/2016 17:20:29
Hola Aldo, es lo que te comente... el usuario que envia el correo siempre tienes que ser el tuyo, no puede ser nunca el del cliente.

El del cliente o usuario tiene que estar como correo de destino únicamente!!
1
$smtp->AddAddress($email); // aqui el correo del destinatario

Aquí tu correo con tu contraseña:
1
2
$smtp->Username = $email; // tu correo
$smtp->Password = "*******"; // tu contraseña
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 28/01/2016 17:54:39
Hola Xve, una pregunta: ¿Entonces como desarrollaron el formulario donde todos los usuarios que deseen pedir su contraseña olvidada a través de la webdelprogramador? Yo la he solicitado cuando la he olvidado, y asi como muchos otros que tal vez la hayan olvidado?

Creo que es sumamente lógica esta pregunta.

Por cierto ayer mismo solicité una contraseña nueva con mi cuenta de correo por la webdelprogramador.
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 28/01/2016 19:58:25
Entonces con PHPMailer no hay manera de hacerlo, aun cuando es mas completa que la funcion 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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 29/01/2016 02:56:23
hola Xve, Entonces que podría decirme al respecto?
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por xve (5522 intervenciones) el 29/01/2016 08:33:13
Hola Aldo, creo que tienes un problema de concepto...

phpmailer, para realizar los envíos, utiliza un servidor de correo real, con usuario y contraseña. La instrucción mail() no utiliza ningún servidor de correo, por eso muchos de esos correos no llegan, al no pasar algunos filtros de antispam.

La web del programador, cuando solicitas la contraseña, el envío lo hacen con una cuenta de la web del programador, con su contraseña... fíjate quien te envía el correo??

Prueba lo que te comente en el anterior correo.
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

como enviar cualquier cuenta de correo, Hotmail, Gmail, etc.

Publicado por aldo (824 intervenciones) el 29/01/2016 13:08:04
Hola xve. Bueno Entonces podrias ayudarme con el codigo?

Solo que no te colocaría la contraseña de mi correo.

tampoco estas obligado a hacerlo

Y disculpa el abuso.

esta es mi cuenta de correo: alecuello84@hotmail.com
Este es mi 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
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
<?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);
				$passw .= substr($cadena,$aleatorio,1);
				$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 = $email; // MAIL username
				$smtp->Password = "********"; // MAIL password
				$smtp->Port = 587;
                $smtp->SetFrom('alecuello84@hotmail.com', 'First Last');
            	$smtp->From = "alecuello84@hotmail.com";
				# datos de quien realiza el envio
				$smtp->FromName = "Alejandro"; // from mail name
				# Indicamos la dirección donde enviar el mensaje
				$para1= $email;
				//$nameTo=$para1;
				$smtp->AddAddress($email);
 
                $smtp->ConfirmReadingTo = $email;
              //  $smtp->addRecipient($email);
				//$smtp->AddBCC($addcco,$nameTo);
				$smtp->Subject = $passw;
			    $smtp->Body = $passw;
				$smtp->WordWrap = 50;
				$smtp->Timeout=50;
				$smtp->IsHTML(true);
                $smtp->MsgHTML($passw);
 
//            	$smtp->AddAttachment($destino, $_FILES["archivo_fls"]["name"]);
 
     }
				   if (!$smtp->Send())
					  {
						$respuesta ="El mensaje no se pudo enviar";
					echo $respuesta .="Error: " .$smtp->ErrorInfo;
					  }
				   else
					  {
						$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