Browse Source

mailer, some fixes, #16

git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/branches/evo@142 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
master
pzinovkin 15 years ago
parent
commit
4cc7907728
  1. 3
      captcha/Captcha.php
  2. 78
      classes/Mailer.class.php
  3. 6
      exception/ErrorHandler.php
  4. 8
      form/Form.php
  5. 33
      mail/Mailer.php

3
captcha/Captcha.php

@ -72,6 +72,9 @@ class Captcha
public function checkCode($token, $code) public function checkCode($token, $code)
{ {
if (Session::get('_ctoken') == $token && Session::get('_ccode') == strtoupper($code)){ if (Session::get('_ctoken') == $token && Session::get('_ccode') == strtoupper($code)){
// Housekeeping
Session::del('_ccode');
Session::del('_ctoken');
return true; return true;
} }
return false; return false;

78
classes/Mailer.class.php

@ -1,78 +0,0 @@
<?php
/**
* Класс для отправки почты
*
* @copyright NetMonsters <team@netmonsters.ru>
* @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);
}
}
?>

6
exception/ErrorHandler.php

@ -51,7 +51,7 @@ class ErrorHandler
} }
$text = '<table class="req"><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody>'; $text = '<table class="req"><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody>';
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
if (is_array($value)) {
if (is_array($value) || is_object($value)) {
$value = print_r($value, true); $value = print_r($value, true);
} }
$value = ($value) ? htmlentities($value, ENT_QUOTES, 'UTF-8') : '&nbsp;'; $value = ($value) ? htmlentities($value, ENT_QUOTES, 'UTF-8') : '&nbsp;';
@ -79,7 +79,7 @@ class ErrorHandler
$source = self::getSource($exception->getFile(), $exception->getLine()); $source = self::getSource($exception->getFile(), $exception->getLine());
$time = date('r', Env::Server('REQUEST_TIME', time())); $time = date('r', Env::Server('REQUEST_TIME', time()));
$trace = self::wrapTrace($exception->getTraceAsString());
$trace = nl2br($exception->getTraceAsString());
$get = self::wrapArray(Env::Get(), 'GET'); $get = self::wrapArray(Env::Get(), 'GET');
$post = self::wrapArray(Env::Post(), 'POST'); $post = self::wrapArray(Env::Post(), 'POST');
@ -166,7 +166,7 @@ class ErrorHandler
<div id="traceback"> <div id="traceback">
<h2>Traceback</h2> <h2>Traceback</h2>
<div id="browserTraceback">{$trace}</div>
<div id="browserTraceback"><code>{$trace}</code></div>
</div> </div>
<div id="requestinfo"> <div id="requestinfo">

8
form/Form.php

@ -66,6 +66,14 @@ abstract class Form
return $messages; return $messages;
} }
public function getValue($key)
{
if (isset($this->fields[$key])) {
return $this->fields[$key]->getValue();
}
return false;
}
public function getValues() public function getValues()
{ {
$values = array(); $values = array();

33
mail/Mailer.php

@ -0,0 +1,33 @@
<?php
/**
* @copyright NetMonsters <team@netmonsters.ru>
* @link http://netmonsters.ru
* @package Majestic
* @subpackage mail
* @since 2010-04-25
* @version SVN: $Id$
* @filesource $URL$
*/
class Mailer
{
protected $headers;
public function __construct($host)
{
$this->headers .= 'From: noreply@' . $host . "\r\n";
$this->headers .= 'Date: '. date('r') ."\r\n";
$this->headers .= "Return-Path: noreply@". $host ."\r\n";
$this->headers .= "X-Priority: 3 (Normal)\r\n";
$this->headers .= "Message-ID: <". md5(uniqid(time()))."@". $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";
}
public function send($email, $subject, $message)
{
$subject = '=?UTF-8?B?' . base64_encode($subject) . "?=\r\n";
return mail($email, $subject, $message, $this->headers);
}
}
Loading…
Cancel
Save