$read = '';
$buffer = 4096;
$results = '';
- while (strpos($read, "\n") === false) {
+ $offset = 0;
+ while (strpos($results, "\r\n", $offset) === false) {
if (!($read = fgets($imap_stream, $buffer))) {
break;
}
+ if ( $results != '' ) {
+ $offset = strlen($results) - 1;
+ }
$results .= $read;
}
return $results;
function sqimap_login ($username, $password, $imap_server_address, $imap_port, $hide) {
global $color, $squirrelmail_language, $onetimepad, $use_imap_tls, $imap_auth_mech;
+ if (!isset($onetimepad) || empty($onetimepad)) {
+ sqgetglobalvar('onetimepad' , $onetimepad , SQ_SESSION );
+ }
$imap_server_address = sqimap_get_user_server($imap_server_address, $username);
$host=$imap_server_address;
* Returns the number of unseen/total messages in this folder
*/
function sqimap_status_messages ($imap_stream, $mailbox) {
- $read_ary = sqimap_run_command ($imap_stream, "STATUS \"$mailbox\" (MESSAGES UNSEEN)", false, $result, $message);
+ $read_ary = sqimap_run_command ($imap_stream, "STATUS \"$mailbox\" (MESSAGES UNSEEN RECENT)", false, $result, $message);
$i = 0;
- $messages = $unseen = false;
+ $messages = $unseen = $recent = false;
$regs = array(false,false);
while (isset($read_ary[$i])) {
if (preg_match('/UNSEEN\s+([0-9]+)/i', $read_ary[$i], $regs)) {
if (preg_match('/MESSAGES\s+([0-9]+)/i', $read_ary[$i], $regs)) {
$messages = $regs[1];
}
+ if (preg_match('/RECENT\s+([0-9]+)/i', $read_ary[$i], $regs)) {
+ $recent = $regs[1];
+ }
$i++;
}
- return array('MESSAGES' => $messages, 'UNSEEN'=>$unseen);
+ return array('MESSAGES' => $messages, 'UNSEEN'=>$unseen, 'RECENT' => $recent);
}