svn: /pear/packages/Mail_Mime/trunk/ mime.php package.xml tests/test_Bug_13962.phpt
| From: | Aleksander Machniak | Date: | Wed, 30 Dec 2009 12:22:31 +0000 |
| Subject: | svn: /pear/packages/Mail_Mime/trunk/ mime.php package.xml tests/test_Bug_13962.phpt | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-58414@lists.php.net to get a copy of this message | ||
alec Wed, 30 Dec 2009 12:22:31 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=292799
Log:
- Implemented Feature #13962: Multiple header support
- Code cleanup
Bug: http://pear.php.net/bugs/13962 (unknown)
Changed paths:
U pear/packages/Mail_Mime/trunk/mime.php
U pear/packages/Mail_Mime/trunk/package.xml
A pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt
Modified: pear/packages/Mail_Mime/trunk/mime.php
===================================================================
--- pear/packages/Mail_Mime/trunk/mime.php 2009-12-30 12:21:18 UTC (rev 292798)
+++ pear/packages/Mail_Mime/trunk/mime.php 2009-12-30 12:22:31 UTC (rev 292799)
@@ -205,8 +205,9 @@
);
// Backward-compat.
- if (is_string($params))
+ if (is_string($params)) {
$params = array('eof' => $params);
+ }
if (!empty($params) && is_array($params)) {
while (list($key, $value) = each($params)) {
@@ -237,7 +238,8 @@
* @return void
* @access public
*/
- function setHeadEncoding($head_encoding) {
+ function setHeadEncoding($head_encoding)
+ {
$this->_build_params['head_encoding'] = $head_encoding;
}
@@ -250,7 +252,8 @@
* @return void
* @access public
*/
- function setTextEncoding($text_encoding) {
+ function setTextEncoding($text_encoding)
+ {
$this->_build_params['text_encoding'] = $text_encoding;
}
@@ -263,7 +266,8 @@
* @return void
* @access public
*/
- function setHtmlEncoding($html_encoding) {
+ function setHtmlEncoding($html_encoding)
+ {
$this->_build_params['html_encoding'] = $html_encoding;
}
@@ -275,7 +279,8 @@
* @return void
* @access public
*/
- function setHtmlCharset($html_charset) {
+ function setHtmlCharset($html_charset)
+ {
$this->_build_params['html_charset'] = $html_charset;
}
@@ -287,7 +292,8 @@
* @return void
* @access public
*/
- function setTextCharset($text_charset) {
+ function setTextCharset($text_charset)
+ {
$this->_build_params['text_charset'] = $text_charset;
}
@@ -299,7 +305,8 @@
* @return void
* @access public
*/
- function setHeadCharset($head_charset) {
+ function setHeadCharset($head_charset)
+ {
$this->_build_params['head_charset'] = $head_charset;
}
@@ -826,7 +833,7 @@
// * Content-Type: multipart/related;
// * html
// * image...
- if (isset($this->_txtbody)) {
+ if (isset($this->_txtbody)) {
$message =& $this->_addAlternativePart($null);
$this->_addTextPart($message, $this->_txtbody);
@@ -835,17 +842,17 @@
for ($i = 0; $i < count($this->_html_images); $i++) {
$this->_addHtmlImagePart($ht, $this->_html_images[$i]);
}
- // * Content-Type: multipart/related;
- // * html
- // * image...
} else {
+ // * Content-Type: multipart/related;
+ // * html
+ // * image...
$message =& $this->_addRelatedPart($null);
$this->_addHtmlPart($message);
for ($i = 0; $i < count($this->_html_images); $i++) {
$this->_addHtmlImagePart($message, $this->_html_images[$i]);
}
}
-/*
+ /*
// #13444, #9725: the code below was a non-RFC compliant hack
// * Content-Type: multipart/related;
// * Content-Type: multipart/alternative;
@@ -863,7 +870,7 @@
for ($i = 0; $i < count($this->_html_images); $i++) {
$this->_addHtmlImagePart($message, $this->_html_images[$i]);
}
-*/
+ */
break;
case $html AND $attachments AND !$html_images:
@@ -959,7 +966,13 @@
$ret = '';
foreach ($headers as $key => $val) {
- $ret .= "$key: $val" . MAIL_MIME_CRLF;
+ if (is_array($val)) {
+ foreach ($val as $value) {
+ $ret .= "$key: $value" . MAIL_MIME_CRLF;
+ }
+ } else {
+ $ret .= "$key: $val" . MAIL_MIME_CRLF;
+ }
}
return $ret;
}
@@ -1063,10 +1076,19 @@
}
foreach ($input as $hdr_name => $hdr_value) {
- $input[$hdr_name] = $this->encodeHeader(
- $hdr_name, $hdr_value,
- $build_params['head_charset'], $build_params['head_encoding']
- );
+ if (is_array($hdr_value)) {
+ foreach ($hdr_value as $idx => $value) {
+ $input[$hdr_name][$idx] = $this->encodeHeader(
+ $hdr_name, $value,
+ $build_params['head_charset'],
$build_params['head_encoding']
+ );
+ }
+ } else {
+ $input[$hdr_name] = $this->encodeHeader(
+ $hdr_name, $hdr_value,
+ $build_params['head_charset'],
$build_params['head_encoding']
+ );
+ }
}
return $input;
Modified: pear/packages/Mail_Mime/trunk/package.xml
===================================================================
--- pear/packages/Mail_Mime/trunk/package.xml 2009-12-30 12:21:18 UTC (rev 292798)
+++ pear/packages/Mail_Mime/trunk/package.xml 2009-12-30 12:22:31 UTC (rev 292799)
@@ -44,6 +44,7 @@
Implemented Features:
* Feature #10884: Provide easy way to set build params [alec]
+ * Feature #13962: Multiple header support [alec]
</notes>
<contents>
<dir name="/">
@@ -73,6 +74,7 @@
<file baseinstalldir="Mail" name="test_Bug_10816_1.phpt"
role="test" />
<file baseinstalldir="Mail" name="test_Bug_11731.phpt"
role="test" />
<file baseinstalldir="Mail" name="test_Bug_13444.phpt"
role="test" />
+ <file baseinstalldir="Mail" name="test_Bug_13962.phpt"
role="test" />
<file baseinstalldir="Mail" name="test_Bug_14779.phpt"
role="test" />
<file baseinstalldir="Mail" name="test_Bug_15320.phpt"
role="test" />
<file baseinstalldir="Mail" name="test_Bug_14529.phpt"
role="test" />
Added: pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt
===================================================================
--- pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt (rev 0)
+++ pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt 2009-12-30 12:22:31 UTC (rev 292799)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #13962 Multiple header support
+--SKIPIF--
+--FILE--
+<?php
+error_reporting(E_ALL); // ignore E_STRICT
+require_once('Mail.php');
+require_once('Mail/mime.php');
+
+$mime = new Mail_mime();
+
+$mime->setFrom('user@from.example.com');
+$r = $mime->txtHeaders(array('Received' => array('Received 1',
'Received 2')));
+
+print_r($r);
+?>
+--EXPECT--
+MIME-Version: 1.0
+Received: Received 1
+Received: Received 2
+From: user@from.example.com