From 7d49328296507c87ecf43636ed6d5db6940b0c00 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Thu, 06 Aug 2015 08:16:02 -0400 Subject: [PATCH] Code improvements and compat. with Mail_mime >= 1.9.0 --- plugins/enigma/lib/enigma_mime_message.php | 111 +++++++++++++++++++++++++++---------------------------- 1 files changed, 54 insertions(+), 57 deletions(-) diff --git a/plugins/enigma/lib/enigma_mime_message.php b/plugins/enigma/lib/enigma_mime_message.php index eae8cb7..395de8f 100644 --- a/plugins/enigma/lib/enigma_mime_message.php +++ b/plugins/enigma/lib/enigma_mime_message.php @@ -20,11 +20,11 @@ const PGP_SIGNED = 1; const PGP_ENCRYPTED = 2; - protected $_type; - protected $_message; - protected $_body; - protected $_signature; - protected $_encrypted; + protected $type; + protected $message; + protected $body; + protected $signature; + protected $encrypted; /** @@ -35,17 +35,16 @@ */ function __construct($message, $type) { - $this->_message = $message; - $this->_type = $type; + $this->message = $message; + $this->type = $type; // clone parameters - foreach (array_keys($this->_build_params) as $param) { - $this->_build_params[$param] = $message->getParam($param); + foreach (array_keys($this->build_params) as $param) { + $this->build_params[$param] = $message->getParam($param); } // clone headers - $this->_headers = $message->_headers; - + $this->headers = $message->headers(); /* if ($message->getParam('delay_file_io')) { // use common temp dir @@ -66,7 +65,7 @@ else { */ // \r\n is must-have here - $this->_body = $message->get() . "\r\n"; + $this->body = $message->get() . "\r\n"; /* } */ @@ -77,10 +76,10 @@ * * @return bool True if it is multipart, otherwise False */ - function isMultipart() + public function isMultipart() { - return $this->_message instanceof enigma_mime_message - || !empty($this->_message->_parts) || $this->_message->getHTMLBody(); + return $this->message instanceof enigma_mime_message + || $this->message->isMultipart() || $this->message->getHTMLBody(); } /** @@ -88,10 +87,10 @@ * * @return string Sender address */ - function getFromAddress() + public function getFromAddress() { // get sender address - $headers = $this->_message->headers(); + $headers = $this->message->headers(); $from = rcube_mime::decode_address_list($headers['From'], 1, false, null, true); $from = $from[1]; @@ -103,10 +102,10 @@ * * @return array Recipients' addresses */ - function getRecipients() + public function getRecipients() { // get sender address - $headers = $this->_message->headers(); + $headers = $this->message->headers(); $to = rcube_mime::decode_address_list($headers['To'], null, false, null, true); $cc = rcube_mime::decode_address_list($headers['Cc'], null, false, null, true); $bcc = rcube_mime::decode_address_list($headers['Bcc'], null, false, null, true); @@ -122,9 +121,9 @@ * * @return string Message body */ - function getOrigBody() + public function getOrigBody() { - $_headers = $this->_message->headers(); + $_headers = $this->message->headers(); $headers = array(); if ($_headers['Content-Transfer-Encoding']) { @@ -132,7 +131,7 @@ } $headers[] = 'Content-Type: ' . $_headers['Content-Type']; - return implode("\r\n", $headers) . "\r\n\r\n" . $this->_body; + return implode("\r\n", $headers) . "\r\n\r\n" . $this->body; } /** @@ -140,9 +139,9 @@ * * @param string Signature body */ - function addPGPSignature($body) + public function addPGPSignature($body) { - $this->_signature = $body; + $this->signature = $body; } /** @@ -150,9 +149,9 @@ * * @param string Encrypted body */ - function setPGPEncryptedBody($body) + public function setPGPEncryptedBody($body) { - $this->_encrypted = $body; + $this->encrypted = $body; } /** @@ -166,40 +165,39 @@ * without headers * * @return mixed The MIME message content string, null or PEAR error object - * @access public */ - function get($params = null, $filename = null, $skip_head = false) + public function get($params = null, $filename = null, $skip_head = false) { if (isset($params)) { while (list($key, $value) = each($params)) { - $this->_build_params[$key] = $value; + $this->build_params[$key] = $value; } } - $this->_checkParams(); + $this->checkParams(); - if ($this->_type == self::PGP_SIGNED) { + if ($this->type == self::PGP_SIGNED) { $body = "This is an OpenPGP/MIME signed message (RFC 4880 and 3156)"; $params = array( 'content_type' => "multipart/signed; micalg=pgp-sha1; protocol=\"application/pgp-signature\"", - 'eol' => $this->_build_params['eol'], + 'eol' => $this->build_params['eol'], ); $message = new Mail_mimePart($body, $params); - if (!empty($this->_body)) { - $headers = $this->_message->headers(); + if (!empty($this->body)) { + $headers = $this->message->headers(); $params = array('content_type' => $headers['Content-Type']); if ($headers['Content-Transfer-Encoding']) { $params['encoding'] = $headers['Content-Transfer-Encoding']; } - $message->addSubpart($this->_body, $params); + $message->addSubpart($this->body, $params); } - if (!empty($this->_signature)) { - $message->addSubpart($this->_signature, array( + if (!empty($this->signature)) { + $message->addSubpart($this->signature, array( 'filename' => 'signature.asc', 'content_type' => 'application/pgp-signature', 'disposition' => 'attachment', @@ -207,11 +205,11 @@ )); } } - else if ($this->_type == self::PGP_ENCRYPTED) { + else if ($this->type == self::PGP_ENCRYPTED) { $body = "This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)"; $params = array( 'content_type' => "multipart/encrypted; protocol=\"application/pgp-encrypted\"", - 'eol' => $this->_build_params['eol'], + 'eol' => $this->build_params['eol'], ); $message = new Mail_mimePart($body, $params); @@ -221,7 +219,7 @@ 'description' => 'PGP/MIME version identification', )); - $message->addSubpart($this->_encrypted, array( + $message->addSubpart($this->encrypted, array( 'content_type' => 'application/octet-stream', 'description' => 'PGP/MIME encrypted message', 'disposition' => 'inline', @@ -230,8 +228,8 @@ } // Use saved boundary - if (!empty($this->_build_params['boundary'])) { - $boundary = $this->_build_params['boundary']; + if (!empty($this->build_params['boundary'])) { + $boundary = $this->build_params['boundary']; } else { $boundary = null; @@ -241,18 +239,18 @@ if ($filename) { // Append mimePart message headers and body into file $headers = $message->encodeToFile($filename, $boundary, $skip_head); - if ($this->_isError($headers)) { + if ($this->isError($headers)) { return $headers; } - $this->_headers = array_merge($this->_headers, $headers); + $this->headers = array_merge($this->headers, $headers); return null; } else { $output = $message->encode($boundary, $skip_head); - if ($this->_isError($output)) { + if ($this->isError($output)) { return $output; } - $this->_headers = array_merge($this->_headers, $output['headers']); + $this->headers = array_merge($this->headers, $output['headers']); return $output['body']; } } @@ -261,20 +259,19 @@ * Get Content-Type and Content-Transfer-Encoding headers of the message * * @return array Headers array - * @access private */ - function _contentHeaders() + protected function contentHeaders() { - $this->_checkParams(); + $this->checkParams(); - $eol = !empty($this->_build_params['eol']) ? $this->_build_params['eol'] : "\r\n"; + $eol = !empty($this->build_params['eol']) ? $this->build_params['eol'] : "\r\n"; // multipart message: and boundary - if (!empty($this->_build_params['boundary'])) { - $boundary = $this->_build_params['boundary']; + if (!empty($this->build_params['boundary'])) { + $boundary = $this->build_params['boundary']; } - else if (!empty($this->_headers['Content-Type']) - && preg_match('/boundary="([^"]+)"/', $this->_headers['Content-Type'], $m) + else if (!empty($this->headers['Content-Type']) + && preg_match('/boundary="([^"]+)"/', $this->headers['Content-Type'], $m) ) { $boundary = $m[1]; } @@ -282,14 +279,14 @@ $boundary = '=_' . md5(rand() . microtime()); } - $this->_build_params['boundary'] = $boundary; + $this->build_params['boundary'] = $boundary; - if ($this->_type == self::PGP_SIGNED) { + if ($this->type == self::PGP_SIGNED) { $headers['Content-Type'] = "multipart/signed; micalg=pgp-sha1;$eol" ." protocol=\"application/pgp-signature\";$eol" ." boundary=\"$boundary\""; } - else if ($this->_type == self::PGP_ENCRYPTED) { + else if ($this->type == self::PGP_ENCRYPTED) { $headers['Content-Type'] = "multipart/encrypted;$eol" ." protocol=\"application/pgp-encrypted\";$eol" ." boundary=\"$boundary\""; -- Gitblit v1.9.1