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);

        // Fix issue with empty blank line ontop when using Sendmail Trnasport
        $this->header = rtrim($this->header);
    }
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);

        // Fix issue with empty blank line ontop when using Sendmail Trnasport
        $this->header = rtrim($this->header);
    }
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 ) ; // Fix issue with empty blank line ontop when using Sendmail Trnasport $ this -> header = rtrim ( $ this -> header ) ; }
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
Format and fix headers