# Single block: delegate if (count($this->data) == 1) { $block = clone $this->data[0]; $block->headers = $this->headers + $block->headers; # merge the headers return $block->render(); } } # Render the block return array($this->_render_headers(), $this->_render_body()); } function __toString() { list($headers, $body) = $this->render(); return $headers . $this->message->CRLF . $this->message->CRLF . $body; } /** Encode a string using the ugly encoding * @param string $str * @return string */ static function _encodeStr($str) { return sprintf('=?%s?B?%s?=', 'UTF-8', base64_encode($str)); } } if (0 && 'unittest') { $M = new MailMessage(); $M->setDefaultHeaders()->setFrom('from@{from_domain}', 'From Name')->setTo('to@to_domain', 'To Name')->setSubject('LOL, {user}')->setMessage("Hi, <b>{user}</b>!\n\nlol", 'html')->setMessage("Hi, {user}!\n\nlol", 'text')->attachment('file_{user}.pdf', "BINARY\nCONTENT")->attachment('file_{user}.pdf', "BINARY\nCONTENT"); $M->placeholders = array('{from_domain}' => 'gmail.com', '{user}' => 'Kevin Mitnick'); echo $M; }