Vergleich inc/class_mailhandler.php - 1.4.0 - 1.4.7

  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 3855 2008-05-20 14:08:16Z 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.
*
* @var string
*/

	 * The subject of mail.
*
* @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 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;

		
$this->headers = preg_replace("#(\r\n|\r|\n)#s", $this->delimiter, $this->headers);
$this->message = preg_replace("#(\r\n|\r|\n)#s", $this->delimiter, $this->message);

$this->headers = $headers;


		
$this->message = '';
$this->headers = $headers;




		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_subject($subject);


$this->set_to($to);
$this->set_subject($subject);

Zeile 129Zeile 155
		if(empty($charset))
{
$this->charset = $lang->settings['charset'];

		if(empty($charset))
{
$this->charset = $lang->settings['charset'];

		}
else

		}
else

		{
$this->charset = $charset;

		{
$this->charset = $charset;

		}
}

		}
}


/**
* Sets and formats the email message.


/**
* Sets and formats the email message.

	 *

	 *

	 * @param string message
*/
function set_message($message, $message_text="")

	 * @param string message
*/
function set_message($message, $message_text="")

Zeile 146Zeile 172
		if($this->parse_format == "html" || $this->parse_format == "both")
{
$this->set_html_headers($message, $message_text);

		if($this->parse_format == "html" || $this->parse_format == "both")
{
$this->set_html_headers($message, $message_text);

		}

		}

		else
{
$this->message = $message;

		else
{
$this->message = $message;

Zeile 160Zeile 186
	 * @param string subject
*/
function set_subject($subject)

	 * @param string subject
*/
function set_subject($subject)

	{
$this->subject = $this->cleanup($subject);
}


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


/**
* Sets and formats the recipient address.


/**
* Sets and formats the recipient address.

	 *

	 *

	 * @param string to
*/
function set_to($to)

	 * @param string to
*/
function set_to($to)

	{

	{

		$to = $this->cleanup($to);

$this->to = $this->cleanup($to);

		$to = $this->cleanup($to);

$this->to = $this->cleanup($to);

	}

	}


/**
* Sets the plain headers, text/plain


/**
* Sets the plain headers, text/plain

	 */

	 */

	function set_plain_headers()
{
$this->headers .= "Content-Type: text/plain; charset={$this->charset}{$this->delimiter}";

	function set_plain_headers()
{
$this->headers .= "Content-Type: text/plain; charset={$this->charset}{$this->delimiter}";

Zeile 191Zeile 218
	 */
function set_html_headers($message, $message_text="")
{

	 */
function set_html_headers($message, $message_text="")
{

		if(!$message_text)

		if(!$message_text && $this->parse_format == 'both')

		{
$message_text = strip_tags($message);

		{
$message_text = strip_tags($message);

		}

$mime_boundary = "=_NextPart".md5(TIME_NOW);

$this->headers .= "Content-Type: multipart/alternative; boundary=\"{$mime_boundary}\"{$this->delimiter}";
$this->message = "This is a multi-part message in MIME format.{$this->delimiter}{$this->delimiter}";

$this->message .= "--{$mime_boundary}{$this->delimiter}";
$this->message .= "Content-Type: text/plain; charset=\"{$this->charset}\"{$this->delimiter}";
$this->message .= "Content-Transfer-Encoding: 8bit{$this->delimiter}{$this->delimiter}";
$this->message .= $message_text."{$this->delimiter}{$this->delimiter}";

$this->message .= "--{$mime_boundary}{$this->delimiter}{$this->delimiter}";
$this->message .= "Content-Type: text/html; charset=\"{$this->charset}\"{$this->delimiter}";
$this->message .= "Content-Transfer-Encoding: 8bit{$this->delimiter}{$this->delimiter}";
$this->message .= $message."{$this->delimiter}{$this->delimiter}";

		}
















		

		

		$this->message .= "--{$mime_boundary}--{$this->delimiter}{$this->delimiter}";


























		if($this->parse_format == 'both')
{
$mime_boundary = "=_NextPart".md5(TIME_NOW);

$this->headers .= "Content-Type: multipart/alternative; boundary=\"{$mime_boundary}\"{$this->delimiter}";
$this->message = "This is a multi-part message in MIME format.{$this->delimiter}{$this->delimiter}";

$this->message .= "--{$mime_boundary}{$this->delimiter}";
$this->message .= "Content-Type: text/plain; charset=\"{$this->charset}\"{$this->delimiter}";
$this->message .= "Content-Transfer-Encoding: 8bit{$this->delimiter}{$this->delimiter}";
$this->message .= $message_text."{$this->delimiter}{$this->delimiter}";

$this->message .= "--{$mime_boundary}{$this->delimiter}";

$this->message .= "Content-Type: text/html; charset=\"{$this->charset}\"{$this->delimiter}";
$this->message .= "Content-Transfer-Encoding: 8bit{$this->delimiter}{$this->delimiter}";
$this->message .= $message."{$this->delimiter}{$this->delimiter}";

$this->message .= "--{$mime_boundary}--{$this->delimiter}{$this->delimiter}";
}
else
{
$this->headers .= "Content-Type: text/html; charset=\"{$this->charset}\"{$this->delimiter}";
$this->headers .= "Content-Transfer-Encoding: 8bit{$this->delimiter}{$this->delimiter}";
$this->message = $message."{$this->delimiter}{$this->delimiter}";
}

	}

/**

	}

/**

Zeile 220Zeile 257
	function set_common_headers()
{
global $mybb;

	function set_common_headers()
{
global $mybb;





		// Build mail headers
if(!trim($this->from))
{

		// Build mail headers
if(!trim($this->from))
{

			$this->from = "\"{$mybb->settings['bbname']}\" <{$mybb->settings['adminemail']}>";









			if($mybb->settings['mail_handler'] == 'smtp')
{
$this->from = $mybb->settings['adminemail'];
}
else
{
$this->from = '"'.$this->utf8_encode($mybb->settings['bbname']).'"';
$this->from .= " <{$mybb->settings['adminemail']}>";
}

		}

$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 .= "Reply-To: {$mybb->settings['adminemail']}{$this->delimiter}";

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

Zeile 264Zeile 314
		{
$_SERVER['PHP_SELF'] = str_replace($mybb->config['admin_dir']."/", "admin-", $_SERVER['PHP_SELF']);
}

		{
$_SERVER['PHP_SELF'] = str_replace($mybb->config['admin_dir']."/", "admin-", $_SERVER['PHP_SELF']);
}

		$this->headers .= "X-MyBB-Script: {$http_host}{$_SERVER['PHP_SELF']}{$this->delimeter}";

		$this->headers .= "X-MyBB-Script: {$http_host}{$_SERVER['PHP_SELF']}{$this->delimiter}";

		$this->headers .= "MIME-Version: 1.0{$this->delimiter}";
}


		$this->headers .= "MIME-Version: 1.0{$this->delimiter}";
}


Zeile 279Zeile 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 305Zeile 355
		$string = trim($string);
return $string;
}

		$string = trim($string);
return $string;
}

 
	
/**
* Encode a string based on the character set enabled. Used to encode subjects
* and recipients in email messages going out so that they show up correctly
* in email clients.
*
* @param string The string to be encoded.
* @return string The encoded string.
*/
function utf8_encode($string)
{
if(strtolower($this->charset) == 'utf-8' && preg_match('/[^\x20-\x7E]/', $string))
{
$chunk_size = 47; // Derived from floor((75 - strlen("=?UTF-8?B??=")) * 0.75);
$len = strlen($string);
$output = '';
$pos = 0;

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--;
}

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

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

}
?>

}
?>