PHP - como crear codigo para enviar correo de gmail a hotmail

 
Vista:
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 05/07/2019 18:03:13
Que tal a todos, he creado este codigo para enviar mensajes de correo de Hotmail a Hotmail y de Hotmail a Gmail y tambien envia a Yahoo, pero como pudiera adaptarlo para que se envien mensajes de Gmail y o cualquier otro como Yahoo tambien?

La idea es que el codigo sea generico; es decir que con cualquier cuenta de Correo pueda enviarse mensajes.
El funciona muy bien pero con otros correos no.
Este es el 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
<?php
set_time_limit(500);
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
$email_user = "usaurio@gmail.com";
$email_password = "password";
$the_subject = "Prueba";
$address_to = "destino@hotmail.com";
$from_name = "Damian";
$phpmailer = new PHPMailer();
// ---------- datos de la cuenta de Gmail -------------------------------
$phpmailer->Username = $email_user;
$phpmailer->Password = $email_password;
//-----------------------------------------------------------------------
$phpmailer->SMTPDebug = 1;
$phpmailer->SMTPSecure = 'ssl';
$phpmailer->Host = "smtp.gmail.com"; // GMail
$phpmailer->Port = 465;
$phpmailer->IsSMTP(); // use SMTP
$phpmailer->SMTPAuth = true;
$phpmailer->setFrom($phpmailer->Username,$from_name);
$phpmailer->AddAddress($address_to); // recipients email
$phpmailer->Subject = $the_subject;
$phpmailer->Body .="<h1 style='color:#3498db;'>Hola Mundo!</h1>";
$phpmailer->Body .= "<p>Mensaje personalizado</p>";
$phpmailer->Body .= "<p>Fecha y Hora: ".date("d-m-Y h:i:s")."</p>";
$phpmailer->IsHTML(true);
$phpmailer->Send();
   if (!$phpmailer->Send())
      {
  	    $respuesta ="El mensaje no se pudo enviar";
		$respuesta .="Error: " .$phpmailer->ErrorInfo;
      }
   else
      {
        $respuesta ="El mensaje ha sido enviado";
      }
   header("Location:cosmito.php?respuesta=$respuesta");
?>
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

como crear codigo para enviar correo de gmail a hotmail

Publicado por Mauro (1036 intervenciones) el 06/07/2019 16:27:49
Para empezar, no pongas tus datos de acceso en un foro público :p

Después, ¿qué error estás viendo?
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
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 07/07/2019 23:50:15
Hola Mauro, bueno son datos totalmente ficticios, yo estoy claro en eso de todos modos gracias por tu advertencia.
El codigo funciona muy bien con Gmail, pero no funciona con Hotmail.
MI pregunta es: como se haria para discriminar en el codigo para que cuando se envie con Hotmail envie el mensaje.
cuando cambio los parametros para hotmail, me da el anuncio de que el mensaje no se pudo enviar.
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como crear codigo para enviar correo de gmail a hotmail

Publicado por José Manuel (62 intervenciones) el 08/07/2019 14:24:12
No me queda del todo claro lo que necesitas pero:

1
2
3
if (preg_match('/(.*)@(hotmail)\.(.*)/', $email_user) != false) {
    echo 'Hotmail no envía nadaaa...';
}

Tampoco sé si has probado a cambiar el puerto que en Hotmail y Live es: $phpmailer->Port = 587 y $phpmailer->SMTPSecure = 'tls'. A ver que tal.
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

como crear codigo para enviar correo de gmail a hotmail

Publicado por Mauro (1036 intervenciones) el 08/07/2019 15:09:46
Pensaba en algo similar... hay que ver primero que nada si hotmail permite usar sus servidores a modo de SMTP...

Lo que no termino de entender es si tu problema es para usar hotmail como remitente o como destinatario de tus mails...
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
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 08/07/2019 22:32:23
hotmail es como destinatario, y como remitentes pudieran ser tanto hotmail y gmail o yahoo, me explico de esta manera:
La idea es que el codigo permita que con Gmail se pueda comunicar como remitente, porque solo lo esta haciendo con hotmail.
y cada vez que envio un mensaje con Gmail, me da el mensaje de que no se puede enviar el menaje.

Este es el 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
set_time_limit(500);
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
//error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];//cta de correo al que va dirigido el mensaje.
$password = $_POST['passw'];
$nombres = $_POST['nombres'];
var_dump($nombres);
$asunto = $_POST["asunto_txt"];
$addcco = $_POST["cco_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$adjunto = chunk_split(base64_encode(file_get_contents($archivo)));
$destino = $_FILES["archivo_fls"]["name"];
$mensaje = $_POST["mensaje_txa"];
copy($_FILES["archivo_fls"]["tmp_name"],$_SERVER['DOCUMENT_ROOT']."/archivos/".$_FILES["archivo_fls"]["name"]);
copy($_FILES["archivo_fls"]["tmp_name"],"archivos/".$_FILES["archivo_fls"]["name"]);
 
 
$smtp=new PHPMailer();
$smtp->IsSMTP();
$smtp->CharSet="UTF-8";
if($para =='@hotmail.com') {
      //$smtp->SMTPDebug = 1;
      # autenticación contra nuestro servidor smtp
      $smtp->SMTPAuth = true; // enable SMTP authentication
      $smtp->SMTPSecure = "tls";
      $smtp->SMTPDebug = 0;
      $smtp->Host = "smtp.live.com"; // sets MAIL as the SMTP server
      $smtp->Username = $de; // MAIL username
      $smtp->Password = $password;
 
//              $smtp->Password = "hL13=*-W"; // MAIL password
      $smtp->Port = 587;
      # datos de quien realiza el envio
      $smtp->From = $de; // from mail
      $smtp->FromName = "Alejandro"; // from mail name
      # Indicamos la dirección donde enviar el mensaje
      $para1= $para;
      $nameTo=$para1;
 
      $smtp->AddAddress($para1,utf8_decode($nameTo));
      //$smtp->AddBCC($addcco,$nameTo);
      $smtp->Subject = $asunto;
      $smtp->Body = $mensaje;
      $smtp->WordWrap = 50;
      //$smtp->Timeout=50;
      $smtp->IsHTML(true);
      $smtp->MsgHTML($mensaje);//
      $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
      if (!$smtp->Send())
        {
            $respuesta ="El mensaje no se pudo enviar";
        $respuesta .="Error: " .$mail->ErrorInfo;
        }
      else
        {
          $respuesta ="El mensaje ha sido enviado";
        }
      header("Location:correomail.php?respuesta=$respuesta");
}
else
{
      //$smtp->SMTPDebug = 1;
      # autenticación contra nuestro servidor smtp
 
      $smtp->SMTPSecure = 'ssl';
      $smtp->Host = "smtp.gmail.com"; // GMail
      $smtp->Port = 465;
      $smtp->IsSMTP(); // use SMTP
      $smtp->SMTPAuth = true;
      $smtp->Username = $de; // MAIL username
      $smtp->Password = "hL13=*-W"; // MAIL password
      $smtp->Port = 587;
      # datos de quien realiza el envio
      $smtp->From = $de; // from mail
      $smtp->FromName = "Alejandro"; // from mail name
      # Indicamos la dirección donde enviar el mensaje
      $para1= $para;
      $nameTo=$para1;
      $smtp->AddAddress($para1,utf8_decode($nameTo));
      //$smtp->AddBCC($addcco,$nameTo);
      $smtp->Subject = $asunto;
      $smtp->Body = $mensaje;
      $smtp->WordWrap = 50;
      //$smtp->Timeout=50;
      $smtp->IsHTML(true);
      $smtp->MsgHTML($mensaje);//
      $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
      if (!$smtp->Send())
        {
          $respuesta ="El mensaje no se pudo enviar";
       $respuesta .="Error: " .$mail->ErrorInfo;
        }
      else
        {
          $respuesta ="El mensaje gmail ha sido enviado";
        }
      header("Location:correomail.php?respuesta=$respuesta");
}
?>
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
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 08/07/2019 22:34:21
Hola Jose Manuel eso esta en PHP? esas son expresiones regulares, pero no se podria realizar con substr() u otra funcion?
la idea es sacar de la cadena cuenta de correo [email protected] solo @hotmail.com o @gmail.com.
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como crear codigo para enviar correo de gmail a hotmail

Publicado por José Manuel (62 intervenciones) el 08/07/2019 22:41:05
Hola. Si, efectivamente es PHP usando expresiones regulares. La función substr extrae la porción de una cadena... ¿otra función? Bueno, puedes construirtela usando substr por ejemplo. Las expresiones regulares son un poco complicadas al principio pero en cuanto le pillas un poco el tema, son potentísimas.
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
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 08/07/2019 22:50:02
Y para este caso como podria hacerlo sin expresiones regulares? Qué funcion de PHP especificamente podria usar para sacar de la cadena esa porcion?
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como crear codigo para enviar correo de gmail a hotmail

Publicado por José Manuel (62 intervenciones) el 08/07/2019 22:57:18
Busca el carácter @ con la función strstr()
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
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 08/07/2019 23:16:23
Estoy de acuerdo Seria algo asi:

1
2
3
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain;

y como se podria discriminar si el remitente es [email protected] o [email protected]. ya que ambos traen la @.
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
sin imagen de perfil

como crear codigo para enviar correo de gmail a hotmail

Publicado por cosmito (51 intervenciones) el 08/07/2019 23:27:21
Fiajte este es el codigo que estoy realizando:
y en negrita estan las preguntas condicionales.
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
set_time_limit(500);
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
//error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];//cta de correo al que va dirigido el mensaje.
$password = $_POST['passw'];
$nombres = $_POST['nombres'];
var_dump($nombres);
$asunto = $_POST["asunto_txt"];
$addcco = $_POST["cco_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$adjunto = chunk_split(base64_encode(file_get_contents($archivo)));
$destino = $_FILES["archivo_fls"]["name"];
$mensaje = $_POST["mensaje_txa"];
copy($_FILES["archivo_fls"]["tmp_name"],$_SERVER['DOCUMENT_ROOT']."/archivos/".$_FILES["archivo_fls"]["name"]);
copy($_FILES["archivo_fls"]["tmp_name"],"archivos/".$_FILES["archivo_fls"]["name"]);
 
 
$smtp=new PHPMailer();
$smtp->IsSMTP();
$smtp->CharSet="UTF-8";
  if ($domain = strstr($de, '@hotmail.com'))
    {
                     //$smtp->SMTPDebug = 1;
                      # autenticación contra nuestro servidor smtp
                      $smtp->SMTPAuth = true; // enable SMTP authentication
                      $smtp->SMTPSecure = "tls";
                      $smtp->SMTPDebug = 0;
                      $smtp->Host = "smtp.live.com"; // sets MAIL as the SMTP server
                      $smtp->Username = $de; // MAIL username
                      $smtp->Password = $password;
 
//                      $smtp->Password = "hL13=*-W"; // MAIL password
                      $smtp->Port = 587;
                      # datos de quien realiza el envio
                      $smtp->From = $de; // from mail
                      $smtp->FromName = "Alejandro"; // from mail name
                      # Indicamos la dirección donde enviar el mensaje
                      $para1= $para;
                      $nameTo=$para1;
 
                      $smtp->AddAddress($para1,utf8_decode($nameTo));
                      //$smtp->AddBCC($addcco,$nameTo);
                      $smtp->Subject = $asunto;
                      $smtp->Body = $mensaje;
                      $smtp->WordWrap = 50;
                      //$smtp->Timeout=50;
                      $smtp->IsHTML(true);
                      $smtp->MsgHTML($mensaje);//
                      $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
                         if (!$smtp->Send())
                            {
                        	    $respuesta ="El mensaje no se pudo enviar";
                      		$respuesta .="Error: " .$mail->ErrorInfo;
                            }
                         else
                            {
                              $respuesta ="El mensaje ha sido enviado";
                            }
                         header("Location:correomail.php?respuesta=$respuesta");
          }
////  en caso de que sea Gmail
        else
          {
                                  //$smtp->SMTPDebug = 1;
                      # autenticación contra nuestro servidor smtp
 
                      $smtp->SMTPSecure = 'ssl';
                      $smtp->Host = "smtp.gmail.com"; // GMail
                      $smtp->Port = 465;
                      $smtp->IsSMTP(); // use SMTP
                      $smtp->SMTPAuth = true;
                      $smtp->Username = $de; // MAIL username
                      $smtp->Password = "hL13=*-W"; // MAIL password
                      # datos de quien realiza el envio
                      $smtp->From = $de; // from mail
                      $smtp->FromName = "Alejandro"; // from mail name
                      # Indicamos la dirección donde enviar el mensaje
                      $para1= $para;
                      $nameTo=$para1;
                      $smtp->AddAddress($para1,utf8_decode($nameTo));
                      //$smtp->AddBCC($addcco,$nameTo);
                      $smtp->Subject = $asunto;
                      $smtp->Body = $mensaje;
                      $smtp->WordWrap = 50;
                      //$smtp->Timeout=50;
                      $smtp->IsHTML(true);
                      $smtp->MsgHTML($mensaje);//
                      $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
                         if (!$smtp->Send())
                            {
                              $respuesta ="El mensaje no se pudo enviar";
                          $respuesta .="Error: " .$mail->ErrorInfo;
                            }
                         else
                            {
                              $respuesta ="El mensaje gmail ha sido enviado";
                            }
                         header("Location:correomail.php?respuesta=$respuesta");
          }
?>
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