summaryrefslogtreecommitdiff
path: root/program/lib/Mail/mime.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/lib/Mail/mime.php')
-rw-r--r--program/lib/Mail/mime.php118
1 files changed, 60 insertions, 58 deletions
diff --git a/program/lib/Mail/mime.php b/program/lib/Mail/mime.php
index 975ca48ce..fd9e2befa 100644
--- a/program/lib/Mail/mime.php
+++ b/program/lib/Mail/mime.php
@@ -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;
}
@@ -397,16 +398,16 @@ class Mail_mime
$err = PEAR::raiseError('File is not readable: ' . $file_name);
return $err;
}
-
+
//Temporarily reset magic_quotes_runtime and read file contents
if ($magic_quote_setting = get_magic_quotes_runtime()) {
set_magic_quotes_runtime(0);
}
- $cont = file_get_contents($file_name);
+ $cont = file_get_contents($file_name);
if ($magic_quote_setting) {
set_magic_quotes_runtime($magic_quote_setting);
}
-
+
return $cont;
}
@@ -471,7 +472,7 @@ class Mail_mime
{
$params = array();
$params['content_type'] = 'multipart/mixed';
-
+
//Create empty multipart/mixed Mail_mimePart object to return
$ret = new Mail_mimePart('', $params);
return $ret;
@@ -538,16 +539,17 @@ 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';
@@ -605,9 +607,9 @@ class Mail_mime
* @access public
*/
function getMessage(
- $separation = null,
- $build_params = null,
- $xtra_headers = null,
+ $separation = null,
+ $build_params = null,
+ $xtra_headers = null,
$overwrite = false
)
{
@@ -658,7 +660,7 @@ class Mail_mime
$this->_build_params[$key] = $value;
}
}
-
+
if (isset($this->_headers['From'])){
//Bug #11381: Illegal characters in domain ID
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;
}
}
-
+
if (count($this->_html_images) AND isset($this->_htmlbody)) {
foreach ($this->_html_images as $key => $value) {
$regex = array();
@@ -684,7 +686,7 @@ class Mail_mime
$rep[] = 'url(\1cid:' . $value['cid'] . '\1)';
$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']);
}
}
@@ -775,7 +777,7 @@ class Mail_mime
if (isset($message)) {
$output = $message->encode();
-
+
$this->_headers = array_merge($this->_headers,
$output['headers']);
$body = $output['body'];
@@ -831,7 +833,7 @@ class Mail_mime
function txtHeaders($xtra_headers = null, $overwrite = false)
{
$headers = $this->headers($xtra_headers, $overwrite);
-
+
$ret = '';
foreach ($headers as $key => $val) {
$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.
//Note: Atom as specified here is not exactly the same as an RFC822 atom,
//as $atom's may contain just a single space.
-
- $useIconv = true;
+
+ $useIconv = true;
if (isset($build_params['ignore-iconv'])) {
$useIconv = !$build_params['ignore-iconv'];
- }
+ }
foreach ($input as $hdr_name => $hdr_value) {
/*
$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['line-length'] = 74;
$imePrefs['line-break-chars'] = "\r\n"; //Specified in RFC2047
-
+
$hdr_value = iconv_mime_encode($hdr_name, $hdr_value, $imePrefs);
$hdr_value = preg_replace("#^{$hdr_name}\:\ #", "", $hdr_value);
} elseif ($build_params['head_encoding'] == 'base64') {
//Base64 encoding has been selected.
//Base64 encode the entire string
$hdr_value = base64_encode($hdr_value);
-
+
//Generate the header using the specified params and dynamicly
//determine the maximum length of such strings.
//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.
$maxLength = $maxLength - ($maxLength % 4);
$maxLength1stLine = $maxLength1stLine - ($maxLength1stLine % 4);
-
+
$cutpoint = $maxLength1stLine;
$hdr_value_out = $hdr_value;
$output = "";
@@ -1009,10 +1011,10 @@ class Mail_mime
$part = substr($hdr_value_out, 0, $cutpoint);
$hdr_value_out = substr($hdr_value_out, $cutpoint);
$cutpoint = $maxLength;
- //RFC 2047 specifies that any split header should
+ //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;
}
@@ -1036,7 +1038,7 @@ class Mail_mime
$hdr_value = substr($hdr_value, 0, -1);
$quoteSuffix = '"';
}
-
+
//Generate the header using the specified params and dynamicly
//determine the maximum length of such strings.
//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;
$maxLength1stLine = $maxLength - strlen($hdr_name) - 2;
$maxLength = $maxLength - 1;
-
+
//Replace all special characters used by the encoder.
$search = array('=', '_', '?', ' ');
$replace = array('=3D', '=5F', '=3F', '_');
$hdr_value = str_replace($search, $replace, $hdr_value);
-
+
//Replace all extended characters (\x80-xFF) with their
//ASCII values.
$hdr_value = preg_replace('#([\x80-\xFF])#e',
@@ -1067,7 +1069,7 @@ class Mail_mime
//Fix for Bug #10298, Ota Mares <om@viazenetti.de>
//Concat the double quotes and encoded string together
$hdr_value = $quotePrefix . $hdr_value . $quoteSuffix;
-
+
$hdr_value_out = $hdr_value;
$realMax = $maxLength1stLine + strlen($prefix . $suffix);
if (strlen($hdr_value_out) >= $realMax) {
@@ -1078,11 +1080,11 @@ class Mail_mime
//Split translated string at every $maxLength
//But make sure not to break any translated chars.
$found = preg_match($reg, $hdr_value_out, $matches);
-
+
//After this first line, we need to use a different
//regexp for the first line.
$reg = $reg2nd;
-
+
//Save the found part and encapsulate it in the
//prefix & suffix. Then remove the part from the
//$hdr_value_out variable.
@@ -1094,11 +1096,11 @@ class Mail_mime
$part = $hdr_value_out;
$hdr_value_out = "";
}
-
+
//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