- code cleanup (mostly whitespaces)

release-0.6
alecpl 15 years ago
parent a5f430d069
commit f7f9346feb

@ -332,17 +332,21 @@ class Mail_mime
function addAttachment($file,
$c_type = 'application/octet-stream',
$name = '',
$isfile = true,
$isfile = true,
$encoding = 'base64',
$disposition = 'attachment',
$charset = '',
$language = '',
$language = '',
$location = '',
$n_encoding = NULL,
$f_encoding = NULL)
$n_encoding = NULL,
$f_encoding = NULL)
{
$filedata = ($isfile === true) ? $this->_file2str($file)
: $file;
$filedata = ($isfile === true) ? $this->_file2str($file) : $file;
if (PEAR::isError($filedata)) {
return $filedata;
}
if ($isfile === true) {
// Force the name the user supplied, otherwise use $file
$filename = (strlen($name)) ? $name : $file;
@ -355,9 +359,6 @@ class Mail_mime
return $err;
}
$filename = $this->_basename($filename);
if (PEAR::isError($filedata)) {
return $filedata;
}
$this->_parts[] = array(
'body' => $filedata,
@ -368,8 +369,8 @@ class Mail_mime
'language' => $language,
'location' => $location,
'disposition' => $disposition,
'name-encoding' => $n_encoding,
'filename-encoding'=> $f_encoding
'name-encoding' => $n_encoding,
'filename-encoding' => $f_encoding
);
return true;
}
@ -538,12 +539,13 @@ class Mail_mime
$params['disposition'] = 'inline';
$params['dfilename'] = $value['name'];
$params['cid'] = $value['cid'];
if ($value['name-encoding']) {
$params['name-encoding'] = $value['name-encoding'];
}
if ($value['filename-encoding']) {
$params['filename-encoding'] = $value['filename-encoding'];
}
if (!empty($value['name-encoding'])) {
$params['name-encoding'] = $value['name-encoding'];
}
if (!empty($value['filename-encoding'])) {
$params['filename-encoding'] = $value['filename-encoding'];
}
$ret = $obj->addSubpart($value['body'], $params);
return $ret;
@ -573,12 +575,12 @@ class Mail_mime
if ($value['location']) {
$params['location'] = $value['location'];
}
if ($value['name-encoding']) {
$params['name-encoding'] = $value['name-encoding'];
}
if ($value['filename-encoding']) {
$params['filename-encoding'] = $value['filename-encoding'];
}
if ($value['name-encoding']) {
$params['name-encoding'] = $value['name-encoding'];
}
if ($value['filename-encoding']) {
$params['filename-encoding'] = $value['filename-encoding'];
}
$params['content_type'] = $value['c_type'];
$params['disposition'] = isset($value['disposition']) ?
$value['disposition'] : 'attachment';
@ -1012,7 +1014,7 @@ class Mail_mime
//RFC 2047 specifies that any split header should
//be seperated by a CRLF SPACE.
if ($output) {
$output .= "\r\n ";
$output .= "\r\n ";
}
$output .= $prefix . $part . $suffix;
}
@ -1098,7 +1100,7 @@ class Mail_mime
//RFC 2047 specifies that any split header should
//be seperated by a CRLF SPACE
if ($output) {
$output .= "\r\n ";
$output .= "\r\n ";
}
$output .= $prefix . $part . $suffix;
}
@ -1140,11 +1142,11 @@ class Mail_mime
*/
function _basename($filename)
{
// basename() is not unicode safe and locale dependent
if (stristr(PHP_OS, 'win') || stristr(PHP_OS, 'netware'))
return preg_replace('/^.*[\\\\\\/]/', '', $filename);
else
return preg_replace('/^.*[\/]/', '', $filename);
// basename() is not unicode safe and locale dependent
if (stristr(PHP_OS, 'win') || stristr(PHP_OS, 'netware'))
return preg_replace('/^.*[\\\\\\/]/', '', $filename);
else
return preg_replace('/^.*[\/]/', '', $filename);
}
} // End of class

@ -185,16 +185,16 @@ 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'],
$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'],
$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
// 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);
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);
$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];
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 . $_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;
$quoted .= $prefix . $value . $suffix;
}
return " {$name}=\"{$quoted}\"; ";

Loading…
Cancel
Save