PHP - como leer una cadena de una cuenta de correo

 
Vista:
sin imagen de perfil

como leer una cadena de una cuenta de correo

Publicado por cosmito (51 intervenciones) el 08/07/2019 00:14:56
Que tal a todos estoy tratando de condicionar un codigo para enviar mensajes.
como haria para leer en la linea de codigo en negrita la variable para cuando sea para hotmail?
se leeria con substr() o len()? lo he probado con otras funciones tambien pero no arroja el resultado
o debo extraer el sufijo @hotmail.com primeramente?
if($de=='@hotmail.com') {

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
105
106
107
<?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";
 
///para cuando sea Hotmail
  if(substr($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->Port = 587;
      # datos de quien realiza el envio
      $smtp->From = $de; // from mail
      $smtp->FromName = "jose"; // 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");
  }
////////////////////////////////////para cuando 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 = "zzzzz"; // MAIL password
      $smtp->Port = 587;
      # datos de quien realiza el envio
      $smtp->From = $de; // from mail
      $smtp->FromName = "jose"; // 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 pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 76
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

como leer una cadena de una cuenta de correo

Publicado por preguntas (26 intervenciones) el 08/07/2019 02:05:10
Opción 1:

Primero deberías separar la cuanta de correo por "@": https://www.php.net/manual/es/function.explode.php.

Entonces esto te devolverá 2 cadenas en un array. Ejemplo: [0] => micorreo, [1] => hotmail.com

Luego validas si la posición 1 de este array es igual a "hotmail.com", entonces si, es un hotmail ;)

Opción 2:

Con strrpos: https://www.php.net/manual/es/function.strrpos.php.

if(strrpos($tucorreo, "@hotmail.com") !== false) entonces si, es un hotmail ;)
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