<?php
require_once '../padrao/rotinaspadrao.php';
require_once '../config.php';

function AbreBancoMAIL()
{
    $con = new config();
    $ArqT = DB_Connect($con->get_host(), $con->get_login(), $con->get_pass());
    DB_set_charset('utf-8', $ArqT);
    DB_selectdb($con->get_banco(), $ArqT);
    return $ArqT;
}

function getIdUser($ArqT, $idSistema, $idUser, $User)
{
    $sql = "select idUser from usuarios where idSistema=" . $idSistema .
        " and idUserSistema=" . $idUser;
    $Tb = DB_query($sql, $ArqT);
    if (DB_num_rows($Tb) > 0) {
        return DB_result($Tb, 0, 0);
    } else {
        $sql = "insert into usuarios set idSistema=" . $idSistema .
        ", idUserSistema=" . $idUser .
        ", Nome='" . TextoSSql($ArqT, $User) . "'";
        DB_query($sql, $ArqT);
        if (DB_affected_rows($ArqT) > 0) {
            return DB_insert_id($ArqT);
        } else {
            return 0;
        }

    }
}

function Erros($erro)
{
    $ArqT = AbreBancoMAIL();
    $sql = "INSERT INTO erros SET erro='" . TextoSsql($ArqT, $erro) . "', data=Now() ";
    DB_query($sql, $ArqT);

}

function MailSend2($ArqT, $idCliente, $idUser, $conta, $msg, $anexos = [])
{
    require '../PHPMailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->CharSet = 'UTF-8';
    $mail->isSMTP();
    $mail->SMTPDebug = 1;
    $mail->Debugoutput = 'error_log';

    $mail->Host = $conta['smtp'];
    $mail->Port = $conta['porta'];
    $mail->SMTPSecure = $conta['seguranca'];
    $mail->SMTPAuth = ($conta['autenticacao'] ? true : false);

    $mail->Username = $conta['login'];
    $mail->Password = $conta['password'];
    $mail->setFrom($conta['login'], $msg['Remetente']);
    $mail->addAddress($msg['Destinatario'], $msg['Destinatario']);
    $mail->Subject = $msg['Assunto'];
    $mail->Body = $msg['Msg'];
    //$mail->AuthType = 'LOGIN';
    //error_log('AQUI!!!!');
    if ($msg['HTML'] == 1) {
        $mail->IsHTML(true);
    }

    foreach ($anexos as $an) {
        $mail->AddAttachment($an['TmpFile'], $an['Nome']);
    }
    if (!$mail->send()) {
        error_log("erro de envio: ".$mail->ErrorInfo );
        return false;
    } else {
        $sql = "insert into mensagens set idCliente=" . $idCliente .
        ", idUser=" . $idUser . ", Remetente='" . $msg['Remetente'] .
        "', Destinatario='" . $msg['Destinatario'] .
        "', schedule=now(), contexto='" . TextoSSql($ArqT, $msg['Contexto']) .
        "', msg='" . TextoSSql($ArqT, $msg['Msg']) . "', assunto='" .
        TextoSSql($ArqT, $msg['Assunto']) . "', html=" . $msg['HTML'] .
            ", enviada=1, dtenvio=now()";
        DB_query($sql, $ArqT);
        return true;
    }
}

function MailSend3($ArqT, $idCliente, $idUser, $conta, $msg, &$errorMsg, $anexos = [])
{
    require '../PHPMailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->CharSet = 'UTF-8';
    $mail->isSMTP();
    $mail->SMTPDebug = 1;
    $mail->Debugoutput = 'error_log';

    $mail->Host = $conta['smtp'];
    $mail->Port = $conta['porta'];
    $mail->SMTPSecure = $conta['seguranca'];
    $mail->SMTPAuth = ($conta['autenticacao'] ? true : false);

    //$mail->AuthType = 'LOGIN';
    //error_log('AQUI!!!!');

    $mail->Username = $conta['login'];
    $mail->Password = $conta['password'];
    //error_log($conta['login']);
    //error_log($msg['Remetente']);
    $mail->setFrom($conta['login'], $msg['Remetente']);
    $mail->addAddress($msg['Destinatario'], $msg['Destinatario']);
    $mail->Subject = $msg['Assunto'];
    $mail->Body = $msg['Msg'];
    if ($msg['HTML'] == 1) {
        $mail->IsHTML(true);
    }

    foreach ($anexos as $an) {
        $mail->AddAttachment($an['TmpFile'], $an['Nome']);
    }
    if (!$mail->send()) {
        $errorMsg = $mail->ErrorInfo;
        return false;
    } else {
        $sql = "insert into mensagens set idCliente=" . $idCliente .
        ", idUser=" . $idUser . ", Remetente='" . $msg['Remetente'] .
        "', Destinatario='" . $msg['Destinatario'] .
        "', schedule=now(), contexto='" . TextoSSql($ArqT, $msg['Contexto']) .
        "', msg='" . TextoSSql($ArqT, $msg['Msg']) . "', assunto='" .
        TextoSSql($ArqT, $msg['Assunto']) . "', html=" . $msg['HTML'] .
            ", enviada=1, dtenvio=now()";
        DB_query($sql, $ArqT);
        return true;
    }
}

function MAILsend($ArqT, $id, &$errorMsg, $anexos = [])
{
    require '../PHPMailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->CharSet = 'UTF-8';
    $mail->isSMTP();

    $mail->SMTPDebug = 1;
    $mail->Debugoutput = 'error_log';

    $sql = "select m.*, c.*
            from mensagens as m, clientes as c
            where m.idCliente=c.idCliente
            and m.idMensagem=" . $id;

    $Tb = DB_query($sql, $ArqT);

    if (DB_num_rows($Tb) > 0) {
        $r = DB_fetch_assoc($Tb);
        $mail->Host = $r['smtp'];
        $mail->Port = $r['porta'];
        $mail->SMTPSecure = $r['seguranca'];
        $mail->SMTPAuth = ($r['autenticacao'] ? true : false);
        $mail->Username = $r['login'];
        $mail->Password = $r['password'];
	
	//$mail->AuthType = 'LOGIN';
        //error_log('AQUI!!!!');

        $mail->setFrom($r['login'], $r['Remetente']);
        $mail->addAddress($r['Destinatario'], $r['Destinatario']);

        //copias e copias ocultas
        $sql = "select *
            from copias
            where idMensagem=" . $id;

        $TbCC = DB_query($sql, $ArqT);

        if (DB_num_rows($TbCC) > 0) {
            while ($linhaCC = DB_fetch_assoc($TbCC)) {
                if ($linhaCC['oculta'] == '1') {
                    $mail->AddBCC($linhaCC['copia']);
                } else {
                    $mail->AddCC($linhaCC['copia']);
                }
            }
        }

        $mail->Subject = $r['assunto'];
        $mail->Body = $r['msg'];

        if ($r['html'] == 1) {
            $mail->IsHTML(true);
        }

        foreach ($anexos as $an) {
            $mail->AddAttachment($an['TmpFile'], $an['Nome']);
        }

        if (!$mail->send()) {
            $errorMsg = $mail->ErrorInfo;
            return false;
        } else {
            $sql = "update mensagens set enviada=1, dtenvio=now() where idMensagem=" . $id;
            DB_query($sql, $ArqT);
            return true;
        }
    } else {
        $errorMsg = "Registro BD nao encontrado";
        return false;
    }

}
