<?php
require_once 'mailcrio.php';
session_start();
switch ($_SERVER['REQUEST_METHOD']) {
    case 'POST':

        $dados = filter_input_array(INPUT_POST, array(
            'idCliente' => FILTER_VALIDATE_INT,
            'Cliente' => FILTER_SANITIZE_STRING,
            'cnpj' => FILTER_SANITIZE_STRING,
            'chave' => FILTER_SANITIZE_STRING,
            'idSistema' => FILTER_VALIDATE_INT,
            'idUnidade' => FILTER_VALIDATE_INT,
            'idUserSistema' => FILTER_VALIDATE_INT,
            'User' => FILTER_SANITIZE_STRING,
            'Contexto' => FILTER_SANITIZE_STRING,
            'Remetente' => FILTER_SANITIZE_STRING,
            'Destinatario' => FILTER_SANITIZE_STRING,
            'Copia' => FILTER_FLAG_NONE,
            'CopiaOculta' => FILTER_FLAG_NONE,
            'Assunto' => FILTER_SANITIZE_STRING,
            'Msg' => FILTER_FLAG_NONE,
            'HTML' => FILTER_VALIDATE_INT,
            'Anexos' => FILTER_FLAG_NONE,
            'Conta' => FILTER_FLAG_NONE,
        ));
        header("HTTP/1.1 200 OK");
        $conta = json_decode($dados['Conta'], true);
        $a = json_decode($dados['Anexos']);

        if (sizeof($dados) != 18) {
            echo json_encode(array('st' => '0', 'msg' => '1ERRO'));
        } else {
            //verifica os valores dos campos
            $ArqT = AbreBancoMAIL();

            //VERIFICAÇÃO DE CONTA
            if ($dados['idUnidade'] > 0) {
                $sql = "select * from clientes where idSistema=" . $dados['idSistema'] . "
                    and idUnidade=" . $dados['idUnidade'] . " and cnpj='" . $dados['cnpj'] . "' and md5(concat('parangamico',cnpj))='" . $dados['chave'] . "'";
            } else {
                $sql = "select * from clientes where idCliente=" . $dados['idCliente'] .
                    " and cnpj='" . $dados['cnpj'] .
                    "' and md5(concat('parangamico',cnpj))='" . $dados['chave'] . "'";
            }

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

            if (DB_num_rows($Tb) == 0 && strlen($dados['Cliente']) <= 1) {
                echo json_encode(array('st' => '0', 'msg' => '2ERRO'));
            } else {
                if (DB_num_rows($Tb) == 0) {
                    $sql = "INSERT INTO clientes
                            SET Ativo = 1, Cliente = '" . $dados['Cliente'] . "',
                                CNPJ = '" . $dados['cnpj'] . "',
                                Chave = '" . $dados['chave'] . "',
                                idClienteKurzy = 0,
                                smtp = '" . $conta['smtp'] . "',
                                login = '" . $conta['login'] . "',
                                password = '" . $conta['password'] . "',
                                porta = '" . $conta['porta'] . "',
                                seguranca = '" . $conta['seguranca'] . "',
                                autenticacao = " . $conta['autenticacao'] . ",
                                idSistema = " . $dados['idSistema'] . ",
                                idUnidade = " . $dados['idUnidade'];
                    DB_query($sql, $ArqT);
                    $idCliente = DB_insert_id($ArqT);
                } else {
                    $r = DB_fetch_assoc($Tb);
                    $idCliente = $r['idCliente'];

                    if ($dados['idUnidade'] > 0) {
                        $sql = "UPDATE clientes
                                SET smtp = '" . $conta['smtp'] . "',
                                    login = '" . $conta['login'] . "',
                                    password = '" . $conta['password'] . "',
                                    porta = '" . $conta['porta'] . "',
                                    seguranca = '" . $conta['seguranca'] . "',
                                    autenticacao = " . $conta['autenticacao'] . "
                                WHERE idUnidade = " . $dados['idUnidade'] . " AND idSistema = " . $dados['idSistema'];

                        DB_query($sql, $ArqT);
                    }
                }

                $idUser = getIdUser($ArqT, $dados['idSistema'], $dados['idUserSistema'], $dados['User']);

                $sql = "insert into mensagens set idCliente=" . $idCliente . //$dados['idCliente'] .
                ", idUser=" . $idUser . ", Remetente='" . $dados['Remetente'] .
                "', Destinatario='" . $dados['Destinatario'] .
                "', schedule=now(), contexto='" . TextoSSql($ArqT, $dados['Contexto']) .
                "', msg='" . TextoSSql($ArqT, $dados['Msg']) . "', assunto='" .
                TextoSSql($ArqT, $dados['Assunto']) . "', html=" . $dados['HTML'];

                DB_query($sql, $ArqT);

                if (DB_affected_rows($ArqT) > 0) {
                    $idMsg = DB_insert_id($ArqT);
                    //cópias
                    $cc = json_decode($dados['Copia']);
                    if (is_array($cc)) {
                        foreach ($cc as $c) {
                            if (is_array($c)) {
                                $copia = $c[0];
                                $copiaNome = $c[1];
                            } else {
                                $copia = $c;
                                $copiaNome = '';
                            }
                            if (trim($copia) != '') {
                                $sql = "insert into copias set idMensagem=" . $idMsg . ",
                                        copiaNome='" . $copiaNome . "',
                                        copia='" . $copia . "', oculta=0";

                                DB_query($sql, $ArqT);
                            }
                        }
                    }

                    //cópias ocultas
                    $cco = json_decode($dados['CopiaOculta']);
                    if (is_array($cco)) {
                        foreach ($cco as $c) {
                            if (is_array($c)) {
                                $copia = $c[0];
                                $copiaNome = $c[1];
                            } else {
                                $copia = $c;
                                $copiaNome = '';
                            }
                            if (trim($copia) != '') {
                                $sql = "insert into copias set idMensagem=" . $idMsg . ",
                                        copiaNome='" . $copiaNome . "',
                                        copia='" . $copia . "', oculta=1";

                                DB_query($sql, $ArqT);
                            }
                        }
                    }

                    $anexos = array();
                    if (sizeof($a) > 0) {
                        foreach ($a as $fl) {
                            $ext = strtolower(end(explode('.', $fl->Nome)));
                            $tmpF = tempnam(sys_get_temp_dir(), 'attache_');
                            $wh = fopen($tmpF, 'wb');
                            $n = fwrite($wh, ($ext != 'txt' ? utf8_decode($fl->Conteudo) : $fl->Conteudo));
                            fclose($wh);
                            $anexos[] = array('Nome' => $fl->Nome, 'TmpFile' => $tmpF);
                        }
                    }

                    //enviar
                    $errorMsg = '';
			//MailSend3($ArqT, $idCliente, $idUser, $conta, $msg, &$errorMsg, $anexos = [])
                    if (MAILsend($ArqT, $idMsg, $errorMsg, $anexos)){
                        echo json_encode(array('st' => '1', 'msg' => 'OK'));
                    } else {
                        echo json_encode(array('st' => '0', 'msg' => '3ERRO:'.$errorMsg));
                    }

                } else {
                    echo json_encode(array('st' => '0', 'msg' => '4ERRO'));
                }

            }
            //--------------------

            DB_close($ArqT);
        }
        break;

}
//echo 'OK';
