Example #1
0
function imap_test($imap_stream, $string)
{
    global $default_charset;
    $message = '';
    $responses = array();
    $sid = sqimap_session_id();
    $results = array();
    $query = "{$sid} " . trim($string) . "\r\n";
    print "<tr><td>" . htmlspecialchars($query) . "</td></tr>";
    fputs($imap_stream, $query);
    $response = sqimap_read_data_list($imap_stream, $sid, false, $responses, $message);
    array_push($response, $message);
    return $response;
}
function sqimap_read_data($imap_stream, $pre, $handle_errors, &$response, &$message, $query = '')
{
    $res = sqimap_read_data_list($imap_stream, $pre, $handle_errors, $response, $message, $query);
    /* sqimap_read_data should be called for one response
       but since it just calls sqimap_read_data_list which 
       handles multiple responses we need to check for that
       and merge the $res array IF they are seperated and 
       IF it was a FETCH response. */
    if (isset($res[1]) && is_array($res[1]) && isset($res[1][0]) && preg_match('/^\\* \\d+ FETCH/', $res[1][0])) {
        $result = array();
        foreach ($res as $index => $value) {
            $result = array_merge($result, $res["{$index}"]);
        }
    }
    if (isset($result)) {
        return $result;
    } else {
        return $res[0];
    }
}
Example #3
0
function sqimap_read_data($imap_stream, $tag_uid, $handle_errors, &$response, &$message, $query = '', $filter = false, $outputstream = false, $no_return = false)
{
    $res = sqimap_read_data_list($imap_stream, $tag_uid, $handle_errors, $response, $message, $query, $filter, $outputstream, $no_return);
    /* sqimap_read_data should be called for one response
       but since it just calls sqimap_read_data_list which
       handles multiple responses we need to check for that
       and merge the $res array IF they are seperated and
       IF it was a FETCH response. */
    //    if (isset($res[1]) && is_array($res[1]) && isset($res[1][0])
    //        && preg_match('/^\* \d+ FETCH/', $res[1][0])) {
    //        $result = array();
    //        foreach($res as $index=>$value) {
    //            $result = array_merge($result, $res["$index"]);
    //        }
    //    }
    return $res[0];
}
function sqimap_get_headerfield($imap_stream, $field)
{
    $sid = sqimap_session_id(false);
    $results = array();
    $read_list = array();
    $query = "{$sid} FETCH 1:* (UID BODY.PEEK[HEADER.FIELDS ({$field})])\r\n";
    fputs($imap_stream, $query);
    $readin_list = sqimap_read_data_list($imap_stream, $sid, false, $response, $message);
    $i = 0;
    foreach ($readin_list as $r) {
        $r = implode('', $r);
        /* first we unfold the header */
        $r = str_replace(array("\r\n\t", "\r\n\\s"), array('', ''), $r);
        /* 
         * now we can make a new header array with each element representing 
         * a headerline
         */
        $r = explode("\r\n", $r);
        if (!$uid_support) {
            if (!preg_match("/^\\*\\s+([0-9]+)\\s+FETCH/iAU", $r[0], $regs)) {
                set_up_language($squirrelmail_language);
                echo '<br><b><font color=$color[2]>' . _("ERROR : Could not complete request.") . '</b><br>' . _("Unknown response from IMAP server: ") . ' 1.' . $r[0] . "</font><br>\n";
            } else {
                $id = $regs[1];
            }
        } else {
            if (!preg_match("/^\\*\\s+([0-9]+)\\s+FETCH.*UID\\s+([0-9]+)\\s+/iAU", $r[0], $regs)) {
                set_up_language($squirrelmail_language);
                echo '<br><b><font color=$color[2]>' . _("ERROR : Could not complete request.") . '</b><br>' . _("Unknown response from IMAP server: ") . ' 1.' . $r[0] . "</font><br>\n";
            } else {
                $id = $regs[2];
            }
        }
        $field = $r[1];
        $field = substr($field, strlen($field) + 2);
        $result[] = array($id, $field);
    }
    return $result;
}
Example #5
0
function sqimap_read_data($imap_stream, $tag_uid, $handle_errors, &$response, &$message, $query = '', $filter = false, $outputstream = false, $no_return = false)
{
    $res = sqimap_read_data_list($imap_stream, $tag_uid, $handle_errors, $response, $message, $query, $filter, $outputstream, $no_return);
    return $res[0];
}