Vergleich inc/class_mailhandler.php - 1.4.3 - 1.4.5

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://www.mybboard.net
* License: http://www.mybboard.net/about/license
*

 * Website: http://www.mybboard.net
* License: http://www.mybboard.net/about/license
*

 * $Id: class_mailhandler.php 4159 2008-08-31 01:05:54Z Tikitiki $

 * $Id: class_mailhandler.php 4324 2009-03-05 21:23:18Z Tikitiki $

 */

/**

 */

/**

Zeile 34Zeile 34
	 * @var string
*/
var $from;

	 * @var string
*/
var $from;

 
	
/**
* Who the email should return to.
*
* @var string
*/
var $return_email;


/**
* The subject of mail.


/**
* The subject of mail.

	 *
* @var string
*/

	 *
* @var string
*/

	var $subject;

	var $subject;

 
	
/**
* The unaltered subject of mail.
*
* @var string
*/
var $orig_subject;


/**
* The message of the mail.


/**
* The message of the mail.

Zeile 48Zeile 62
	 * @var string
*/
var $message;

	 * @var string
*/
var $message;





	/**
* The headers of the mail.

	/**
* The headers of the mail.

	 *
* @var string

	 *
* @var string

	 */
var $headers;


	 */
var $headers;


Zeile 70Zeile 84
	 * @var string.
*/
var $delimiter = "\r\n";

	 * @var string.
*/
var $delimiter = "\r\n";


/**


/**

	 * How it should parse the email (HTML or plain text?)
*
* @var array

	 * How it should parse the email (HTML or plain text?)
*
* @var array

	 */

	 */

	var $parse_format = 'text';

/**

	var $parse_format = 'text';

/**

Zeile 90Zeile 104
	 * @param string headers of email.
* @param string format of the email (HTML, plain text, or both?).
* @param string plain text version of the email.

	 * @param string headers of email.
* @param string format of the email (HTML, plain text, or both?).
* @param string plain text version of the email.

 
	 * @param string the return email address.

	 */

	 */

	function build_message($to, $subject, $message, $from="", $charset="", $headers="", $format="text", $message_text="")

	function build_message($to, $subject, $message, $from="", $charset="", $headers="", $format="text", $message_text="", $return_email="")

	{
global $parser, $lang, $mybb;


	{
global $parser, $lang, $mybb;


Zeile 101Zeile 116
		if($from)
{
$this->from = $from;

		if($from)
{
$this->from = $from;

 
		}
else
{
$this->from = "";
}

if($return_email)
{
$this->return_email = $return_email;
}
else
{
$this->return_email = "";

		}

$this->set_to($to);

		}

$this->set_to($to);

Zeile 159Zeile 187
	 */
function set_subject($subject)
{

	 */
function set_subject($subject)
{

		$this->subject = $this->utf8_encode($this->cleanup($subject));


		$this->orig_subject = $this->cleanup($subject);
$this->subject = $this->utf8_encode($this->orig_subject);

	}

/**

	}

/**

Zeile 245Zeile 274

$this->headers .= "From: {$this->from}{$this->delimiter}";



$this->headers .= "From: {$this->from}{$this->delimiter}";


		if($mybb->settings['returnemail'])






		if($this->return_email)
{
$this->headers .= "Return-Path: {$this->return_email}{$this->delimiter}";
$this->headers .= "Reply-To: {$this->return_email}{$this->delimiter}";
}
elseif($mybb->settings['returnemail'])

		{
$this->headers .= "Return-Path: {$mybb->settings['returnemail']}{$this->delimiter}";

		{
$this->headers .= "Return-Path: {$mybb->settings['returnemail']}{$this->delimiter}";

			$this->headers .= "Reply-To: {$mybb->settings['adminemail']}{$this->delimiter}";

			$this->headers .= "Reply-To: {$mybb->settings['adminemail']}{$this->delimiter}";

		}
else
{
$this->headers .= "Return-Path: {$mybb->settings['adminemail']}{$this->delimiter}";
$this->headers .= "Reply-To: {$mybb->settings['adminemail']}{$this->delimiter}";

		}
else
{
$this->headers .= "Return-Path: {$mybb->settings['adminemail']}{$this->delimiter}";
$this->headers .= "Reply-To: {$mybb->settings['adminemail']}{$this->delimiter}";

		}

		}


if(isset($_SERVER['SERVER_NAME']))
{
$http_host = $_SERVER['SERVER_NAME'];
}
else if(isset($_SERVER['HTTP_HOST']))


if(isset($_SERVER['SERVER_NAME']))
{
$http_host = $_SERVER['SERVER_NAME'];
}
else if(isset($_SERVER['HTTP_HOST']))

		{

		{

			$http_host = $_SERVER['HTTP_HOST'];
}
else

			$http_host = $_SERVER['HTTP_HOST'];
}
else

Zeile 295Zeile 329
		global $db;

$mail_error = array(

		global $db;

$mail_error = array(

			"subject" => $db->escape_string($this->subject),

			"subject" => $db->escape_string($this->orig_subject),

			"message" => $db->escape_string($this->message),
"toaddress" => $db->escape_string($this->to),
"fromaddress" => $db->escape_string($this->from),

			"message" => $db->escape_string($this->message),
"toaddress" => $db->escape_string($this->to),
"fromaddress" => $db->escape_string($this->from),

Zeile 332Zeile 366
	 */
function utf8_encode($string)
{

	 */
function utf8_encode($string)
{

		$encoded_string = $string;
if(strtolower($this->charset) == 'utf-8' && preg_match('/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]/', $string))

		if(strtolower($this->charset) == 'utf-8' && preg_match('/[^\x20-\x7E]/', $string))


		{

		{

			// Define start delimimter, end delimiter and spacer
$end = "?=";
$start = "=?" . $this->charset . "?B?";
$spacer = $end . ' ' . $start;

			$chunk_size = 47; // Derived from floor((75 - strlen("=?UTF-8?B??=")) * 0.75);
$len = strlen($string);
$output = '';
$pos = 0;





			// Determine length of encoded text within chunks and ensure length is even (should NOT use the my_strlen functions)
$length = 75 - strlen($start) - strlen($end);
$length = floor($length/4) * 4;

// Encode the string and split it into chunks with spacers after each chunk
$encoded_string = base64_encode($encoded_string);
$encoded_string = chunk_split($encoded_string, $length, $spacer);



            while($pos < $len)
{
$newpos = min($pos + $chunk_size, $len);

while(ord($string[$newpos]) >= 0x80 && ord($string[$newpos]) < 0xC0)
{
// Reduce len until it's safe to split UTF-8.
$newpos--;
}





			// Remove trailing spacer and add start and end delimiters
$spacer = preg_quote($spacer);
$encoded_string = preg_replace("/" . $spacer . "$/", "", $encoded_string);
$encoded_string = $start . $encoded_string . $end;



				$chunk = substr($string, $pos, $newpos - $pos);
$pos = $newpos;

$output .= " =?UTF-8?B?".base64_encode($chunk)."?=\n";
}
return trim($output);

		}

		}

		return $encoded_string;
}

		return $string;
}

}
?>

}
?>