<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Phpmailer_library {

    private $objMail;

    public function __construct() {

        require_once(APPPATH . "third_party/class.phpmailer.php");
        require_once(APPPATH . "third_party/class.smtp.php");

        set_time_limit(0);
    }

    public function enviar($smtp, $usuario, $senha, $assunto, $html, $instituicao, $email) {
        //Nova instância do PHPMailer  

       //Nova instância do PHPMailer  

        $mail = new PHPMailer;

        //Informa que será utilizado o SMTP para envio do e-mail  

        $mail->IsSMTP();

        //Informa que a conexão com o SMTP será autênticado  

        $mail->SMTPAuth = true;

        //Configura a segurança para SSL  

        $mail->SMTPSecure = "ssl";

        //Informa a porta de conexão do GAMIL  

        $mail->Port = 465;

        //Informa o HOST do GMAIL  

        $mail->Host = $smtp;      // sets GMAIL as the SMTP server  
        //Usuário para autênticação do SMTP  

        $mail->Username = $usuario;

        //Senha para autênticação do SMTP  

        $mail->Password = $senha;

        //Titulo do e-mail que será enviado  

        $mail->Subject = $assunto;

        //Preenchimento do campo FROM do e-mail  

        $mail->Sender = $mail->Username;

        $mail->From = $mail->Username;

        $mail->FromName = $instituicao;

        //E-mail para a qual o e-mail será enviado  

        $mail->AddAddress($email);

        //Conteúdo do e-mail  

        $mail->Body = $html;

        $mail->CharSet = 'utf8';

        $mail->AltBody = $mail->Body;

        //Dispara o e-mail  

        $enviado = $mail->Send();
        
        if (!$enviado) {
            return false;
        } else {
            return true;
        }
        
    }

    public function send($smtp_server, $para, $assunto, $corpo, $de) {

        $this->objMail = new PHPMailer;

        //setando para autorizar
        $this->objMail->SMTPAuth = true;

        //setando a porta
        $this->objMail->Port = 587;

        //ligando o SMTP debug
        $this->objMail->SMTPDebug = 0;

        //setando o phpmailer para usar SMTP
        $this->objMail->isSMTP();
        //setando tipo de segurança
        $this->objMail->SMTPSecure = "tls";
        //configurando o dominio
        $this->objMail->Host = $smtp_server->getServidor_smtp_dominio();

        //configura o nome de usuário
        $this->objMail->Username = $smtp_server->getServidor_smtp_usuario();

        //configurando a senha
        $this->objMail->Password = $smtp_server->getServidor_smtp_senha();

        //email de origem
        $this->objMail->setFrom($smtp_server->getServidor_smtp_email(), $de);
        //$this->objMail->setFrom($de);
        //configurando o destinatário
        $para_name = explode('@', $para);


        $this->objMail->addAddress($para, $para_name[0]);

        //configura o asunto do e-mail
        $this->objMail->Subject = $assunto;

        //configura o corpo do e-mail     
        $this->objMail->msgHTML($corpo);

        $status = $this->objMail->send();
        $this->objMail->SmtpClose();

        if (!$status) {
            return false;
        } else {
            return true;
        }
    }

}
