I want to know because i have header and body splited. To erase the
body, i must have shure, that header was expunged. Some tests that i
made, the client call expunge, but i don't  know why (there is notting
in mail log) the header was not expunged, nut my body was, because i
call it before expunge the header. something like this.

if (found_body){
    erase_body();
    super.expunge(_mail);
}

Because that expunge that no happen, (the client call, but the email
was not expunged) i think to do like this way:

if (found_body){
   super.expunge(_mail);
   if(_mail was expunged){
      erase_body();
  }
}

TKs Timo !

Em 12 de fevereiro de 2012 02:19, Timo Sirainen <t...@iki.fi> escreveu:
> On 10.2.2012, at 19.39, Alex Baule wrote:
>
>> Hy Everyone...and Timo !
>>
>> There is a way to know if a email was expunged (deleted from hard
>> disk)  inside a plugin ? I rewrite the expunge function, but the real
>> expunge function is void, i can't know if was really expunged.
>>
>> There is a way to know this ?
>
> It's not known until transaction_commit() what messages are expunged. What do 
> you need to know this for? There are a few different ways.
>
> If you simply need one of the sessions to definitely know that it expunged a 
> message, you can do it like quota plugin does. (So even if there are multiple 
> clients doing EXPUNGE at the same time, quota is never decreased more than 
> once per mail.) See quota-storage.c and most importantly 
> quota_mailbox_sync_notify().
>
> Quota code also shows the other method of doing it: keep track of what 
> mail_expunge()s have been called, and then in transaction commit check if it 
> succeeds and if it does do what you want to do.
>

Reply via email to