/** * Format and fix headers * * Some SMTP servers do not strip BCC headers. Most clients do it themselves as do we. * * @access protected * @param array $headers * @return void * @throws \Zend\Transport\Exception */ protected function _prepareHeaders($headers) { if (!$this->_mail) { throw new Exception\RuntimeException('_prepareHeaders requires a registered \\Zend\\Mail\\Mail object'); } unset($headers['Bcc']); // Prepare headers parent::_prepareHeaders($headers); }
/** * 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) { throw new Exception\RuntimeException('_prepareHeaders requires a registered \\Zend\\Mail\\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)) { throw new Exception\RuntimeException('Missing To addresses'); } } else { // All others, simply grab the recipients and unset the To: header if (!isset($headers['To'])) { throw new Exception\RuntimeException('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); }