Re: DBMail 3.2.4 Imap and Outlook 2013

Harald Leithner <[email protected]>
Newsgroups gmane.mail.imap.dbmail
Organization ITronic
Message-ID <[email protected]>
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 <[email protected] <mailto:[email protected]>> 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: [email protected] | itronic.at
_______________________________________________
DBmail mailing list
[email protected]
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.