How to catch Message Move Event.

  • Thread starter Ashutosh Jogdande
  • Start date Views 4,553
Status
Not open for further replies.
A

Ashutosh Jogdande

Hi All,

Is there any way to Catch Message Move event through outlook addin, when

message/s are moved by using Email-rules or to Archive folders?

I am able to do this on manual message move by catching ItemRemove on

selected folder.

But while running a rule I am not getting Message Move/Remove event.

Code :

outlookExplorer.CurrentFolder.Items.ItemRemove += new

Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);

Thanks in advance,

Ashutosh
 
K

Ken Slovak - [MVP - Outlook]

That would partially depend on what version of Outlook. For Outlook 2003 and

earlier you only would have the Items.ItemAdd() and ItemRemove() events on

the destination and source folders to rely on. In Outlook 2007 you have the

Folder.BeforeItemMove() event you could also try.

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> Hi All,

> Is there any way to Catch Message Move event through outlook addin,
> when message/s are moved by using Email-rules or to Archive folders?

> I am able to do this on manual message move by catching ItemRemove on
> selected folder.
> But while running a rule I am not getting Message Move/Remove event.

> Code :
> outlookExplorer.CurrentFolder.Items.ItemRemove += new
> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);

> Thanks in advance,
> Ashutosh

>
 
A

Ashutosh Jogdande

Hi Ken,

Thanks for quick reply.

By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am

able to catch the event.

But How to add event handler for all folders when addin gets loaded, as we

want to catch events for the mails which are getting archived or Moved using

Email-Rules.

I have tried by adding event handler to all the folders on addin startup,

but it didn't work.

Is there any way to trap this event at Explorer level?

Here is the code :

IEnumerator enumrator = _outlookApplication.Session.Folders.GetEnumerator();

while (enumrator.MoveNext())

{

Outlook.Folder folder = (Outlook.Folder)enumrator.Current;

if (folder != null)

{

AddEventHandlers(folder);

}

}

where AddEventHandlers recursively adding event hadler to each folder.

Thanks,

Ashutosh
<kenslovak@mvps.org> wrote in message

news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
> That would partially depend on what version of Outlook. For Outlook 2003
> and earlier you only would have the Items.ItemAdd() and ItemRemove()
> events on the destination and source folders to rely on. In Outlook 2007
> you have the Folder.BeforeItemMove() event you could also try.

> >

>

> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> > Hi All,
>

>> Is there any way to Catch Message Move event through outlook addin,
> > when message/s are moved by using Email-rules or to Archive folders?
>

>> I am able to do this on manual message move by catching ItemRemove on
> > selected folder.
> > But while running a rule I am not getting Message Move/Remove event.
>

>> Code :
> > outlookExplorer.CurrentFolder.Items.ItemRemove += new
> > Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>

>
>> Thanks in advance,
> > Ashutosh
>

>
>>

>
 
K

Ken Slovak - [MVP - Outlook]

As you can see in the Object Browser there isn't an Explorer level event you

can use.

When I need to handle multiple folders, Explorers, Items collections,

Inspectors, etc. I set up a class to handle what I need, including all

events I want to handle. Then I maintain a set of those classes in a

collection/list/whatever to keep them alive.

For ItemRemove() and/or ItemAdd() I would do a recursive search of all

folders loaded that I was interested in and grab the Items collection for

each one, setting the Items collection object in my class to that Items

collection and putting it in my list. Then the events would fire

automatically. On shutdown I'd just unwind the list collection and null out

everything.

The code you show is non-recursive, it would only return top level folders

of the NameSpace object, which would be at the Outlook Today level (top of

store). If you have only one PST or mailbox loaded you'd get exactly 1

handler installed and it would likely be useless. I'd recursively call each

Session.Folders.Item() object and dig down into those also to get all the

folders and their Items collections.

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> Hi Ken,

> Thanks for quick reply.

> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> able to catch the event.

> But How to add event handler for all folders when addin gets loaded, as we
> want to catch events for the mails which are getting archived or Moved
> using Email-Rules.

> I have tried by adding event handler to all the folders on addin startup,
> but it didn't work.

> Is there any way to trap this event at Explorer level?

> Here is the code :
> IEnumerator enumrator =
> _outlookApplication.Session.Folders.GetEnumerator();
> while (enumrator.MoveNext())
> {
> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> if (folder != null)
> {
> AddEventHandlers(folder);
> }
> }

> where AddEventHandlers recursively adding event hadler to each folder.

> Thanks,
> Ashutosh
 
D

Dmitry Streblechenko

<plug
You can do that using Redemption: it exposes RDOStore.OnMessageCreated /

OnMessageDeleted / etc events on the store level

See http://www.dimastr.com/redemption/rdo/rdostore.htm

<plug

Dmitry Streblechenko (MVP)

-

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> Hi Ken,

> Thanks for quick reply.

> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> able to catch the event.

> But How to add event handler for all folders when addin gets loaded, as we
> want to catch events for the mails which are getting archived or Moved
> using Email-Rules.

> I have tried by adding event handler to all the folders on addin startup,
> but it didn't work.

> Is there any way to trap this event at Explorer level?

> Here is the code :
> IEnumerator enumrator =
> _outlookApplication.Session.Folders.GetEnumerator();
> while (enumrator.MoveNext())
> {
> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> if (folder != null)
> {
> AddEventHandlers(folder);
> }
> }

> where AddEventHandlers recursively adding event hadler to each folder.

> Thanks,
> Ashutosh

> " - " <kenslovak@mvps.org> wrote in message
> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
> > That would partially depend on what version of Outlook. For Outlook 2003
> > and earlier you only would have the Items.ItemAdd() and ItemRemove()
> > events on the destination and source folders to rely on. In Outlook 2007
> > you have the Folder.BeforeItemMove() event you could also try.
>

>> > >

> >

>

>
>
>
>
>
>> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> > news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> >> Hi All,
> >
>>> Is there any way to Catch Message Move event through outlook addin,
> >> when message/s are moved by using Email-rules or to Archive folders?
> >
>>> I am able to do this on manual message move by catching ItemRemove on
> >> selected folder.
> >> But while running a rule I am not getting Message Move/Remove event.
> >
>>> Code :
> >> outlookExplorer.CurrentFolder.Items.ItemRemove += new
> >> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
> >
>>
>>> Thanks in advance,
> >> Ashutosh
> >
>>
>>>

> >


>
 
A

Ashutosh Jogdande

Hi Ken,

Thanks for detailed reply,

I did the same, only thing I am missing is maintaining a Custom Class,

instead of that I have used Global List of Outlook.MAPIFolder.

And Recursion code is inside AddEventHandlers() Method.

But it's not working :(

Her is the code missing in my last post:

Global variable List<Outlook.MAPIFolder> folders;

void AddEventHandlers(Outlook.Folder folder)

{

folders.Add(folder);

logger.Debug("Adding ItemRemove eventhandler to " + folder.Name);

folder.Items.ItemRemove += new

Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);

IEnumerator enumrator = folder. Folders.GetEnumerator();

while (enumrator.MoveNext())

{

Outlook.Folder tempFolder = (Outlook.Folder)enumrator.Current;

if (tempFolder != null)

{

AddEventHandlers(tempFolder);

}

}

}
<kenslovak@mvps.org> wrote in message

news:u4TfYs$KKHA.4004@TK2MSFTNGP05.phx.gbl...
> As you can see in the Object Browser there isn't an Explorer level event
> you can use.

> When I need to handle multiple folders, Explorers, Items collections,
> Inspectors, etc. I set up a class to handle what I need, including all
> events I want to handle. Then I maintain a set of those classes in a
> collection/list/whatever to keep them alive.

> For ItemRemove() and/or ItemAdd() I would do a recursive search of all
> folders loaded that I was interested in and grab the Items collection for
> each one, setting the Items collection object in my class to that Items
> collection and putting it in my list. Then the events would fire
> automatically. On shutdown I'd just unwind the list collection and null
> out everything.

> The code you show is non-recursive, it would only return top level folders
> of the NameSpace object, which would be at the Outlook Today level (top of
> store). If you have only one PST or mailbox loaded you'd get exactly 1
> handler installed and it would likely be useless. I'd recursively call
> each Session.Folders.Item() object and dig down into those also to get all
> the folders and their Items collections.

> >

>

> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> > Hi Ken,
>

>> Thanks for quick reply.
>

>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> > able to catch the event.
>

>> But How to add event handler for all folders when addin gets loaded, as
> > we want to catch events for the mails which are getting archived or Moved
> > using Email-Rules.
>

>> I have tried by adding event handler to all the folders on addin startup,
> > but it didn't work.
>

>> Is there any way to trap this event at Explorer level?
>

>> Here is the code :
> > IEnumerator enumrator =
> > _outlookApplication.Session.Folders.GetEnumerator();
> > while (enumrator.MoveNext())
> > {
> > Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> > if (folder != null)
> > {
> > AddEventHandlers(folder);
> > }
> > }
>

>> where AddEventHandlers recursively adding event hadler to each folder.
>

>> Thanks,
> > Ashutosh

>
 
A

Ashutosh Jogdande

Thanks Dmitry,

Unfortunately we are not using redemption in this version :( .

We would possibly use in our next version...

Thanks,

Ashutosh

"Dmitry Streblechenko" <dmitry@dimastr.com> wrote in message

news:%23gteAhFLKHA.1376@TK2MSFTNGP02.phx.gbl...
> <plug
> You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
> OnMessageDeleted / etc events on the store level
> See http://www.dimastr.com/redemption/rdo/rdostore.htm
> <plug
> > Dmitry Streblechenko (MVP)
>

>

>

> -
> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> > Hi Ken,
>

>> Thanks for quick reply.
>

>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> > able to catch the event.
>

>> But How to add event handler for all folders when addin gets loaded, as
> > we want to catch events for the mails which are getting archived or Moved
> > using Email-Rules.
>

>> I have tried by adding event handler to all the folders on addin startup,
> > but it didn't work.
>

>> Is there any way to trap this event at Explorer level?
>

>> Here is the code :
> > IEnumerator enumrator =
> > _outlookApplication.Session.Folders.GetEnumerator();
> > while (enumrator.MoveNext())
> > {
> > Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> > if (folder != null)
> > {
> > AddEventHandlers(folder);
> > }
> > }
>

>> where AddEventHandlers recursively adding event hadler to each folder.
>

>> Thanks,
> > Ashutosh
>

>
>
>> " - " <kenslovak@mvps.org> wrote in message
> > news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
> >> That would partially depend on what version of Outlook. For Outlook 2003
> >> and earlier you only would have the Items.ItemAdd() and ItemRemove()
> >> events on the destination and source folders to rely on. In Outlook 2007
> >> you have the Folder.BeforeItemMove() event you could also try.
> >
>>> > >>

> >>

> >
>>
>>
>>
>>
>>
>>> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in
> >> message news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> >>> Hi All,
> >>
>>>> Is there any way to Catch Message Move event through outlook addin,
> >>> when message/s are moved by using Email-rules or to Archive folders?
> >>
>>>> I am able to do this on manual message move by catching ItemRemove on
> >>> selected folder.
> >>> But while running a rule I am not getting Message Move/Remove event.
> >>
>>>> Code :
> >>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
> >>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
> >>
>>>
>>>> Thanks in advance,
> >>> Ashutosh
> >>
>>>
>>>
>>>

>

>>


>
 
A

Ashutosh Jogdande

Hi Ken,

It started working after adding event handler on cached Folder.Items, Now

events are getting fired on message Move. :)

Only concern remaining is, how do I get Entry IDs of moved messages (old

entry id before message move)?

As I can't go for Folder.BeforeItemMove() which is available in Outlook

2007.

Thanks,

Ashutosh.

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:OGAD1PTLKHA.4316@TK2MSFTNGP04.phx.gbl...
> Hi Ken,

> Thanks for detailed reply,

> I did the same, only thing I am missing is maintaining a Custom Class,
> instead of that I have used Global List of Outlook.MAPIFolder.

> And Recursion code is inside AddEventHandlers() Method.

> But it's not working :(

> Her is the code missing in my last post:

> Global variable List<Outlook.MAPIFolder> folders;

> void AddEventHandlers(Outlook.Folder folder)
> {
> folders.Add(folder);
> logger.Debug("Adding ItemRemove eventhandler to " + folder.Name);
> folder.Items.ItemRemove += new
> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);

> IEnumerator enumrator = folder. Folders.GetEnumerator();
> while (enumrator.MoveNext())
> {
> Outlook.Folder tempFolder = (Outlook.Folder)enumrator.Current;
> if (tempFolder != null)
> {
> AddEventHandlers(tempFolder);
> }
> }
> }

> " - " <kenslovak@mvps.org> wrote in message
> news:u4TfYs$KKHA.4004@TK2MSFTNGP05.phx.gbl...
> > As you can see in the Object Browser there isn't an Explorer level event
> > you can use.
>

>> When I need to handle multiple folders, Explorers, Items collections,
> > Inspectors, etc. I set up a class to handle what I need, including all
> > events I want to handle. Then I maintain a set of those classes in a
> > collection/list/whatever to keep them alive.
>

>> For ItemRemove() and/or ItemAdd() I would do a recursive search of all
> > folders loaded that I was interested in and grab the Items collection for
> > each one, setting the Items collection object in my class to that Items
> > collection and putting it in my list. Then the events would fire
> > automatically. On shutdown I'd just unwind the list collection and null
> > out everything.
>

>> The code you show is non-recursive, it would only return top level
> > folders of the NameSpace object, which would be at the Outlook Today
> > level (top of store). If you have only one PST or mailbox loaded you'd
> > get exactly 1 handler installed and it would likely be useless. I'd
> > recursively call each Session.Folders.Item() object and dig down into
> > those also to get all the folders and their Items collections.
>

>> > >

> >

>

>
>
>
>
>
>> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> > news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> >> Hi Ken,
> >
>>> Thanks for quick reply.
> >
>>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> >> able to catch the event.
> >
>>> But How to add event handler for all folders when addin gets loaded, as
> >> we want to catch events for the mails which are getting archived or
> >> Moved using Email-Rules.
> >
>>> I have tried by adding event handler to all the folders on addin
> >> startup, but it didn't work.
> >
>>> Is there any way to trap this event at Explorer level?
> >
>>> Here is the code :
> >> IEnumerator enumrator =
> >> _outlookApplication.Session.Folders.GetEnumerator();
> >> while (enumrator.MoveNext())
> >> {
> >> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> >> if (folder != null)
> >> {
> >> AddEventHandlers(folder);
> >> }
> >> }
> >
>>> where AddEventHandlers recursively adding event hadler to each folder.
> >
>>> Thanks,
> >> Ashutosh

> >


>
 
K

Ken Slovak - [MVP - Outlook]

There is no way to get the EntryID of the items since ItemRemove() fires

after the item was removed and doesn't give you a handle to the removed

item. You'd have to maintain a list of items in each monitored folder with

their EntryID's and compare with the current Items collection to see what

was missing.

In addition, when an item is moved within a store the EntryID may change and

the old one would no longer be valid. That happens for example in a Exchange

mailbox store where it doesn't happen with a PST file store. Whether the

EntryID changes is entirely store provider dependent.

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:eOOVAqULKHA.1380@TK2MSFTNGP02.phx.gbl...
> Hi Ken,

> It started working after adding event handler on cached Folder.Items, Now
> events are getting fired on message Move. :)

> Only concern remaining is, how do I get Entry IDs of moved messages (old
> entry id before message move)?

> As I can't go for Folder.BeforeItemMove() which is available in Outlook
> 2007.

> Thanks,
> Ashutosh.
 
A

Ashutosh Jogdande

Hi Dmitry,

Can we trap Message Move event from one store to other store, using

redemption? (e.g. when messages are being archived).

Thanks,

Ashutosh.

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:e7%23Z1STLKHA.4004@TK2MSFTNGP05.phx.gbl...
> Thanks Dmitry,

> Unfortunately we are not using redemption in this version :( .
> We would possibly use in our next version...

> Thanks,
> Ashutosh

> "Dmitry Streblechenko" <dmitry@dimastr.com> wrote in message
> news:%23gteAhFLKHA.1376@TK2MSFTNGP02.phx.gbl...
> > <plug
>> You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
> > OnMessageDeleted / etc events on the store level
> > See http://www.dimastr.com/redemption/rdo/rdostore.htm
> > <plug
>
>> > > Dmitry Streblechenko (MVP)
> >

> >

> >

> > -
> > "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> > news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> >> Hi Ken,
> >
>>> Thanks for quick reply.
> >
>>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> >> able to catch the event.
> >
>>> But How to add event handler for all folders when addin gets loaded, as
> >> we want to catch events for the mails which are getting archived or
> >> Moved using Email-Rules.
> >
>>> I have tried by adding event handler to all the folders on addin
> >> startup, but it didn't work.
> >
>>> Is there any way to trap this event at Explorer level?
> >
>>> Here is the code :
> >> IEnumerator enumrator =
> >> _outlookApplication.Session.Folders.GetEnumerator();
> >> while (enumrator.MoveNext())
> >> {
> >> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> >> if (folder != null)
> >> {
> >> AddEventHandlers(folder);
> >> }
> >> }
> >
>>> where AddEventHandlers recursively adding event hadler to each folder.
> >
>>> Thanks,
> >> Ashutosh
> >
>>
>>
>>> " - " <kenslovak@mvps.org> wrote in message
> >> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
> >>> That would partially depend on what version of Outlook. For Outlook
> >>> 2003 and earlier you only would have the Items.ItemAdd() and
> >>> ItemRemove() events on the destination and source folders to rely on.
> >>> In Outlook 2007 you have the Folder.BeforeItemMove() event you could
> >>> also try.
> >>
>>>> > >>>

> >>>

> >>
>>>
>>>
>>>
>>>
>>>
>>>> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in
> >>> message news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> >>>> Hi All,
> >>>
>>>>> Is there any way to Catch Message Move event through outlook addin,
> >>>> when message/s are moved by using Email-rules or to Archive folders?
> >>>
>>>>> I am able to do this on manual message move by catching ItemRemove on
> >>>> selected folder.
> >>>> But while running a rule I am not getting Message Move/Remove event.
> >>>
>>>>> Code :
> >>>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
> >>>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
> >>>
>>>>
>>>>> Thanks in advance,
> >>>> Ashutosh
> >>>
>>>>
>>>>
>>>
>>
>>>

>

>>


>
 
D

Dmitry Streblechenko

Messages can only be truly moved within the same store. If you move messages

across different stores, messages are created in the target store and

deleted in the source store.

Dmitry Streblechenko (MVP)

-

"Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message

news:ONfGHoHOKHA.3588@TK2MSFTNGP05.phx.gbl...
> Hi Dmitry,

> Can we trap Message Move event from one store to other store, using
> redemption? (e.g. when messages are being archived).

> Thanks,
> Ashutosh.

> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in message
> news:e7%23Z1STLKHA.4004@TK2MSFTNGP05.phx.gbl...
> > Thanks Dmitry,
>

>> Unfortunately we are not using redemption in this version :( .
> > We would possibly use in our next version...
>

>
>> Thanks,
> > Ashutosh
>

>> "Dmitry Streblechenko" <dmitry@dimastr.com> wrote in message
> > news:%23gteAhFLKHA.1376@TK2MSFTNGP02.phx.gbl...
> >> <plug
>>> You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
> >> OnMessageDeleted / etc events on the store level
> >> See http://www.dimastr.com/redemption/rdo/rdostore.htm
> >> <plug
>>
>>> > >> Dmitry Streblechenko (MVP)
> >>

> >>

> >>

> >> -
> >> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in
> >> message news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> >>> Hi Ken,
> >>
>>>> Thanks for quick reply.
> >>
>>>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I
> >>> am able to catch the event.
> >>
>>>> But How to add event handler for all folders when addin gets loaded, as
> >>> we want to catch events for the mails which are getting archived or
> >>> Moved using Email-Rules.
> >>
>>>> I have tried by adding event handler to all the folders on addin
> >>> startup, but it didn't work.
> >>
>>>> Is there any way to trap this event at Explorer level?
> >>
>>>> Here is the code :
> >>> IEnumerator enumrator =
> >>> _outlookApplication.Session.Folders.GetEnumerator();
> >>> while (enumrator.MoveNext())
> >>> {
> >>> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> >>> if (folder != null)
> >>> {
> >>> AddEventHandlers(folder);
> >>> }
> >>> }
> >>
>>>> where AddEventHandlers recursively adding event hadler to each folder.
> >>
>>>> Thanks,
> >>> Ashutosh
> >>
>>>
>>>
>>>> " - " <kenslovak@mvps.org> wrote in message
> >>> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
> >>>> That would partially depend on what version of Outlook. For Outlook
> >>>> 2003 and earlier you only would have the Items.ItemAdd() and
> >>>> ItemRemove() events on the destination and source folders to rely on.
> >>>> In Outlook 2007 you have the Folder.BeforeItemMove() event you could
> >>>> also try.
> >>>
>>>>> > >>>>

> >>>>

> >>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> "Ashutosh Jogdande" <ashutosh_jogdande@persistent.co.in> wrote in
> >>>> message news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> >>>>> Hi All,
> >>>>
>>>>>> Is there any way to Catch Message Move event through outlook
> >>>>> addin, when message/s are moved by using Email-rules or to Archive
> >>>>> folders?
> >>>>
>>>>>> I am able to do this on manual message move by catching ItemRemove on
> >>>>> selected folder.
> >>>>> But while running a rule I am not getting Message Move/Remove event.
> >>>>
>>>>>> Code :
> >>>>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
> >>>>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
> >>>>
>>>>>
>>>>>> Thanks in advance,
> >>>>> Ashutosh
> >>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>>

>

>>


>
 
Status
Not open for further replies.
Top