[Dovecot] There is a way to know if a email has been expunged ?

Alex Baule alexwbaule at gmail.com
Thu Feb 16 19:12:25 EET 2012


hi Timo, now its works.. i do in the old way, my dovecot is 2.0.15.

You say it "old way", when it's change ? in dovecot 2.0.18 is in the
old or new way ?

I asking because if i update dovecot, i need to update the plugin.

Tks !


Em 13 de fevereiro de 2012 18:18, Timo Sirainen <tss at iki.fi> escreveu:
> On 13.2.2012, at 19.28, Alex Baule wrote:
>
>> static void emexis_mailbox_allocated(struct mailbox *box)
>> {
>>    union mailbox_module_context *zbox;
>>
>>    zbox = p_new(box->pool, union mailbox_module_context, 1);
>>    zbox->super = box->v;
>>    box->v.open = Mplugin_mailbox_open;
>>    box->v.sync_notify = Mplugin_mailbox_sync_notify;
>>
>>    MODULE_CONTEXT_SET_SELF(box, emexis_storage_module, zbox);
>> }
>
> The above is an "old way" to do it. It doesn't work well if you have any other plugins loaded.
>
>> struct mailbox_vfuncs *v = box->vlast;
>> v->sync_notify = Mplugin_mailbox_sync_notify;
>>
>> But in this two cases, the Mplugin_mailbox_sync_notify is never
>> called... i missing something ??
>
> Never called at all? What storage backend are you using as the base? Maildir?
>
> Anyway, the way you should be calling it is the exact same way quota plugin does:
>
> void Mplugin_mailbox_allocated(struct mailbox *box)
> {
>        struct mailbox_vfuncs *v = box->vlast;
>        union mailbox_module_context *zbox;
>
>        zbox = p_new(box->pool, union mailbox_module_context, 1);
>        zbox->super = *v;
>        box->vlast = &zbox->super;
>
>        v->open = Mplugin_mailbox_open;
>        v->sync_notify = Mplugin_mailbox_sync_notify;
>        MODULE_CONTEXT_SET_SELF(box, Mplugin_storage_module, zbox);
> }
>


More information about the dovecot mailing list