Zeile 6 | Zeile 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 34 | Zeile 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 48 | Zeile 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 70 | Zeile 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 90 | Zeile 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 101 | Zeile 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 159 | Zeile 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 245 | Zeile 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 295 | Zeile 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 332 | Zeile 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; }
|
} ?>
| } ?>
|