Home » Networking » Net_IMAP » Bug #8220
Append Date and Flags and BODY.PEEK
Details
| Submitted | 2006-07-14 18:09 UTC |
|---|---|
| From | dion dot rowney at usask dot ca |
| Assigned | hudeldudel |
| Status | Closed |
| Package | Net_IMAP |
| PHP Version | 5.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.