[Tickets #11665] Re: Seen/unseen status doesn't match IMAP flags status
bugs at horde.org
bugs at horde.org
Thu Nov 8 19:21:20 UTC 2012
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/11665
------------------------------------------------------------------------------
Ticket | 11665
Updated By | Michael Slusarz <slusarz at horde.org>
Summary | Seen/unseen status doesn't match IMAP flags status
Queue | IMP
Version | 6.0.0
Type | Bug
State | Feedback
Priority | 1. Low
Milestone |
Patch |
Owners | Michael Slusarz
------------------------------------------------------------------------------
Michael Slusarz <slusarz at horde.org> (2012-11-08 12:21) wrote:
>> I'm having the same problem.
>>
>> Steps to reproduce
>> - Log in
>> - Update some flags within Horde
> There is something really weird. I have enabled the logging in
> imp/config/backends.local.php
>
> $servers['advanced']['debug'] = '/tmp/imaplog';
>
> Since doing that yesterday, the problem has not occured again. It
> almost looks like enabling the debug fixes the problem. If it
> doesn't occur again, I'll disable debugging to see if it resurfaces.
When debugging is inactive, FLAGS.SILENT is sent to update the flags
instead of FLAGS. This means that flag changes (FETCH responses)
won't be returned by the server. Which means we normally wouldn't
update the cache...
...except this is all known behavior. And irrelevant. We only cache
flags if CONDSTORE/QRESYNC is available. If these are available and
active, then flag changes MUST always be sent regardless of whether
.SILENT is given (RFC 4551 [3.2]). So my guess is that the server is
broken because it is not sending back these FETCH responses.
The only way to be able to log this will be to alter the
Horde_Imap_Client_Socket source (around line 3012):
if (!empty($options['replace'])) {
$cmd->add(array(
- 'FLAGS' . ($this->_debug->debug ? '' : '.SILENT'),
+ 'FLAGS.SILENT',
$options['replace']
));
$cmds[] = $cmd;
} else {
foreach (array('add' => '+', 'remove' => '-') as $k => $v) {
if (!empty($options[$k])) {
$cmdtmp = clone $cmd;
$cmdtmp->add(array(
- $v . 'FLAGS' . ($this->_debug->debug ? '' :
'.SILENT'),
+ $v . 'FLAGS.SILENT',
$options[$k]
));
$cmds[] = $cmdtmp;
}
}
}
Additionally, you can send me the IMAP log you have that was
successful so I can check on things like CAPABILITY on your server.
More information about the bugs
mailing list