- 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, function addAttachment($file,
$c_type = 'application/octet-stream', $c_type = 'application/octet-stream',
$name = '', $name = '',
$isfile = true, $isfile = true,
$encoding = 'base64', $encoding = 'base64',
$disposition = 'attachment', $disposition = 'attachment',
$charset = '', $charset = '',
$language = '', $language = '',
$location = '', $location = '',
$n_encoding = NULL, $n_encoding = NULL,
$f_encoding = NULL) $f_encoding = NULL)
{ {
$filedata = ($isfile === true) ? $this->_file2str($file) $filedata = ($isfile === true) ? $this->_file2str($file) : $file;
: $file;
if (PEAR::isError($filedata)) {
return $filedata;
}
if ($isfile === true) { if ($isfile === true) {
// Force the name the user supplied, otherwise use $file // Force the name the user supplied, otherwise use $file
$filename = (strlen($name)) ? $name : $file; $filename = (strlen($name)) ? $name : $file;
@ -355,9 +359,6 @@ class Mail_mime
return $err; return $err;
} }
$filename = $this->_basename($filename); $filename = $this->_basename($filename);
if (PEAR::isError($filedata)) {
return $filedata;
}
$this->_parts[] = array( $this->_parts[] = array(
'body' => $filedata, 'body' => $filedata,
@ -368,8 +369,8 @@ class Mail_mime
'language' => $language, 'language' => $language,
'location' => $location, 'location' => $location,
'disposition' => $disposition, 'disposition' => $disposition,
'name-encoding' => $n_encoding, 'name-encoding' => $n_encoding,
'filename-encoding'=> $f_encoding 'filename-encoding' => $f_encoding
); );
return true; return true;
} }
@ -397,16 +398,16 @@ class Mail_mime
$err = PEAR::raiseError('File is not readable: ' . $file_name); $err = PEAR::raiseError('File is not readable: ' . $file_name);
return $err; return $err;
} }
//Temporarily reset magic_quotes_runtime and read file contents //Temporarily reset magic_quotes_runtime and read file contents
if ($magic_quote_setting = get_magic_quotes_runtime()) { if ($magic_quote_setting = get_magic_quotes_runtime()) {
set_magic_quotes_runtime(0); set_magic_quotes_runtime(0);
} }
$cont = file_get_contents($file_name); $cont = file_get_contents($file_name);
if ($magic_quote_setting) { if ($magic_quote_setting) {
set_magic_quotes_runtime($magic_quote_setting); set_magic_quotes_runtime($magic_quote_setting);
} }
return $cont; return $cont;
} }
@ -471,7 +472,7 @@ class Mail_mime
{ {
$params = array(); $params = array();
$params['content_type'] = 'multipart/mixed'; $params['content_type'] = 'multipart/mixed';
//Create empty multipart/mixed Mail_mimePart object to return //Create empty multipart/mixed Mail_mimePart object to return
$ret = new Mail_mimePart('', $params); $ret = new Mail_mimePart('', $params);
return $ret; return $ret;
@ -538,16 +539,17 @@ class Mail_mime
$params['disposition'] = 'inline'; $params['disposition'] = 'inline';
$params['dfilename'] = $value['name']; $params['dfilename'] = $value['name'];
$params['cid'] = $value['cid']; $params['cid'] = $value['cid'];
if ($value['name-encoding']) {
$params['name-encoding'] = $value['name-encoding']; if (!empty($value['name-encoding'])) {
} $params['name-encoding'] = $value['name-encoding'];
if ($value['filename-encoding']) { }
$params['filename-encoding'] = $value['filename-encoding']; if (!empty($value['filename-encoding'])) {
} $params['filename-encoding'] = $value['filename-encoding'];
}
$ret = $obj->addSubpart($value['body'], $params); $ret = $obj->addSubpart($value['body'], $params);
return $ret; return $ret;
} }
/** /**
@ -573,12 +575,12 @@ class Mail_mime
if ($value['location']) { if ($value['location']) {
$params['location'] = $value['location']; $params['location'] = $value['location'];
} }
if ($value['name-encoding']) { if ($value['name-encoding']) {
$params['name-encoding'] = $value['name-encoding']; $params['name-encoding'] = $value['name-encoding'];
} }
if ($value['filename-encoding']) { if ($value['filename-encoding']) {
$params['filename-encoding'] = $value['filename-encoding']; $params['filename-encoding'] = $value['filename-encoding'];
} }
$params['content_type'] = $value['c_type']; $params['content_type'] = $value['c_type'];
$params['disposition'] = isset($value['disposition']) ? $params['disposition'] = isset($value['disposition']) ?
$value['disposition'] : 'attachment'; $value['disposition'] : 'attachment';
@ -605,9 +607,9 @@ class Mail_mime
* @access public * @access public
*/ */
function getMessage( function getMessage(
$separation = null, $separation = null,
$build_params = null, $build_params = null,
$xtra_headers = null, $xtra_headers = null,
$overwrite = false $overwrite = false
) )
{ {
@ -658,7 +660,7 @@ class Mail_mime
$this->_build_params[$key] = $value; $this->_build_params[$key] = $value;
} }
} }
if (isset($this->_headers['From'])){ if (isset($this->_headers['From'])){
//Bug #11381: Illegal characters in domain ID //Bug #11381: Illegal characters in domain ID
if (preg_match("|(@[0-9a-zA-Z\-\.]+)|", $this->_headers['From'], $matches)){ if (preg_match("|(@[0-9a-zA-Z\-\.]+)|", $this->_headers['From'], $matches)){
@ -670,7 +672,7 @@ class Mail_mime
$this->_html_images[$i]['cid'] = $this->_html_images[$i]['cid'] . $domainID; $this->_html_images[$i]['cid'] = $this->_html_images[$i]['cid'] . $domainID;
} }
} }
if (count($this->_html_images) AND isset($this->_htmlbody)) { if (count($this->_html_images) AND isset($this->_htmlbody)) {
foreach ($this->_html_images as $key => $value) { foreach ($this->_html_images as $key => $value) {
$regex = array(); $regex = array();
@ -684,7 +686,7 @@ class Mail_mime
$rep[] = 'url(\1cid:' . $value['cid'] . '\1)'; $rep[] = 'url(\1cid:' . $value['cid'] . '\1)';
$this->_htmlbody = preg_replace($regex, $rep, $this->_htmlbody); $this->_htmlbody = preg_replace($regex, $rep, $this->_htmlbody);
$this->_html_images[$key]['name'] = $this->_html_images[$key]['name'] =
$this->_basename($this->_html_images[$key]['name']); $this->_basename($this->_html_images[$key]['name']);
} }
} }
@ -775,7 +777,7 @@ class Mail_mime
if (isset($message)) { if (isset($message)) {
$output = $message->encode(); $output = $message->encode();
$this->_headers = array_merge($this->_headers, $this->_headers = array_merge($this->_headers,
$output['headers']); $output['headers']);
$body = $output['body']; $body = $output['body'];
@ -831,7 +833,7 @@ class Mail_mime
function txtHeaders($xtra_headers = null, $overwrite = false) function txtHeaders($xtra_headers = null, $overwrite = false)
{ {
$headers = $this->headers($xtra_headers, $overwrite); $headers = $this->headers($xtra_headers, $overwrite);
$ret = ''; $ret = '';
foreach ($headers as $key => $val) { foreach ($headers as $key => $val) {
$ret .= "$key: $val" . MAIL_MIME_CRLF; $ret .= "$key: $val" . MAIL_MIME_CRLF;
@ -943,11 +945,11 @@ class Mail_mime
//$hdr_value_out: The recombined $hdr_val-atoms, or the encoded string. //$hdr_value_out: The recombined $hdr_val-atoms, or the encoded string.
//Note: Atom as specified here is not exactly the same as an RFC822 atom, //Note: Atom as specified here is not exactly the same as an RFC822 atom,
//as $atom's may contain just a single space. //as $atom's may contain just a single space.
$useIconv = true; $useIconv = true;
if (isset($build_params['ignore-iconv'])) { if (isset($build_params['ignore-iconv'])) {
$useIconv = !$build_params['ignore-iconv']; $useIconv = !$build_params['ignore-iconv'];
} }
foreach ($input as $hdr_name => $hdr_value) { foreach ($input as $hdr_name => $hdr_value) {
/* /*
$parts = preg_split('/([ ])/', $hdr_value, -1, PREG_SPLIT_DELIM_CAPTURE); $parts = preg_split('/([ ])/', $hdr_value, -1, PREG_SPLIT_DELIM_CAPTURE);
@ -977,14 +979,14 @@ class Mail_mime
$imePrefs['output-charset'] = $build_params['head_charset']; $imePrefs['output-charset'] = $build_params['head_charset'];
$imePrefs['line-length'] = 74; $imePrefs['line-length'] = 74;
$imePrefs['line-break-chars'] = "\r\n"; //Specified in RFC2047 $imePrefs['line-break-chars'] = "\r\n"; //Specified in RFC2047
$hdr_value = iconv_mime_encode($hdr_name, $hdr_value, $imePrefs); $hdr_value = iconv_mime_encode($hdr_name, $hdr_value, $imePrefs);
$hdr_value = preg_replace("#^{$hdr_name}\:\ #", "", $hdr_value); $hdr_value = preg_replace("#^{$hdr_name}\:\ #", "", $hdr_value);
} elseif ($build_params['head_encoding'] == 'base64') { } elseif ($build_params['head_encoding'] == 'base64') {
//Base64 encoding has been selected. //Base64 encoding has been selected.
//Base64 encode the entire string //Base64 encode the entire string
$hdr_value = base64_encode($hdr_value); $hdr_value = base64_encode($hdr_value);
//Generate the header using the specified params and dynamicly //Generate the header using the specified params and dynamicly
//determine the maximum length of such strings. //determine the maximum length of such strings.
//75 is the value specified in the RFC. The first -2 is there so //75 is the value specified in the RFC. The first -2 is there so
@ -1000,7 +1002,7 @@ class Mail_mime
//we can get must be rounded down. //we can get must be rounded down.
$maxLength = $maxLength - ($maxLength % 4); $maxLength = $maxLength - ($maxLength % 4);
$maxLength1stLine = $maxLength1stLine - ($maxLength1stLine % 4); $maxLength1stLine = $maxLength1stLine - ($maxLength1stLine % 4);
$cutpoint = $maxLength1stLine; $cutpoint = $maxLength1stLine;
$hdr_value_out = $hdr_value; $hdr_value_out = $hdr_value;
$output = ""; $output = "";
@ -1009,10 +1011,10 @@ class Mail_mime
$part = substr($hdr_value_out, 0, $cutpoint); $part = substr($hdr_value_out, 0, $cutpoint);
$hdr_value_out = substr($hdr_value_out, $cutpoint); $hdr_value_out = substr($hdr_value_out, $cutpoint);
$cutpoint = $maxLength; $cutpoint = $maxLength;
//RFC 2047 specifies that any split header should //RFC 2047 specifies that any split header should
//be seperated by a CRLF SPACE. //be seperated by a CRLF SPACE.
if ($output) { if ($output) {
$output .= "\r\n "; $output .= "\r\n ";
} }
$output .= $prefix . $part . $suffix; $output .= $prefix . $part . $suffix;
} }
@ -1036,7 +1038,7 @@ class Mail_mime
$hdr_value = substr($hdr_value, 0, -1); $hdr_value = substr($hdr_value, 0, -1);
$quoteSuffix = '"'; $quoteSuffix = '"';
} }
//Generate the header using the specified params and dynamicly //Generate the header using the specified params and dynamicly
//determine the maximum length of such strings. //determine the maximum length of such strings.
//75 is the value specified in the RFC. The -2 is there so //75 is the value specified in the RFC. The -2 is there so
@ -1048,12 +1050,12 @@ class Mail_mime
$maxLength = 75 - strlen($prefix . $suffix) - 2 - 1; $maxLength = 75 - strlen($prefix . $suffix) - 2 - 1;
$maxLength1stLine = $maxLength - strlen($hdr_name) - 2; $maxLength1stLine = $maxLength - strlen($hdr_name) - 2;
$maxLength = $maxLength - 1; $maxLength = $maxLength - 1;
//Replace all special characters used by the encoder. //Replace all special characters used by the encoder.
$search = array('=', '_', '?', ' '); $search = array('=', '_', '?', ' ');
$replace = array('=3D', '=5F', '=3F', '_'); $replace = array('=3D', '=5F', '=3F', '_');
$hdr_value = str_replace($search, $replace, $hdr_value); $hdr_value = str_replace($search, $replace, $hdr_value);
//Replace all extended characters (\x80-xFF) with their //Replace all extended characters (\x80-xFF) with their
//ASCII values. //ASCII values.
$hdr_value = preg_replace('#([\x80-\xFF])#e', $hdr_value = preg_replace('#([\x80-\xFF])#e',
@ -1067,7 +1069,7 @@ class Mail_mime
//Fix for Bug #10298, Ota Mares <om@viazenetti.de> //Fix for Bug #10298, Ota Mares <om@viazenetti.de>
//Concat the double quotes and encoded string together //Concat the double quotes and encoded string together
$hdr_value = $quotePrefix . $hdr_value . $quoteSuffix; $hdr_value = $quotePrefix . $hdr_value . $quoteSuffix;
$hdr_value_out = $hdr_value; $hdr_value_out = $hdr_value;
$realMax = $maxLength1stLine + strlen($prefix . $suffix); $realMax = $maxLength1stLine + strlen($prefix . $suffix);
if (strlen($hdr_value_out) >= $realMax) { if (strlen($hdr_value_out) >= $realMax) {
@ -1078,11 +1080,11 @@ class Mail_mime
//Split translated string at every $maxLength //Split translated string at every $maxLength
//But make sure not to break any translated chars. //But make sure not to break any translated chars.
$found = preg_match($reg, $hdr_value_out, $matches); $found = preg_match($reg, $hdr_value_out, $matches);
//After this first line, we need to use a different //After this first line, we need to use a different
//regexp for the first line. //regexp for the first line.
$reg = $reg2nd; $reg = $reg2nd;
//Save the found part and encapsulate it in the //Save the found part and encapsulate it in the
//prefix & suffix. Then remove the part from the //prefix & suffix. Then remove the part from the
//$hdr_value_out variable. //$hdr_value_out variable.
@ -1094,11 +1096,11 @@ class Mail_mime
$part = $hdr_value_out; $part = $hdr_value_out;
$hdr_value_out = ""; $hdr_value_out = "";
} }
//RFC 2047 specifies that any split header should //RFC 2047 specifies that any split header should
//be seperated by a CRLF SPACE //be seperated by a CRLF SPACE
if ($output) { if ($output) {
$output .= "\r\n "; $output .= "\r\n ";
} }
$output .= $prefix . $part . $suffix; $output .= $prefix . $part . $suffix;
} }
@ -1140,11 +1142,11 @@ class Mail_mime
*/ */
function _basename($filename) function _basename($filename)
{ {
// basename() is not unicode safe and locale dependent // basename() is not unicode safe and locale dependent
if (stristr(PHP_OS, 'win') || stristr(PHP_OS, 'netware')) if (stristr(PHP_OS, 'win') || stristr(PHP_OS, 'netware'))
return preg_replace('/^.*[\\\\\\/]/', '', $filename); return preg_replace('/^.*[\\\\\\/]/', '', $filename);
else else
return preg_replace('/^.*[\/]/', '', $filename); return preg_replace('/^.*[\/]/', '', $filename);
} }
} // End of class } // End of class

@ -182,19 +182,19 @@ class Mail_mimePart {
} }
} }
if (isset($contentType['type'])) { if (isset($contentType['type'])) {
$headers['Content-Type'] = $contentType['type']; $headers['Content-Type'] = $contentType['type'];
if (isset($contentType['charset'])) { if (isset($contentType['charset'])) {
$headers['Content-Type'] .= "; charset={$contentType['charset']}"; $headers['Content-Type'] .= "; charset={$contentType['charset']}";
} }
if (isset($contentType['name'])) { if (isset($contentType['name'])) {
$headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF; $headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF;
$headers['Content-Type'] .= $headers['Content-Type'] .=
$this->_buildHeaderParam('name', $contentType['name'], $this->_buildHeaderParam('name', $contentType['name'],
isset($contentType['charset']) ? $contentType['charset'] : 'US-ASCII', isset($contentType['charset']) ? $contentType['charset'] : 'US-ASCII',
isset($contentType['language']) ? $contentType['language'] : NULL, 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'])) { if (isset($contentDisp['filename'])) {
$headers['Content-Disposition'] .= ';' . MAIL_MIMEPART_CRLF; $headers['Content-Disposition'] .= ';' . MAIL_MIMEPART_CRLF;
$headers['Content-Disposition'] .= $headers['Content-Disposition'] .=
$this->_buildHeaderParam('filename', $contentDisp['filename'], $this->_buildHeaderParam('filename', $contentDisp['filename'],
isset($contentDisp['charset']) ? $contentDisp['charset'] : 'US-ASCII', isset($contentDisp['charset']) ? $contentDisp['charset'] : 'US-ASCII',
isset($contentDisp['language']) ? $contentDisp['language'] : NULL, 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 . $encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF .
implode('--' . $boundary . MAIL_MIMEPART_CRLF , $subparts) . implode('--' . $boundary . MAIL_MIMEPART_CRLF , $subparts) .
'--' . $boundary.'--' . MAIL_MIMEPART_CRLF; '--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
} else { } else {
$encoded['body'] = $this->_getEncodedData($this->_body, $this->_encoding); $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) function _buildHeaderParam($name, $value, $charset=NULL, $language=NULL, $paramEnc=NULL, $maxLength=78)
{ {
// RFC 2045: // 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 if (!preg_match('#[^\x20-\x7E]#', $value)) { // ASCII
// token // token
if (!preg_match('#([^\x21,\x23-\x27,\x2A,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#', $value)) { if (!preg_match('#([^\x21,\x23-\x27,\x2A,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#', $value)) {
if (strlen($name) + strlen($value) + 3 <= $maxLength) if (strlen($name) + strlen($value) + 3 <= $maxLength)
return " {$name}={$value};"; return " {$name}={$value};";
} else { // quoted-string } else { // quoted-string
$quoted = addcslashes($value, '\\"'); $quoted = addcslashes($value, '\\"');
if (strlen($name) + strlen($quoted) + 5 <= $maxLength) if (strlen($name) + strlen($quoted) + 5 <= $maxLength)
return " {$name}=\"{$quoted}\";"; return " {$name}=\"{$quoted}\";";
} }
} }
// RFC2047: use quoted-printable/base64 encoding // RFC2047: use quoted-printable/base64 encoding
if ($paramEnc == 'quoted-printable' || $paramEnc == 'base64') if ($paramEnc == 'quoted-printable' || $paramEnc == 'base64')
return $this->_buildRFC2047Param($name, $value, $charset, $paramEnc); return $this->_buildRFC2047Param($name, $value, $charset, $paramEnc);
// RFC2231: // RFC2231:
$encValue = preg_replace('#([^\x21,\x23,\x24,\x26,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#e', $encValue = preg_replace(
'"%" . strtoupper(dechex(ord("\1")))', $value); '#([^\x21,\x23,\x24,\x26,\x2B,\x2D,\x2E,\x30-\x39,\x41-\x5A,\x5E-\x7E])#e',
'"%" . strtoupper(dechex(ord("\1")))',
$value);
$value = "$charset'$language'$encValue"; $value = "$charset'$language'$encValue";
$header = " {$name}*={$value};"; $header = " {$name}*={$value};";
@ -461,64 +463,64 @@ class Mail_mimePart {
*/ */
function _buildRFC2047Param($name, $value, $charset, $encoding='quoted-printable', $maxLength=75) function _buildRFC2047Param($name, $value, $charset, $encoding='quoted-printable', $maxLength=75)
{ {
// WARNING: RFC 2047 says: "An 'encoded-word' MUST NOT be used in // WARNING: RFC 2047 says: "An 'encoded-word' MUST NOT be used in
// parameter of a MIME Content-Type or Content-Disposition field" // parameter of a MIME Content-Type or Content-Disposition field"
// but... it's supported by many clients/servers // but... it's supported by many clients/servers
if ($encoding == 'base64') if ($encoding == 'base64')
{ {
$value = base64_encode($value); $value = base64_encode($value);
$prefix = '=?' . $charset . '?B?'; $prefix = '=?' . $charset . '?B?';
$suffix = '?='; $suffix = '?=';
$quoted = ''; $quoted = '';
$add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';' $add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';'
$len = $add_len + strlen($value); $len = $add_len + strlen($value);
while ($len > $maxLength) { while ($len > $maxLength) {
// We can cut base64-encoded string every 4 characters // We can cut base64-encoded string every 4 characters
$real_len = floor(($maxLength - $add_len) / 4) * 4; $real_len = floor(($maxLength - $add_len) / 4) * 4;
$_quote = substr($value, 0, $real_len); $_quote = substr($value, 0, $real_len);
$value = substr($value, $real_len); $value = substr($value, $real_len);
$quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' '; $quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' ';
$add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';' $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';'
$len = strlen($value) + $add_len; $len = strlen($value) + $add_len;
} }
$quoted .= $prefix . $value . $suffix; $quoted .= $prefix . $value . $suffix;
} }
else // quoted-printable else // quoted-printable
{ {
// Replace all special characters used by the encoder. // Replace all special characters used by the encoder.
$search = array('=', '_', '?', ' '); $search = array('=', '_', '?', ' ');
$replace = array('=3D', '=5F', '=3F', '_'); $replace = array('=3D', '=5F', '=3F', '_');
$value = str_replace($search, $replace, $value); $value = str_replace($search, $replace, $value);
// Replace all extended characters (\x80-xFF) with their // Replace all extended characters (\x80-xFF) with their
// ASCII values. // ASCII values.
$value = preg_replace('/([\x80-\xFF])/e', $value = preg_replace('/([\x80-\xFF])/e',
'"=" . strtoupper(dechex(ord("\1")))', $value); '"=" . strtoupper(dechex(ord("\1")))', $value);
$prefix = '=?' . $charset . '?Q?'; $prefix = '=?' . $charset . '?Q?';
$suffix = '?='; $suffix = '?=';
$add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';' $add_len = strlen($prefix . $suffix) + strlen($name) + 6; // 2 x SPACE, 2 x '"', '=', ';'
$len = $add_len + strlen($value); $len = $add_len + strlen($value);
while ($len > $maxLength) { while ($len > $maxLength) {
$length = $maxLength - $add_len; $length = $maxLength - $add_len;
// not break any encoded letters // not break any encoded letters
if(preg_match("/^(.{0,$length}[^\=][^\=])/", $value, $matches)) if(preg_match("/^(.{0,$length}[^\=][^\=])/", $value, $matches))
$_quote = $matches[1]; $_quote = $matches[1];
$quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' '; $quoted .= $prefix . $_quote . $suffix . MAIL_MIMEPART_CRLF . ' ';
$value = substr($value, strlen($_quote)); $value = substr($value, strlen($_quote));
$add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';' $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';'
$len = strlen($value) + $add_len; $len = strlen($value) + $add_len;
} }
$quoted .= $prefix . $value . $suffix; $quoted .= $prefix . $value . $suffix;
} }
return " {$name}=\"{$quoted}\"; "; return " {$name}=\"{$quoted}\"; ";

Loading…
Cancel
Save