<?php
date_default_timezone_set('America/Lima');

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

include 'app/model/conexion.php';

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';

$IdEncuesta = $_REQUEST["IdEncuesta"];
$IdEvento = $_REQUEST["IdEvento"];
$CorreoNube = "";
$ContraNube = "";
$contraSms = "";
$CuentaSms = "";
$Hostsmtp = "";
//$encuesta = "http://192.168.1.84/opinometro/#/EncuestaUsu?Idencuesta=$IdEncuesta";
$encuesta = "";
if ($IdEncuesta == 8) {
    $encuesta = "http://192.168.1.84/opinometro/#/EncuestaDefecto?Idencuesta=$IdEncuesta&IdEvento=$IdEvento";
} else {
    $encuesta = "http://192.168.1.84/opinometro/#/EncuestaUsu?Idencuesta=$IdEncuesta&IdEvento=$IdEvento";
}

$datosnube = DevolverUnArreglo("select * from configcorreosms");


foreach ($datosnube as $value) {
    $CorreoNube = $value['Correo'];
    $ContraNube = $value['Contrasena'];
    $contraSms = $value['KeySms'];
    $CuentaSms = $value['UserSms'];
    $Hostsmtp = $value['Hostsmtp'];
}
$datospersona = DevolverUnArreglo("SELECT personas.* FROM confirmacionevento JOIN personas ON (confirmacionevento.IdPersona = personas.IdPersona) WHERE IdEvento = $IdEvento AND Estado = 'CONFIRMADO'");

foreach ($datospersona as $value) {
    EnviarCorreo($value['Correo1']);
    EnviarMensajeTexto($value['Celular']);
}

function EnviarCorreo($Correolocal) {
    global $CorreoNube, $ContraNube, $CuentaSms, $contraSms, $Hostsmtp, $IdEncuesta, $encuesta;
    try {
        $mail = new PHPMailer(true);
        //Server settings
        $mail->SMTPDebug = 2;                                 // Enable verbose debug output
        $mail->isSMTP();                                      // Set mailer to use SMTP
//    $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
        $mail->CharSet = 'UTF-8';
        $mail->Host = "smtp.gmail.com";
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $mail->Username = $CorreoNube;                 // SMTP username
//    $mail->Username
        $mail->Password = $ContraNube;                           // SMTP password
        $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = 587;                                    // TCP port to connect to
        //Recipients 
        $mail->setFrom($CorreoNube, 'Cámara de Comercio de Cartago');
        $mail->addAddress($Correolocal, '');     // Add a recipient
//    $mail->addAddress('ellen@example.com');               // Name is optional
//    $mail->addReplyTo('jesusandres548@gmail.com','Jesus andres gonzalez alarcon');
//    $mail->addCC('cc@example.com'); 
//    $mail->addBCC('bcc@example.com');
        //Attachments
//    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
        //Content
        $imagenIngetronik = "https://images.pastatic.com/Content/LogosAdvertisements/15715839/7-7137.jpg";
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = 'ENCUESTA ELECTRONICA';
        $mail->Body = "<html>" .
                "<head>" .
                "    <title>TODO supply a title</title>" .
                "  <meta charset=\"UTF-8\">" .
                "  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">" .
                "</head>" .
                "<body style=\"font-family:'Century Gothic'\">" .
                "<div>" .
                "<center><h1>ENCUESTA ELECTRONICA CAMARA DE COMERCIO DE CARTAGO</h1></center> " .
                "</div>" .
                "<div>" .
                "  <h4><b>ACONTINUACION ENCONTRARA UN LINK PARA ACCEDER A LA ENCUESTA Y RECIBIR SU CERTIFICADO</b></h4>" .
                "  <br>" .
                "  <h4><b>$encuesta</b></h4>" .
                "  <br>" .
                " <h4>GRACIAS POR LA ATENCION PRESTADA</h4>" .
                "</div>" .
                "  <div>" .
                "   <hr/>" .
                "  <center> <img src=\"" . $imagenIngetronik . "\"  width=\"130\" height=\"70\"> </center><br>" .
                "   <center> <a href=\"www.ingetronik.com\">www.ingetronik.com</a>  </center>" .
                " </div>" .
                " </body>" .
                "</html>";
        //$mail->AltBody = 'Digame ingeniero';
        $mail->send();
//        echo 'Message has been sent';
    } catch (Exception $exc) {
//        echo 'Message could not be sent.';
//        echo 'Mailer Error: ' . $mail->ErrorInfo;
    }
}

function EnviarMensajeTexto($Telefonolocal) {
    global $CorreoNube, $ContraNube, $CuentaSms, $contraSms, $IdEncuesta, $encuesta;
    $url = 'https://www.cellvoz.com/APIlib/SMSAPI.php';
    $data = array('user' => $CuentaSms, 'key' => $contraSms, 'num' => '57' . $Telefonolocal, 'sms' => "ENCUESTA ELECTRONICA CAMARA DE COMERCIO DE CARTAGO, LINK: " . $encuesta . "");
//    $data = array('user' => $CuentaSms, 'key' => $contraSms, 'num' => '57' . $Telefonolocal, 'sms' => "Alerta Calificación negativa, sede: " . $Sede . ", Usuario: " . $Asesor . ", Módulo: " . $Modulo . ", Nombre Asesor: " . $NombreAsesor . ", Fecha: $fechasuceso");
    // use key 'http' even if you send the request to https://... 
    $options = array(
        'http' => array(
            'header' => "Content-type: application/x-www-form-urlencoded",
            'method' => 'POST',
            'content' => http_build_query($data)
    ));
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    if ($result === FALSE) {
//        echo "ERROR envio de mensaje de texto";
    }
    var_dump($result);
}

$validar = array('respuesta' => 'Enviado Correctamente');
echo json_encode($validar, JSON_FORCE_OBJECT);
?>

<!--HttpClient cliente = new HttpClient();
                HttpResponseMessage response = await cliente.GetAsync("http://localhost/Mensajeria/SMS.php?Asesor=Duvan&Nombre=Duvan%20Monsalve&Modulo=1&Sede=CARTAGO");
                response.EnsureSuccessStatusCode();
                MessageBox.Show("ready");-->