Update to CodeIgniter 2.1.0

This commit is contained in:
Karsten Heiken
2011-12-04 14:24:27 +01:00
parent fde35df5bd
commit 79c236dc49
149 changed files with 4384 additions and 590 deletions

154
system/libraries/Email.php Executable file → Normal file
View File

@@ -36,6 +36,7 @@ class CI_Email {
var $smtp_pass = ""; // SMTP Password
var $smtp_port = "25"; // SMTP Port
var $smtp_timeout = 5; // SMTP Timeout in seconds
var $smtp_crypto = ""; // SMTP Encryption. Can be null, tls or ssl.
var $wordwrap = TRUE; // TRUE/FALSE Turns word-wrap on/off
var $wrapchars = "76"; // Number of characters to wrap at.
var $mailtype = "text"; // text/html Defines email formatting
@@ -379,7 +380,19 @@ class CI_Email {
*/
public function message($body)
{
$this->_body = stripslashes(rtrim(str_replace("\r", "", $body)));
$this->_body = rtrim(str_replace("\r", "", $body));
/* strip slashes only if magic quotes is ON
if we do it with magic quotes OFF, it strips real, user-inputted chars.
NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and
it will probably not exist in future versions at all.
*/
if ( ! is_php('5.4') && get_magic_quotes_gpc())
{
$this->_body = stripslashes($this->_body);
}
return $this;
}
@@ -405,12 +418,12 @@ class CI_Email {
/**
* Add a Header Item
*
* @access private
* @access protected
* @param string
* @param string
* @return void
*/
private function _set_header($header, $value)
protected function _set_header($header, $value)
{
$this->_headers[$header] = $value;
}
@@ -420,11 +433,11 @@ class CI_Email {
/**
* Convert a String to an Array
*
* @access private
* @access protected
* @param string
* @return array
*/
private function _str_to_array($email)
protected function _str_to_array($email)
{
if ( ! is_array($email))
{
@@ -452,7 +465,7 @@ class CI_Email {
*/
public function set_alt_message($str = '')
{
$this->alt_message = ($str == '') ? '' : $str;
$this->alt_message = $str;
return $this;
}
@@ -577,10 +590,10 @@ class CI_Email {
/**
* Set Message Boundary
*
* @access private
* @access protected
* @return void
*/
private function _set_boundaries()
protected function _set_boundaries()
{
$this->_alt_boundary = "B_ALT_".uniqid(''); // multipart/alternative
$this->_atc_boundary = "B_ATC_".uniqid(''); // attachment boundary
@@ -591,10 +604,10 @@ class CI_Email {
/**
* Get the Message ID
*
* @access private
* @access protected
* @return string
*/
private function _get_message_id()
protected function _get_message_id()
{
$from = $this->_headers['Return-Path'];
$from = str_replace(">", "", $from);
@@ -608,11 +621,11 @@ class CI_Email {
/**
* Get Mail Protocol
*
* @access private
* @access protected
* @param bool
* @return string
*/
private function _get_protocol($return = TRUE)
protected function _get_protocol($return = TRUE)
{
$this->protocol = strtolower($this->protocol);
$this->protocol = ( ! in_array($this->protocol, $this->_protocols, TRUE)) ? 'mail' : $this->protocol;
@@ -628,11 +641,11 @@ class CI_Email {
/**
* Get Mail Encoding
*
* @access private
* @access protected
* @param bool
* @return string
*/
private function _get_encoding($return = TRUE)
protected function _get_encoding($return = TRUE)
{
$this->_encoding = ( ! in_array($this->_encoding, $this->_bit_depths)) ? '8bit' : $this->_encoding;
@@ -655,10 +668,10 @@ class CI_Email {
/**
* Get content type (text/html/attachment)
*
* @access private
* @access protected
* @return string
*/
private function _get_content_type()
protected function _get_content_type()
{
if ($this->mailtype == 'html' && count($this->_attach_name) == 0)
{
@@ -683,10 +696,10 @@ class CI_Email {
/**
* Set RFC 822 Date
*
* @access private
* @access protected
* @return string
*/
private function _set_date()
protected function _set_date()
{
$timezone = date("Z");
$operator = (strncmp($timezone, '-', 1) == 0) ? '-' : '+';
@@ -701,10 +714,10 @@ class CI_Email {
/**
* Mime message
*
* @access private
* @access protected
* @return string
*/
private function _get_mime_message()
protected function _get_mime_message()
{
return "This is a multi-part message in MIME format.".$this->newline."Your email application may not support this format.";
}
@@ -802,10 +815,10 @@ class CI_Email {
* If the user hasn't specified his own alternative message
* it creates one by stripping the HTML
*
* @access private
* @access protected
* @return string
*/
private function _get_alt_message()
protected function _get_alt_message()
{
if ($this->alt_message != "")
{
@@ -941,11 +954,11 @@ class CI_Email {
/**
* Build final headers
*
* @access private
* @access protected
* @param string
* @return string
*/
private function _build_headers()
protected function _build_headers()
{
$this->_set_header('X-Sender', $this->clean_email($this->_headers['From']));
$this->_set_header('X-Mailer', $this->useragent);
@@ -959,10 +972,10 @@ class CI_Email {
/**
* Write Headers as a string
*
* @access private
* @access protected
* @return void
*/
private function _write_headers()
protected function _write_headers()
{
if ($this->protocol == 'mail')
{
@@ -994,10 +1007,10 @@ class CI_Email {
/**
* Build Final Body and attachments
*
* @access private
* @access protected
* @return void
*/
private function _build_message()
protected function _build_message()
{
if ($this->wordwrap === TRUE AND $this->mailtype != 'html')
{
@@ -1177,12 +1190,12 @@ class CI_Email {
* Prepares string for Quoted-Printable Content-Transfer-Encoding
* Refer to RFC 2045 http://www.ietf.org/rfc/rfc2045.txt
*
* @access private
* @access protected
* @param string
* @param integer
* @return string
*/
private function _prep_quoted_printable($str, $charlim = '')
protected function _prep_quoted_printable($str, $charlim = '')
{
// Set the character limit
// Don't allow over 76, as that will make servers and MUAs barf
@@ -1275,7 +1288,7 @@ class CI_Email {
* @param bool // set to TRUE for processing From: headers
* @return str
*/
private function _prep_q_encoding($str, $from = FALSE)
protected function _prep_q_encoding($str, $from = FALSE)
{
$str = str_replace(array("\r", "\n"), array('', ''), $str);
@@ -1440,10 +1453,10 @@ class CI_Email {
/**
* Unwrap special elements
*
* @access private
* @access protected
* @return void
*/
private function _unwrap_specials()
protected function _unwrap_specials()
{
$this->_finalbody = preg_replace_callback("/\{unwrap\}(.*?)\{\/unwrap\}/si", array($this, '_remove_nl_callback'), $this->_finalbody);
}
@@ -1453,10 +1466,10 @@ class CI_Email {
/**
* Strip line-breaks via callback
*
* @access private
* @access protected
* @return string
*/
private function _remove_nl_callback($matches)
protected function _remove_nl_callback($matches)
{
if (strpos($matches[1], "\r") !== FALSE OR strpos($matches[1], "\n") !== FALSE)
{
@@ -1471,10 +1484,10 @@ class CI_Email {
/**
* Spool mail to the mail server
*
* @access private
* @access protected
* @return bool
*/
private function _spool_email()
protected function _spool_email()
{
$this->_unwrap_specials();
@@ -1516,10 +1529,10 @@ class CI_Email {
/**
* Send using mail()
*
* @access private
* @access protected
* @return bool
*/
private function _send_with_mail()
protected function _send_with_mail()
{
if ($this->_safe_mode == TRUE)
{
@@ -1553,10 +1566,10 @@ class CI_Email {
/**
* Send using Sendmail
*
* @access private
* @access protected
* @return bool
*/
private function _send_with_sendmail()
protected function _send_with_sendmail()
{
$fp = @popen($this->mailpath . " -oi -f ".$this->clean_email($this->_headers['From'])." -t", 'w');
@@ -1591,10 +1604,10 @@ class CI_Email {
/**
* Send using SMTP
*
* @access private
* @access protected
* @return bool
*/
private function _send_with_smtp()
protected function _send_with_smtp()
{
if ($this->smtp_host == '')
{
@@ -1660,13 +1673,16 @@ class CI_Email {
/**
* SMTP Connect
*
* @access private
* @access protected
* @param string
* @return string
*/
private function _smtp_connect()
protected function _smtp_connect()
{
$this->_smtp_connect = fsockopen($this->smtp_host,
$ssl = NULL;
if ($this->smtp_crypto == 'ssl')
$ssl = 'ssl://';
$this->_smtp_connect = fsockopen($ssl.$this->smtp_host,
$this->smtp_port,
$errno,
$errstr,
@@ -1679,6 +1695,14 @@ class CI_Email {
}
$this->_set_error_message($this->_get_smtp_data());
if ($this->smtp_crypto == 'tls')
{
$this->_send_command('hello');
$this->_send_command('starttls');
stream_socket_enable_crypto($this->_smtp_connect, TRUE, STREAM_CRYPTO_METHOD_TLS_CLIENT);
}
return $this->_send_command('hello');
}
@@ -1687,12 +1711,12 @@ class CI_Email {
/**
* Send SMTP command
*
* @access private
* @access protected
* @param string
* @param string
* @return string
*/
private function _send_command($cmd, $data = '')
protected function _send_command($cmd, $data = '')
{
switch ($cmd)
{
@@ -1705,6 +1729,12 @@ class CI_Email {
$resp = 250;
break;
case 'starttls' :
$this->_send_data('STARTTLS');
$resp = 220;
break;
case 'from' :
$this->_send_data('MAIL FROM:<'.$data.'>');
@@ -1754,10 +1784,10 @@ class CI_Email {
/**
* SMTP Authenticate
*
* @access private
* @access protected
* @return bool
*/
private function _smtp_authenticate()
protected function _smtp_authenticate()
{
if ( ! $this->_smtp_auth)
{
@@ -1808,10 +1838,10 @@ class CI_Email {
/**
* Send SMTP data
*
* @access private
* @access protected
* @return bool
*/
private function _send_data($data)
protected function _send_data($data)
{
if ( ! fwrite($this->_smtp_connect, $data . $this->newline))
{
@@ -1829,10 +1859,10 @@ class CI_Email {
/**
* Get SMTP data
*
* @access private
* @access protected
* @return string
*/
private function _get_smtp_data()
protected function _get_smtp_data()
{
$data = "";
@@ -1854,10 +1884,10 @@ class CI_Email {
/**
* Get Hostname
*
* @access private
* @access protected
* @return string
*/
private function _get_hostname()
protected function _get_hostname()
{
return (isset($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : 'localhost.localdomain';
}
@@ -1867,10 +1897,10 @@ class CI_Email {
/**
* Get IP
*
* @access private
* @access protected
* @return string
*/
private function _get_ip()
protected function _get_ip()
{
if ($this->_IP !== FALSE)
{
@@ -1933,11 +1963,11 @@ class CI_Email {
/**
* Set Message
*
* @access private
* @access protected
* @param string
* @return string
*/
private function _set_error_message($msg, $val = '')
protected function _set_error_message($msg, $val = '')
{
$CI =& get_instance();
$CI->lang->load('email');
@@ -1957,11 +1987,11 @@ class CI_Email {
/**
* Mime Types
*
* @access private
* @access protected
* @param string
* @return string
*/
private function _mime_types($ext = "")
protected function _mime_types($ext = "")
{
$mimes = array( 'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',