| | |
| | | } |
| | | |
| | | 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) { |
| | |
| | | return -2; |
| | | } else if (strcasecmp($a[1], 'BYE') == 0) { |
| | | return -3; |
| | | } |
| | | } |
| | | } |
| | | return -4; |
| | | } |
| | |
| | | $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) { |
| | |
| | | $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) { |
| | |
| | | |
| | | 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; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | //open message file |
| | | $in_fp = false; |
| | | $in_fp = false; |
| | | if (file_exists(realpath($path))) { |
| | | $in_fp = fopen($path, 'r'); |
| | | } |
| | |
| | | |
| | | //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); |
| | |
| | | do { |
| | | $line = iil_ReadLine($fp); |
| | | } while (!iil_StartsWith($line, 'a ', true)); |
| | | |
| | | |
| | | $result = (iil_ParseResult($line) == 0); |
| | | if (!$result) { |
| | | $conn->error .= $line . "\n"; |
| | | } |
| | | |
| | | |
| | | return $result; |
| | | } |
| | | |