parameters = $parameters; } /** * Send mail using PHP native mail() * * @access public * @return void * @throws Zend_Mail_Transport_Exception on mail() failure */ public function _sendMail() { if ($this->parameters === null) { $result = mail( $this->recipients, $this->_mail->getSubject(), $this->body, $this->header); } else { $result = mail( $this->recipients, $this->_mail->getSubject(), $this->body, $this->header, $this->parameters); } if (!$result) { /** * @see Zend_Mail_Transport_Exception */ require_once 'Zend/Mail/Transport/Exception.php'; throw new Zend_Mail_Transport_Exception('Unable to send mail'); } } /** * Format and fix headers * * mail() uses its $to and $subject arguments to set the To: and Subject: * headers, respectively. This method strips those out as a sanity check to * prevent duplicate header entries. * * @access protected * @param array $headers * @return void * @throws Zend_Mail_Transport_Exception */ protected function _prepareHeaders($headers) { if (!$this->_mail) { /** * @see Zend_Mail_Transport_Exception */ require_once 'Zend/Mail/Transport/Exception.php'; throw new Zend_Mail_Transport_Exception('_prepareHeaders requires a registered Zend_Mail object'); } // mail() uses its $to parameter to set the To: header, and the $subject // parameter to set the Subject: header. We need to strip them out. if (0 === strpos(PHP_OS, 'WIN')) { // If the current recipients list is empty, throw an error if (empty($this->recipients)) { /** * @see Zend_Mail_Transport_Exception */ require_once 'Zend/Mail/Transport/Exception.php'; throw new Zend_Mail_Transport_Exception('Missing To addresses'); } } else { // All others, simply grab the recipients and unset the To: header if (!isset($headers['To'])) { /** * @see Zend_Mail_Transport_Exception */ require_once 'Zend/Mail/Transport/Exception.php'; throw new Zend_Mail_Transport_Exception('Missing To header'); } unset($headers['To']['append']); $this->recipients = implode(',', $headers['To']); } // Remove recipient header unset($headers['To']); // Remove subject header, if present if (isset($headers['Subject'])) { unset($headers['Subject']); } // Prepare headers parent::_prepareHeaders($headers); } }