* @link http://netmonsters.ru * @package Core * @subpackage mail * @since * @version SVN: $Id$ * @filesource $URL$ */ class Mailer { public $template_dir = 'mail'; public $template = null; public $templater; public $headers; protected $host; function __construct($host, $template = null) { if ($template !== null) { $this->templater = Load::templater(ACTION_TPL_PATH . '/' . $this->template_dir); $this->template = $template; } $this->host = $host; $this->headers .= 'From: robot@' . $this->host . "\r\n"; $this->headers .= 'Date: '. date('r') ."\r\n"; $this->headers .= "Return-Path: robot@". $this->host ."\r\n"; $this->headers .= "X-Mailer: PHPMail Tool\r\n"; $this->headers .= "Reply-To: robot@". $this->host ."\r\n"; $this->headers .= "X-Priority: 3 (Normal)\r\n"; $this->headers .= "Message-ID: <". md5(uniqid(time()))."@". $this->host .">\r\n"; $this->headers .= "MIME-Version: 1.0\r\n"; $this->headers .= "Content-Type: text/plain; charset=utf-8\r\n"; $this->headers .= "Content-Transfer-Encoding: 16bit\r\n"; } /** * Отправляет письма * * @param mixed $mail * @param mixed $subject * @param mixed $data */ function send ($mail, $subject, $data) { $this->headers .= "To: ".$mail."\r\n"; foreach ($data as $key => $val) { $this->templater->assign($key, $val); } $message = $this->templater->fetch($this->template.'.tpl'); $encoded_subject = '=?UTF-8?B?' . base64_encode($subject) . "?=\r\n"; return mail($mail, $subject, $message, $this->headers); } /** * Отправка письма с непосредственным указанием контента * * @param string $email * @param string $subject * @param string $content * @return bool */ public function sendMessage($email, $subject, $content) { $encoded_subject = '=?UTF-8?B?' . base64_encode($subject) . "?=\r\n"; return mail($email, $encoded_subject, $content, $this->headers); } } ?>