From ffae15e5fcde50cf8c1b168fa313f4ec3454a693 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 29 Sep 2008 03:38:16 -0400
Subject: [PATCH] - Added 'mime_param_folding' option with possibility to choose long/non-ascii attachment names encoding eg. to be readable in MS Outlook/OE (#1485320) - Added "advanced options" feature in User Preferences
---
program/lib/Mail/mime.php | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/program/lib/Mail/mime.php b/program/lib/Mail/mime.php
index 7641b0c..688c326 100644
--- a/program/lib/Mail/mime.php
+++ b/program/lib/Mail/mime.php
@@ -323,6 +323,8 @@
* of this attachment.
* @param string $language The language of the attachment
* @param string $location The RFC 2557.4 location of the attachment
+ * @param string $n_encoding Use RFC 2047 for attachment name (Content-Type) encoding
+ * @param string $f_encoding Use RFC 2047 for attachment filename (Content-Disposition) encoding
*
* @return mixed true on success or PEAR_Error object
* @access public
@@ -335,7 +337,9 @@
$disposition = 'attachment',
$charset = '',
$language = '',
- $location = '')
+ $location = '',
+ $n_encoding = NULL,
+ $f_encoding = NULL)
{
$filedata = ($isfile === true) ? $this->_file2str($file)
: $file;
@@ -363,7 +367,9 @@
'charset' => $charset,
'language' => $language,
'location' => $location,
- 'disposition' => $disposition
+ 'disposition' => $disposition,
+ 'name-encoding' => $n_encoding,
+ 'filename-encoding'=> $f_encoding
);
return true;
}
@@ -532,6 +538,12 @@
$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'];
+ }
$ret = $obj->addSubpart($value['body'], $params);
return $ret;
@@ -561,6 +573,12 @@
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'];
+ }
$params['content_type'] = $value['c_type'];
$params['disposition'] = isset($value['disposition']) ?
$value['disposition'] : 'attachment';
@@ -914,7 +932,6 @@
*/
function _encodeHeaders($input, $params = array())
{
-
$build_params = $this->_build_params;
while (list($key, $value) = each($params)) {
$build_params[$key] = $value;
--
Gitblit v1.9.1