1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Nip\View; |
4
|
|
|
|
5
|
|
|
use Nip\View; |
6
|
|
|
|
7
|
|
|
/** |
8
|
|
|
* Class Email |
9
|
|
|
* @package Nip\View |
10
|
|
|
*/ |
11
|
|
|
class Email extends View |
12
|
|
|
{ |
13
|
|
|
|
14
|
|
|
protected $_layout = "/layouts/email"; |
15
|
|
|
|
16
|
|
|
/** |
17
|
|
|
* @var \Nip_Mailer|null |
18
|
|
|
*/ |
19
|
|
|
protected $_mail = null; |
20
|
|
|
|
21
|
|
|
public function __construct() |
22
|
|
|
{ |
23
|
|
|
$this->initMailer(); |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
public function initMailer() |
27
|
|
|
{ |
28
|
|
|
$this->_mail = new \Nip_Mailer(); |
29
|
|
|
} |
30
|
|
|
|
31
|
|
|
public function initBasePath() |
32
|
|
|
{ |
33
|
|
|
$this->setBasePath(MODULES_PATH . request()->getModuleName() . '/views/'); |
34
|
|
|
} |
35
|
|
|
|
36
|
|
|
/** |
37
|
|
|
* @param string $host |
38
|
|
|
* @param string $username |
39
|
|
|
* @param string $password |
40
|
|
|
* @return $this |
41
|
|
|
*/ |
42
|
|
|
public function authSMTP($host, $username, $password) |
43
|
|
|
{ |
44
|
|
|
$this->_mail->authSMTP($host, $username, $password); |
45
|
|
|
return $this; |
46
|
|
|
} |
47
|
|
|
|
48
|
|
|
/** |
49
|
|
|
* Sets flag to show SMTP debugging information |
50
|
|
|
* @return $this |
51
|
|
|
*/ |
52
|
|
|
public function debugSMTP() |
53
|
|
|
{ |
54
|
|
|
$this->_mail->debugSMTP(); |
55
|
|
|
return $this; |
56
|
|
|
} |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* @param string $address |
60
|
|
|
* @param string|bool $name |
61
|
|
|
* @return $this |
62
|
|
|
*/ |
63
|
|
|
public function setFrom($address, $name = false) |
64
|
|
|
{ |
65
|
|
|
$this->_mail->setFrom($address, $name); |
66
|
|
|
return $this; |
67
|
|
|
} |
68
|
|
|
|
69
|
|
|
/** |
70
|
|
|
* @param string $address |
71
|
|
|
* @param string|bool $name |
72
|
|
|
* @return $this |
73
|
|
|
*/ |
74
|
|
|
public function addTo($address, $name = false) |
75
|
|
|
{ |
76
|
|
|
$this->_mail->addTo($address, $name); |
77
|
|
|
return $this; |
78
|
|
|
} |
79
|
|
|
|
80
|
|
|
/** |
81
|
|
|
* @param string $address |
82
|
|
|
* @param string $name |
83
|
|
|
* @return $this |
84
|
|
|
*/ |
85
|
|
|
public function addBCC($address, $name = '') |
86
|
|
|
{ |
87
|
|
|
$this->_mail->addBCC($address, $name); |
88
|
|
|
return $this; |
89
|
|
|
} |
90
|
|
|
|
91
|
|
|
/** |
92
|
|
|
* @param string $address |
93
|
|
|
* @param string|bool $name |
94
|
|
|
* @return $this |
95
|
|
|
*/ |
96
|
|
|
public function addReplyTo($address, $name = false) |
97
|
|
|
{ |
98
|
|
|
$this->_mail->addReplyTo($address, $name); |
|
|
|
|
99
|
|
|
return $this; |
100
|
|
|
} |
101
|
|
|
|
102
|
|
|
/** |
103
|
|
|
* @return $this |
104
|
|
|
*/ |
105
|
|
|
public function clearAllRecipients() |
106
|
|
|
{ |
107
|
|
|
$this->_mail->clearAllRecipients(); |
108
|
|
|
return $this; |
109
|
|
|
} |
110
|
|
|
|
111
|
|
|
/** |
112
|
|
|
* @param string $subject |
113
|
|
|
* @return $this |
114
|
|
|
*/ |
115
|
|
|
public function setSubject($subject) |
116
|
|
|
{ |
117
|
|
|
$this->_mail->setSubject($subject); |
118
|
|
|
return $this; |
119
|
|
|
} |
120
|
|
|
|
121
|
|
|
/** |
122
|
|
|
* Adds attachment |
123
|
|
|
* |
124
|
|
|
* @param string $path |
125
|
|
|
* @param string $name |
126
|
|
|
* @return $this |
127
|
|
|
*/ |
128
|
|
|
public function addAttachment($path, $name = '') |
129
|
|
|
{ |
130
|
|
|
$this->_mail->addAttachment($path, $name); |
131
|
|
|
return $this; |
132
|
|
|
} |
133
|
|
|
|
134
|
|
|
/** |
135
|
|
|
* @return mixed |
136
|
|
|
*/ |
137
|
|
|
public function send() |
138
|
|
|
{ |
139
|
|
|
if (!$this->getBody()) { |
140
|
|
|
$this->setBody($this->load($this->_layout, [], true)); |
141
|
|
|
} |
142
|
|
|
$this->_mail->setAltBody($this->getBody()); |
143
|
|
|
|
144
|
|
|
return $this->_mail->send(); |
145
|
|
|
} |
146
|
|
|
|
147
|
|
|
/** |
148
|
|
|
* @return mixed |
149
|
|
|
*/ |
150
|
|
|
public function getBody() |
151
|
|
|
{ |
152
|
|
|
return $this->_mail->getBody(); |
153
|
|
|
} |
154
|
|
|
|
155
|
|
|
/** |
156
|
|
|
* @param $body |
157
|
|
|
* @return $this |
158
|
|
|
*/ |
159
|
|
|
public function setBody($body) |
160
|
|
|
{ |
161
|
|
|
$this->_mail->setBody($body); |
162
|
|
|
return $this; |
163
|
|
|
} |
164
|
|
|
|
165
|
|
|
/** |
166
|
|
|
* @param $layout |
167
|
|
|
*/ |
168
|
|
|
public function setLayout($layout) |
169
|
|
|
{ |
170
|
|
|
$this->_layout = $layout; |
171
|
|
|
} |
172
|
|
|
} |
173
|
|
|
|
This check looks at variables that have been passed in as parameters and are passed out again to other methods.
If the outgoing method call has stricter type requirements than the method itself, an issue is raised.
An additional type check may prevent trouble.