Modifying the contents of a message
axel.grude at googlemail.com
Thu Jan 26 18:00:05 UTC 2012
On 26/01/12 17:47, Jonathan Protzenko wrote:
> On 01/26/2012 06:17 PM, David Bienvenu wrote:
>> On 1/26/2012 7:19 AM, Jonathan Protzenko wrote:
>>> Hi everyone,
>>> Ever since I started reading the mozilla.dev.apps.thunderbird and
>>> mozilla.dev.extensions newsgroups, a recurring question about Thunderbird has been
>>> "how can I modify the contents of a message" from an addon? I recently (less than
>>> 7 days ago) replied to this question twice, and my answer was basically:
>>> - inject a message in a local folder,
>>> - copy it to the destination folder,
>>> - remove the old message.
>>> I'm not sure there's a better way, but I guess not. My question is: could we make
>>> that easier by implementing, say, in C++, nsIMsgFolder::InjectMessageFromStream,
>>> making it of course scriptable? The arguments are:
>>> - this is something an addon will want to do, and it seems legitimate that they
>>> should want to do so,
>>> - it's better to provide a function for that than to have someone do it real, real
>> Yes, it would be great to provide an easy way for extensions to do this, because
>> extensions often forget about things like IMAP, and going forward, things like
>> pluggable stores.
>> I think JS code to do this would be better than c++ methods. I think there's
>> sufficient mechanisms in the backend to do this already since detach attachment
>> does it, but additional method(s) would be helpful, we can add them.
> I'm not sure what is the right way to do this from JS. Do you have some pseudo-code
> describing how one should proceed if they want to modify, for instance, one of the
> headers? I somehow thought that the code for detach was only calling
> nsMessenger::DetachAttachment and that the rest of the process was driven from C++.
Jon, did you get my other email with the pseudo code?
Let's say you create a new extended interface nsIMsgDBHdrWriteable. and add a clone
method to an email. The clone would be in memory until finalized and stored.
newmail = mail.clone()
hdr = newmail .QueryInterface(Ci.nsIMsgDBHdrWriteable);
msg.writeHeaderField( 'Subject', "bla bla");
something along these lines?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the tb-planning