43 $this->_invoker = $invoker;
44 $this->_eventDispatcher = $eventDispatcher;
80 $this->_extraParams = $params;
110 $failedRecipients = (array) $failedRecipients;
112 if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) {
113 $this->_eventDispatcher->dispatchEvent($evt,
'beforeSendPerformed');
114 if ($evt->bubbleCancelled()) {
120 count((array) $message->
getTo())
121 + count((array) $message->
getCc())
122 + count((array) $message->
getBcc())
125 $toHeader = $message->
getHeaders()->get(
'To');
126 $subjectHeader = $message->
getHeaders()->get(
'Subject');
131 $to = $toHeader->getFieldBody();
132 $subject = $subjectHeader ? $subjectHeader->getFieldBody() :
'';
146 if (
false !== $endHeaders = strpos($messageStr,
"\r\n\r\n")) {
147 $headers = substr($messageStr, 0, $endHeaders).
"\r\n";
148 $body = substr($messageStr, $endHeaders + 4);
150 $headers = $messageStr.
"\r\n";
156 if (
"\r\n" != PHP_EOL) {
158 $headers = str_replace(
"\r\n", PHP_EOL, $headers);
159 $body = str_replace(
"\r\n", PHP_EOL, $body);
162 $headers = str_replace(
"\r\n.",
"\r\n..", $headers);
163 $body = str_replace(
"\r\n.",
"\r\n..", $body);
166 if ($this->_invoker->mail($to, $subject, $body, $headers,
167 sprintf($this->_extraParams, $reversePath))) {
170 $evt->setFailedRecipients($failedRecipients);
171 $this->_eventDispatcher->dispatchEvent($evt,
'sendPerformed');
174 $failedRecipients = array_merge(
176 array_keys((array) $message->
getTo()),
177 array_keys((array) $message->
getCc()),
178 array_keys((array) $message->
getBcc())
183 $evt->setFailedRecipients($failedRecipients);
184 $this->_eventDispatcher->dispatchEvent($evt,
'sendPerformed');
202 $this->_eventDispatcher->bindEventListener($plugin);
208 if ($evt = $this->_eventDispatcher->createTransportExceptionEvent($this, $e)) {
209 $this->_eventDispatcher->dispatchEvent($evt,
'exceptionThrown');
210 if (!$evt->bubbleCancelled()) {
225 if (!empty($return)) {
227 }
elseif (!empty($sender)) {
228 $keys = array_keys($sender);
229 $path = array_shift($keys);
230 }
elseif (!empty($from)) {
231 $keys = array_keys($from);
232 $path = array_shift($keys);