PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Networking » Net_IMAP » Bug #8220

Append Date and Flags and BODY.PEEK

Details

Submitted2006-07-14 18:09 UTC
Fromdion dot rowney at usask dot ca
Assignedhudeldudel
StatusClosed
PackageNet_IMAP
PHP Version5.1.4
Roadmaps(Not assigned)

Comments

[2006-07-14 18:09 UTC] dion dot rowney at usask dot ca

Description:
------------
Add the following patches to add missing functionality and correct functionality.

root # cat IMAP.php.patch
--- IMAP.php.original 2006-06-27 14:48:46.000000000 -0600
+++ IMAP.php 2006-07-12 09:38:25.000000000 -0600
@@ -243,7 +243,7 @@
*/
function getRawHeaders($msg_id)
{
- $ret=$this->cmdFetch($msg_id, "BODY[HEADER]");
+ $ret=$this->cmdFetch($msg_id, "BODY.PEEK[HEADER]");
if(strtoupper( $ret["RESPONSE"]["CODE"]) != "OK" ){
return new PEAR_Error($ret["RESPONSE"]["CODE"] . ", " . $ret["RESPONSE"]["STR_CODE"]);
}
@@ -376,9 +376,13 @@
* @param $msg_id Message number
* @return mixed Either message body or false on error
*/
- function getBody($msg_id)
+ function getBody($msg_id, $peek=false)
{
- $ret=$this->cmdFetch($msg_id,"BODY[TEXT]");
+ if ( $peek ) {
+ $ret=$this->cmdFetch($msg_id,"BODY.PEEK[TEXT]");
+ } else {
+ $ret=$this->cmdFetch($msg_id,"BODY[TEXT]");
+ }
if(strtoupper($ret["RESPONSE"]["CODE"]) != "OK"){
return new PEAR_Error($ret["RESPONSE"]["CODE"] . ", " . $ret["RESPONSE"]["STR_CODE"]);
}
root # cat IMAPProtocol.php.patch
--- IMAPProtocol.php.original 2006-06-27 14:48:46.000000000 -0600
+++ IMAPProtocol.php 2006-07-12 11:02:12.000000000 -0600
@@ -1057,26 +1057,33 @@
* @access public
* @since 1.0
*/
- function cmdAppend($mailbox, $msg , $flags_list = '' ,$time = '')
+ function cmdAppend($mailbox, $msg , $flags_list = '' ,$time = -1)
{
+
if(!$this->_connected){
return new PEAR_Error('not connected!');
}
-
+ if ( trim ( $flags_list ) != "" ) {
+ $flags_list = '(' . $flags_list . ') ';
+ }

$cmdid=$this->_getCmdId();
$msg_size=strlen($msg);

$mailbox_name=sprintf("\"%s\"",$this->utf_7_encode($mailbox) );
- // TODO:
- // Falta el codigo para que flags list y time hagan algo!!
+ $timeAsString = date("d-M-Y H:i:s O", $time);
if( $this->hasCapability( "LITERAL+" ) == true ){
- $param=sprintf("%s %s%s{%s+}\r\n%s",$mailbox_name,$flags_list,$time,$msg_size,$msg);
+ if ( $time > -1 ) {
+ $param=sprintf("%s %s\"%s\" {%s+}\r\n%s",$mailbox_name,$flags_list,$timeAsString, $msg_size,$msg);
+
+ } else {
+ $param=sprintf("%s %s{%s+}\r\n%s",$mailbox_name,$flags_list,$msg_size,$msg);
+ }
if (PEAR::isError($error = $this->_putCMD($cmdid , 'APPEND' , $param ) ) ) {
return $error;
}
}else{
- $param=sprintf("%s %s%s{%s}\r\n",$mailbox_name,$flags_list,$time,$msg_size);
+ $param=sprintf("%s %s{%s}\r\n",$mailbox_name,$flags_list,$msg_size);
if (PEAR::isError($error = $this->_putCMD($cmdid , 'APPEND' , $param ) ) ) {
return $error;
}
root #

[2006-12-11 16:49 UTC] amistry at php dot net

Please verify if this problem still exists in the CVS. Thanks.