2015-01-14 13:08:41 -02:00

61 lines
1.5 KiB
PHP

<?php
class Crunchbutton_Email extends Cana_Model {
public function __construct($params) {
$this->to = $params['to'];
$this->from = $params['from'];
$this->subject = $params['subject'];
$this->html = $params['messageHtml'];
$this->reason = $params['reason'];
}
public function buildView($params) {
$params['theme'][] = 'mail/'.c::config()->defaults->theme.'/';
$params['layout'] = c::config()->defaults->layout;
$params['base'] = c::config()->dirs->view;
$view = new Cana_View($params);
$this->view($view);
}
public function send() {
$res = c::mailgun()->sendMessage(c::config()->mailgun->domain, [
'from' => $this->from,
'to' => $this->to,
'subject' => $this->subject,
'html' => $this->html
]);
$status = ($res && $res->http_response_body && $res->http_response_body->id) ? true : false;
if (!$status) {
Log::debug([
'action' => 'send email',
'to' => $this->to,
'from' => $this->from,
'subject' => $this->subject,
'type' => 'notification',
'status' => $status ? 'success' : 'failed',
'response' => json_encode($res)
]);
}
Crunchbutton_Email_Address_Log::log( [ 'email_address_to' => $this->to, 'email_address_from' => $this->from, 'subject' => $this->subject, 'reason' => $this->reason ] );
return $status;
}
public function message() {
return $this->html;
}
public function view($view = null) {
if (is_null($view)) {
return $this->_view;
} else {
$this->_view = $view;
}
}
}