alecpl
2009-08-28 b8ae99a6b38838045257c7dac6f52c66a0f6ef39
program/lib/imap.inc
@@ -301,8 +301,8 @@
}
function iil_ParseResult($string) {
   $a = explode(' ', $string);
   if (count($a) > 2) {
   $a = explode(' ', trim($string));
   if (count($a) >= 2) {
      if (strcasecmp($a[1], 'OK') == 0) {
         return 0;
      } else if (strcasecmp($a[1], 'NO') == 0) {
@@ -311,7 +311,7 @@
         return -2;
      } else if (strcasecmp($a[1], 'BYE') == 0) {
         return -3;
          }
      }
   }
   return -4;
}
@@ -2125,8 +2125,8 @@
   $query = 'sub1 SUBSCRIBE "' . iil_Escape($folder). '"';
   iil_PutLine($fp, $query);
   $line = trim(iil_ReadLine($fp, 10000));
   return iil_ParseResult($line);
   $line = trim(iil_ReadLine($fp, 512));
   return (iil_ParseResult($line) == 0);
}
function iil_C_UnSubscribe(&$conn, $folder) {
@@ -2135,8 +2135,8 @@
   $query = 'usub1 UNSUBSCRIBE "' . iil_Escape($folder) . '"';
   iil_PutLine($fp, $query);
    
   $line = trim(iil_ReadLine($fp, 10000));
   return iil_ParseResult($line);
   $line = trim(iil_ReadLine($fp, 512));
   return (iil_ParseResult($line) == 0);
}
function iil_C_FetchMIMEHeaders(&$conn, $mailbox, $id, $parts) {
@@ -2371,31 +2371,39 @@
function iil_C_Append(&$conn, $folder, &$message) {
   if (!$folder) {
          return false;
      return false;
   }
   $fp = $conn->fp;
   $message = str_replace("\r", '', $message);
   $message = str_replace("\n", "\r\n", $message);
   $message = str_replace("\n", "\r\n", $message);
   $len = strlen($message);
   if (!$len) {
          return false;
      return false;
   }
   $request = 'a APPEND "' . iil_Escape($folder) .'" (\\Seen) {' . $len . '}';
   if (iil_PutLine($fp, $request)) {
      $line = iil_ReadLine($fp, 100);
      $sent = iil_PutLine($fp, $message);
      $line = iil_ReadLine($fp, 512);
      $result = (iil_ParseResult($line) == 0);
      if (!$result) {
         $conn->error .= "Cannot write to folder: $line\n";
         return false;
      }
      iil_PutLine($fp, $message);
      do {
         $line=iil_ReadLine($fp);
         $line = iil_ReadLine($fp);
      } while (!iil_StartsWith($line, 'a ', true));
   
      $result = (iil_ParseResult($line) == 0);
      if (!$result) {
          $conn->error .= $line . "\n";
          }
      }
      return $result;
   }
@@ -2409,7 +2417,7 @@
   }
    
   //open message file
   $in_fp = false;
   $in_fp = false;
   if (file_exists(realpath($path))) {
      $in_fp = fopen($path, 'r');
   }
@@ -2426,14 +2434,18 @@
    
   //send APPEND command
   $request    = 'a APPEND "' . iil_Escape($folder) . '" (\\Seen) {' . $len . '}';
   $bytes_sent = 0;
   if (iil_PutLine($fp, $request)) {
      $line = iil_ReadLine($fp, 100);
      $line = iil_ReadLine($fp, 512);
      $result = (iil_ParseResult($line) == 0);
      if (!$result) {
         $conn->error .= "Cannot write to folder: $line\n";
         return false;
      }
      //send file
      while (!feof($in_fp)) {
         $buffer      = fgets($in_fp, 4096);
         $bytes_sent += strlen($buffer);
         iil_PutLine($fp, $buffer, false);
      }
      fclose($in_fp);
@@ -2444,12 +2456,12 @@
      do {
         $line = iil_ReadLine($fp);
      } while (!iil_StartsWith($line, 'a ', true));
      $result = (iil_ParseResult($line) == 0);
      if (!$result) {
          $conn->error .= $line . "\n";
      }
      return $result;
   }