thomascube
2008-04-05 e70d6ea64e711096af36b1234f8545b870ea5f45
program/lib/imap.inc
@@ -162,7 +162,9 @@
function iil_ReadLine($fp, $size) {
   $line = '';
   if ($fp) {
    if (!$fp) {
        return $line;
    }
      do {
          // FIXME: hardcode size?
         $buffer = fgets($fp, 2048);
@@ -171,7 +173,6 @@
            }
         $line .= $buffer;
      } while ($buffer[strlen($buffer)-1]!="\n");
   }
   return $line;
}
@@ -196,6 +197,9 @@
   $len  = 0;
   do {
      $data.=fread($fp, $bytes-$len);
        if ($len == strlen($data)) {
            break; //nothing was read -> exit to avoid apache lockups
        }
      $len = strlen($data);
   } while ($len<$bytes);
   return $data;
@@ -1597,6 +1601,7 @@
               list($field, $string) = iil_SplitHeaderLine($str);
               
               $field = strtolower($field);
                                        $string = ereg_replace("\n[[:space:]]*"," ",$string);
               
               switch ($field) {
               case 'date';
@@ -1607,22 +1612,22 @@
                  $result[$id]->from = $string;
                  break;
               case 'to':
                  $result[$id]->to = str_replace("\n", " ", $string);
                  $result[$id]->to = $string;
                  break;
               case 'subject':
                  $result[$id]->subject = str_replace("\n", '', $string);
                  $result[$id]->subject = $string;
                  break;
               case 'reply-to':
                  $result[$id]->replyto = str_replace("\n", " ", $string);
                  $result[$id]->replyto = $string;
                  break;
               case 'cc':
                  $result[$id]->cc = str_replace("\n", " ", $string);
                  $result[$id]->cc = $string;
                  break;
               case 'bcc':
                  $result[$id]->bcc = str_replace("\n", " ", $string);
                  $result[$id]->bcc = $string;
                  break;
               case 'content-transfer-encoding':
                  $result[$id]->encoding = str_replace("\n", " ", $string);
                  $result[$id]->encoding = $string;
                  break;
               case 'content-type':
                  $ctype_parts = explode(";", $string);
@@ -1643,7 +1648,7 @@
               case 'return-receipt-to':
               case 'disposition-notification-to':
               case 'x-confirm-reading-to':
                  $result[$id]->mdn_to = str_replace("\n", " ", $string);
                  $result[$id]->mdn_to = $string;
                  break;
               case 'message-id':
                  $result[$id]->messageID = $string;
@@ -2448,7 +2453,6 @@
   if (fputs($fp, $request)) {
      $line=iil_ReadLine($fp, 100);      
      $sent = fwrite($fp, $message."\r\n");
      flush();
      do {
         $line=iil_ReadLine($fp, 1000);
      } while ($line[0] != 'A');