发送邮件对于有些项目还是很重要的,而ZF原生的支持邮件的发送,大致的代码如下: <?php class Z_Mail { protected $_transport = null; protected $_smtp = null; public function __construct() { $mailConfig = Zend_Registry::get('system')->mail; $this->_transport = new Zend_Mail_Transport_Smtp($mailConfig->smtp->domain, $mailConfig->smtp->transport->toArray()); $this->_smtp = new Zend_Mail('utf-8'); $this->_smtp->setMimeBoundary(md5(time())); $this->_smtp->setFrom($mailConfig->from->address, $mailConfig->from->name); } public function addTo($address, $toName) { $this->_smtp->addTo($address, $toName); return $this; } public function setSubject($subject) { $subject = '=?UTF-8?B?' . base64_encode($subject) . '?='; $this->_smtp->setSubject($subject); return $this; } public function setContent($content) { $this->_smtp->setBodyHtml($content); return $this; } public function send() { return $this->_smtp->send($this->_transport); } } class Use_Mail { protected $_mail = null; protected $_container = null; public function __construct() { $this->_mail = new Z_Mail(); $this->_container = new stdClass(); } public function __set($key, $value) { $this->set($key, $value); } public function set($key, $val) { $this->_container->{$key} = $val; } public function send($messageKey) { try { $message = Zend_Registry::get('system')->mail->messages->{$messageKey}; $subject = str_replace('</p>, '$this->_container->', $message->subject); eval("/$subject = /"$subject/";"); $content = str_replace('</p>, '$this->_container->', $message->content); eval("/"$content = /"$content/";"); $this->_mail->addTo($this->_container->toAddress, $this->_container->toName); $this->_mail->setSubject($subject); $this->_mail->setContent($content); $this->_mail->send(); } catch (Exception $e) { return false; } } }