Hi Andrea,

in imapcommands.c on line 2222 there is an if statement

// reporting callback
if ((! cmd->silent) || changed > 0) {
bool showmodseq = (changed && (cmd->unchangedsince || self->mailbox->condstore));
        bool showflags = (! cmd->silent);
        _fetch_update(self, msginfo, showmodseq, showflags);
}

One problem is that 'cmd->silent is true' and 'changed' is always bigger then 0. Infact its always 1 (if no error).
Thats wrong double wrong ;-)

here is my version, its not 100% correct too, in fact I think its useless for 'silent = true'

// reporting callback
if ((! cmd->silent) && changed > 0) {
bool showmodseq = (changed && (cmd->unchangedsince || self->mailbox->condstore));
        bool showflags = TRUE;
        _fetch_update(self, msginfo, showmodseq, showflags);
}

This statement gets only called if 'cmd->silent = false'. So we always 'showflags = true'.

In fact I think showflags should always be true but may I misunderstand the RFC.

I think that there should be a function to load all changed Mails for in the same folder except the current changed one (thats was cmd->silent mean) and should be reported to the client with _fetch_update.

regards,

Harald

PS: I'm not a c developer so maybe I wrote bullshit code ;-)



Am 23.09.2015 um 10:00 schrieb Andrea Brancatelli:
Hello Harald,

if you can share your findings I have a couple of developer who can work
on the code to develop a regular patch.

Thanks.

---

*Andrea Brancatelli Schema31 S.p.a. Responsabile IT
*
ROMA - FIRENZE - PALERMO
ITALY
Tel: +39. 06.98.358.472
Cell: +39 331.2488468
Fax: +39. 055.71.880.466
Società del Gruppo*SC31 ITALIA*

Il 2015-09-22 22:05 Harald Leithner ha scritto:

Hi Luka,

I found already the problem, its a bug in dbmail. It doesn't handle
the "store FLAGS.SLIENT" command correct.

I fixed (or better workaround) it locally but didn't deployed it.

Btw I think there is a logic error anyway in handling concurrent
changes in dbmail, but I'm not sure if I'm right or misinterpreted the
RFC.

regards,

Harald


Am 22.09.2015 um 15:03 schrieb Jure Pečar:
On Fri, 18 Sep 2015 14:07:31 +0200
Harald Leithner <leith...@itronic.at <mailto:leith...@itronic.at>> wrote:

The Problem seams to be syncing after reading a message, the message get
marked as read. Outlook starts syncing and after sync the message get
unread again. After changing folder (or restart outlook) the message is
marked as read. So it seams that the server gets the correct flag set
but is unable to tell outlook the new state and returns the unread flag.
This doesn't happen the other direct (read->unread) this works without a
problem...

I would like to know if anyone else has this problem with DBMail 3.2.4
and Outlook 2013.


This is from a coworker who has problems subscribing to the mailing list:

Hello Harald,

I have been dealing with the same issues you have described. The problem in my 
opinion is that Outlook 2013 makes multiple simultaneous connections to the 
imap server. I tested the same manualy, by making two connections and marking 
mails as read on one. The other connection did not see the change. I also tried 
Database debug log (511). I did see the SQL query that aplied changes which 
succeeded, but i did not see any query when i listed the emails on the second 
connection. Maybe there is some sort of caching involved?

Best regards,

--
Harald Leithner

ITronic
Wiedner Hauptstraße 120/5.1, 1050 Wien, Austria
Tel: +43-1-545 0 604
Mobil: +43-699-123 78 4 78
Mail: leith...@itronic.at | itronic.at
_______________________________________________
DBmail mailing list
DBmail@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail

Reply via email to