summaryrefslogtreecommitdiff
path: root/program/lib/Mail/mimePart.php
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2009-11-26 11:11:27 +0000
committeralecpl <alec@alec.pl>2009-11-26 11:11:27 +0000
commitf7f9346feb02dafc8d7337790aacb0a9afb2b9a6 (patch)
tree1b40a26fe4bd0f6d4228c30b69994ada4f994ef7 /program/lib/Mail/mimePart.php
parenta5f430d06966f20e477681505def2cfd3f477504 (diff)
- code cleanup (mostly whitespaces)
Diffstat (limited to 'program/lib/Mail/mimePart.php')
-rw-r--r--program/lib/Mail/mimePart.php148
1 files changed, 75 insertions, 73 deletions
diff --git a/program/lib/Mail/mimePart.php b/program/lib/Mail/mimePart.php
index bf025dc8f..2ab146f29 100644
--- a/program/lib/Mail/mimePart.php
+++ b/program/lib/Mail/mimePart.php
@@ -182,19 +182,19 @@ class Mail_mimePart {
}
}
-
+
if (isset($contentType['type'])) {
$headers['Content-Type'] = $contentType['type'];
- if (isset($contentType['charset'])) {
+ if (isset($contentType['charset'])) {
$headers['Content-Type'] .= "; charset={$contentType['charset']}";
}
if (isset($contentType['name'])) {
$headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF;
$headers['Content-Type'] .=
- $this->_buildHeaderParam('name', $contentType['name'],
- isset($contentType['charset']) ? $contentType['charset'] : 'US-ASCII',
+ $this->_buildHeaderParam('name', $contentType['name'],
+ isset($contentType['charset']) ? $contentType['charset'] : 'US-ASCII',
isset($contentType['language']) ? $contentType['language'] : NULL,
- isset($params['name-encoding']) ? $params['name-encoding'] : NULL);
+ isset($params['name-encoding']) ? $params['name-encoding'] : NULL);
}
}
@@ -204,10 +204,10 @@ class Mail_mimePart {
if (isset($contentDisp['filename'])) {
$headers['Content-Disposition'] .= ';' . MAIL_MIMEPART_CRLF;
$headers['Content-Disposition'] .=
- $this->_buildHeaderParam('filename', $contentDisp['filename'],
- isset($contentDisp['charset']) ? $contentDisp['charset'] : 'US-ASCII',
+ $this->_buildHeaderParam('filename', $contentDisp['filename'],
+ isset($contentDisp['charset']) ? $contentDisp['charset'] : 'US-ASCII',
isset($contentDisp['language']) ? $contentDisp['language'] : NULL,
- isset($params['filename-encoding']) ? $params['filename-encoding'] : NULL);
+ isset($params['filename-encoding']) ? $params['filename-encoding'] : NULL);
}
}
@@ -257,8 +257,8 @@ class Mail_mimePart {
}
$encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF .
- implode('--' . $boundary . MAIL_MIMEPART_CRLF , $subparts) .
- '--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
+ implode('--' . $boundary . MAIL_MIMEPART_CRLF , $subparts) .
+ '--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
} else {
$encoded['body'] = $this->_getEncodedData($this->_body, $this->_encoding);
@@ -398,26 +398,28 @@ class Mail_mimePart {
function _buildHeaderParam($name, $value, $charset=NULL, $language=NULL, $paramEnc=NULL, $maxLength=78)
{
// RFC 2045:
- // value needs encoding if contains non-ASCII chars or is longer than 78 chars
+ // value needs encoding if contains non-ASCII chars or is longer than 78 chars
if (!preg_match('#[^\x20-\x7E]#', $value)) { // ASCII
- // token
- if (!preg_match('#([^\x21,\x23-\x27,\x2A,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#', $value)) {
- if (strlen($name) + strlen($value) + 3 <= $maxLength)
- return " {$name}={$value};";
- } else { // quoted-string
- $quoted = addcslashes($value, '\\"');
- if (strlen($name) + strlen($quoted) + 5 <= $maxLength)
- return " {$name}=\"{$quoted}\";";
- }
- }
-
- // RFC2047: use quoted-printable/base64 encoding
- if ($paramEnc == 'quoted-printable' || $paramEnc == 'base64')
- return $this->_buildRFC2047Param($name, $value, $charset, $paramEnc);
-
- // RFC2231:
- $encValue = preg_replace('#([^\x21,\x23,\x24,\x26,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#e',
- '"%" . strtoupper(dechex(ord("\1")))', $value);
+ // token
+ if (!preg_match('#([^\x21,\x23-\x27,\x2A,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#', $value)) {
+ if (strlen($name) + strlen($value) + 3 <= $maxLength)
+ return " {$name}={$value};";
+ } else { // quoted-string
+ $quoted = addcslashes($value, '\\"');
+ if (strlen($name) + strlen($quoted) + 5 <= $maxLength)
+ return " {$name}=\"{$quoted}\";";
+ }
+ }
+
+ // RFC2047: use quoted-printable/base64 encoding
+ if ($paramEnc == 'quoted-printable' || $paramEnc == 'base64')
+ return $this->_buildRFC2047Param($name, $value, $charset, $paramEnc);
+
+ // RFC2231:
+ $encValue = preg_replace(
+ '#([^\x21,\x23,\x24,\x26,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#e',
+ '"%" . strtoupper(dechex(ord("\1")))',
+ $value);
$value = "$charset'$language'$encValue";
$header = " {$name}*={$value};";
@@ -461,64 +463,64 @@ class Mail_mimePart {
*/
function _buildRFC2047Param($name, $value, $charset, $encoding='quoted-printable', $maxLength=75)
{
- // WARNING: RFC 2047 says: "An 'encoded-word' MUST NOT be used in
- // parameter of a MIME Content-Type or Content-Disposition field"
- // but... it's supported by many clients/servers
-
- if ($encoding == 'base64')
- {
- $value = base64_encode($value);
+ // WARNING: RFC 2047 says: "An 'encoded-word' MUST NOT be used in
+ // parameter of a MIME Content-Type or Content-Disposition field"
+ // but... it's supported by many clients/servers
+
+ if ($encoding == 'base64')
+ {
+ $value = base64_encode($value);
$prefix = '=?' . $charset . '?B?';
$suffix = '?=';
- $quoted = '';
+ $quoted = '';
- $add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';'
- $len = $add_len + strlen($value);
+ $add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';'
+ $len = $add_len + strlen($value);
- while ($len > $maxLength) {
- // We can cut base64-encoded string every 4 characters
- $real_len = floor(($maxLength - $add_len) / 4) * 4;
- $_quote = substr($value, 0, $real_len);
- $value = substr($value, $real_len);
+ while ($len > $maxLength) {
+ // We can cut base64-encoded string every 4 characters
+ $real_len = floor(($maxLength - $add_len) / 4) * 4;
+ $_quote = substr($value, 0, $real_len);
+ $value = substr($value, $real_len);
- $quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' ';
- $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';'
- $len = strlen($value) + $add_len;
- }
+ $quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' ';
+ $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';'
+ $len = strlen($value) + $add_len;
+ }
$quoted .= $prefix . $value . $suffix;
}
- else // quoted-printable
- {
- // Replace all special characters used by the encoder.
+ else // quoted-printable
+ {
+ // Replace all special characters used by the encoder.
$search = array('=', '_', '?', ' ');
- $replace = array('=3D', '=5F', '=3F', '_');
- $value = str_replace($search, $replace, $value);
+ $replace = array('=3D', '=5F', '=3F', '_');
+ $value = str_replace($search, $replace, $value);
- // Replace all extended characters (\x80-xFF) with their
- // ASCII values.
- $value = preg_replace('/([\x80-\xFF])/e',
- '"=" . strtoupper(dechex(ord("\1")))', $value);
+ // Replace all extended characters (\x80-xFF) with their
+ // ASCII values.
+ $value = preg_replace('/([\x80-\xFF])/e',
+ '"=" . strtoupper(dechex(ord("\1")))', $value);
$prefix = '=?' . $charset . '?Q?';
$suffix = '?=';
- $add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';'
- $len = $add_len + strlen($value);
-
- while ($len > $maxLength) {
- $length = $maxLength - $add_len;
- // not break any encoded letters
- if(preg_match("/^(.{0,$length}[^\=][^\=])/", $value, $matches))
- $_quote = $matches[1];
-
- $quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' ';
- $value = substr($value, strlen($_quote));
- $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';'
- $len = strlen($value) + $add_len;
- }
-
- $quoted .= $prefix . $value . $suffix;
+ $add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';'
+ $len = $add_len + strlen($value);
+
+ while ($len > $maxLength) {
+ $length = $maxLength - $add_len;
+ // not break any encoded letters
+ if(preg_match("/^(.{0,$length}[^\=][^\=])/", $value, $matches))
+ $_quote = $matches[1];
+
+ $quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' ';
+ $value = substr($value, strlen($_quote));
+ $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';'
+ $len = strlen($value) + $add_len;
+ }
+
+ $quoted .= $prefix . $value . $suffix;
}
return " {$name}=\"{$quoted}\"; ";