<?php

namespace app\extensions;

use Yii;

require_once './../extensions/PHPMailer/class.phpmailer.php';

// define("FROM_EMAIL", "info.cinema@timprimego.it");
// define("FROM_EMAIL_VOUCHER", "voucher.cinema@timprimego.it");
define("FROM_EMAIL_VOUCHER", "voucher@timcinema.it");
define("REGISTRATION_FROM_NAME", "TIM Cinema");

class Mailer {

    public static function inviaEmailBiglietto($biglietto) {

        
        $mail = self::createMailObject(FROM_EMAIL_VOUCHER, REGISTRATION_FROM_NAME, $biglietto->email, "Il tuo voucher TIM cinema 2x1", Yii::getAlias("@webroot/voucher_natale2016/pdf/" . $biglietto->codice . ".pdf"));
        $mail->AddEmbeddedImage(Yii::getAlias("@webroot/images/mail/header.jpg"), 'header');
        $mail->AddEmbeddedImage(Yii::getAlias("@webroot/images/mail/footer_tim.png"), 'footer_tim');

        $body = Yii::$app->controller->renderPartial('//mail/biglietto', array("biglietto" => $biglietto), true);
        $mail->msgHTML($body);

        return self::sendMailObject($mail);
    }

    public static function inviaBigliettoAltraMail($biglietto, $email) {

        $mail = self::createMailObject(FROM_EMAIL_VOUCHER, REGISTRATION_FROM_NAME, $email, "Il tuo voucher TIM cinema 2x1", Yii::getAlias("@webroot/voucher_natale2016/pdf/" . $biglietto->codice . ".pdf"));
        $mail->AddEmbeddedImage(Yii::getAlias("@webroot/images/mail/header.jpg"), 'header');
        $mail->AddEmbeddedImage(Yii::getAlias("@webroot/images/mail/footer_tim.png"), 'footer_tim');

        $body = Yii::$app->controller->renderPartial('//mail/biglietto', array("biglietto" => $biglietto), true);
        $mail->msgHTML($body);

        return self::sendMailObject($mail);

        // return self::sendMail(FROM_EMAIL_VOUCHER, REGISTRATION_FROM_NAME, $email, "TIMPrime", $body, Yii::getAlias("@webroot/voucher/pdf/" . $biglietto->codice . ".pdf"));
    }

    public static function inviaAlertVouchersMail($vouchers, $email) {
        $body = Yii::$app->controller->renderPartial('//mail/alert_vouchers', array('vouchers' => $vouchers), true);

        return self::sendMail('voucher@timcinema.it', 'TIMPrime go', $email, 'Alert soglia errori', $body);
    }

    public static function inviaAlertMail($errors, $email) {
        $body = Yii::$app->controller->renderPartial('//mail/alert_errors', array('errors' => $errors), true);

        return self::sendMail('voucher@timcinema.it', 'TIMPrime go', $email, 'Alert soglia errori', $body);
    }

    public static function inviaEmailAssistenza($params) {
        $body = Yii::$app->controller->renderPartial('//mail/assistenza', $params, true);

        return self::sendMail('voucher@timcinema.it', $params['nome'], 'info@timcinema.it', $params['oggetto'], $body, null, $params['email']);
    }

    public static function sendMail($send_from, $send_from_name, $to, $subject, $body, $attachments = null, $replyTo = null) {
        $mail = self::createMailObject($send_from, $send_from_name, $to, $subject, $attachments, $replyTo);
        $mail->msgHTML($body);

        try {
            return $mail->Send();
        } catch (Exception $e) {
            echo $e->getMessage();
            return false;
        }
    }

    public static function sendMailObject($mail) {
        try {
            return $mail->Send();
        } catch (Exception $e) {
            echo $e->getMessage();
            return false;
        }
    }

    public static function createMailObject($send_from, $send_from_name, $to, $subject, $attachments = null, $replyTo = null) {
        $mail = new \PHPMailer();

        $mail->CharSet = "UTF-8";

        $mail->IsSMTP();
        $mail->SMTPDebug = 0;  // debug: 1 = solo messaggi, 2 = errori e messaggi
        // Ask for HTML-friendly debug output
        // $mail->Debugoutput = 'html';
        
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'tls';
        
//        $mail->Host = 'mail.timprimecinema.it';
//        $mail->Username = 'tim.prime@timprimecinema.it';
//        $mail->Password = 'nvxnnofqlirbc0';

        $mail->Host = 'email-smtp.eu-west-1.amazonaws.com';
        $mail->Port = 587;
        $mail->Username = 'AKIAJEIN3I6DQTCDUS3A';
        $mail->Password = 'AtK1Gz6d/73vb8o2Re4V5WhRIFlBYJEjRPZsrL63OAWB';



        $mail->IsHTML(true);
        $mail->AddReplyTo($replyTo, $send_from_name);
        $mail->setFrom($send_from, $send_from_name);

        $mail->Subject = $subject;
        // $mail->msgHTML($body);

        if ($attachments != null) {
            if (is_array($attachments)) {
                foreach ($attachments as $att) {
                    $mail->AddAttachment($att);
                }
            } else
                $mail->AddAttachment($attachments);
        }


        $mail->AddAddress($to);

        
        return $mail;
        
    }

}

?>