1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
<?php
Prado::using('Lib.phpmailer.PHPMailerAutoload');
Prado::using('Application.mail.MailModule');
Prado::using('Application.mail.MailTemplate');
class Mailer extends PHPMailer {
private $_module;
public function __construct() {
$this->isSMTP();
$this->SMTPAuth = TRUE;
}
public function configure(MailModule $module) {
$this->_module = $module;
$config = $module->getConfig();
$this->Host = $config->smtp->host;
$this->Port = $config->smtp->port;
$this->Username = $config->smtp->user;
$this->Password = $config->smtp->pass;
if ($config->smtp->tls) {
$this->SMTPSecure = 'tls';
}
$this->setFrom($config->mail->from, $config->mail->name);
if ($config->mail->send_copies) {
$this->addBCC($config->mail->from);
}
}
protected function _sendImmediate(string $subject, string $html, string $to, string $name) {
$this->addAddress($to, $name);
$this->isHTML(TRUE);
$this->Subject = $subject;
$this->Body = $html;
$this->AltBody = strip_tags($html);
$result = $this->send();
$this->clearAddresses();
return $result;
}
public function sendTemplate(MailTemplate $template, string $subject, string $to, string $name) {
$html = $template->execute();
if ($template->isImmediate()) {
return $this->_sendImmediate($subject, $html, $to, $name);
} else {
return $this->_module->queueMail($subject, $html, $to, $name);
}
}
}
?>
|