|
|
|
date: Sat, 19 Apr 2008 13:25:01 -0700,
group: microsoft.public.exchange.development
back
Re: OnSave store event
Hello Eric,
sorry, that's a bit I forgot to mention... set the scope to ANY.
Kind regards,
Henning Krause
"Eric" wrote in message
news:6ACB7286-F5D0-467F-A9EF-2A8F73EBC512@microsoft.com...
>I took over the project and overlooked that it was previously setup for
> async...
>
> Now it will fire the new portion of the com+ every once in a while, but
> the
> OnSyncSave still does not seem to be called. Is there a special way it has
> to
> be saved into the ".../SystemMailbox{guid}/StoreEvents/GlobalEvents/"
> area,
> or is it just saved there as an onsave EventMethod with Deep scope?
>
> "Henning Krause [MVP - Exchange]" wrote:
>
>> Hello,
>>
>> store-wide events must be synchronous. Implement OnSyncSave for this
>> scenario, but be sure to get off the thread your sink is called on as
>> fast
>> as possible since you block the store for the duration of your sink.
>>
>> Kind regards,
>> Henning Krause
>>
>> "Eric" wrote in message
>> news:CE60AB76-5AB8-4361-A859-09330D7C392A@microsoft.com...
>> >I have an OnSave store event that works great in individual mailboxes,
>> > however when placed in the
>> > ".../SystemMailbox{guid}/StoreEvents/GlobalEvents/" box for a
>> > store-wide
>> > event, it does not seem to fire. All the settings are the same for
>> > both
>> > and
>> > I can verify that the sink is in the GlobalEvents.
>> >
>> > Are there different fields that need to be set for a store-wide event?
>> >
>> >
>> >
>>
>>
date: Sun, 20 Apr 2008 11:16:46 +0200
author: Henning Krause [MVP - Exchange]
Re: OnSave store event
You are the best, now it fires for the event onsyncsave. However, this
brought one more problem, it still can't seem to open the email untill it is
in the inbox. Here is what is happening:
bstrURLItem =
file://./backofficestorage/DOMAIN.COM/MBX/eharvey/NON_IPM_SUBTREE/MDB
Transport Queue Folder/No Subject.EML
-----Open the adodb connection to the email----
Dim msgconn As New ADODB.Connection
Dim msgobj As New CdoEx.Message
msgconn.Provider = "Exoledb.DataSource"
msgconn.Open(bstrURLItem, "", "", 0)
-----This works without error-------------
-----Open Message to add disclaimer----
msgobj.DataSource.Open(bstrURLItem, msgconn,
Interop.msado28.ConnectModeEnum.adModeReadWrite)
-----This fails with the following----------
Object or data matching the name, range, or selection criteria was not found
within the scope of this operation.
It seems that I can work with the mail item in the inbox, but not as it is
outgoing, where I need to make some changes to the mail...
date: Sun, 20 Apr 2008 05:22:00 -0700
author: Eric
Re: OnSave store event
Hi,
yes, the item is not yet there.
But the CDO.Message.DataSource has another Open method which takes an object
and an interface name as input. You can use that method to associate your
message with the event record that is available from the dispEventInfo
parameter on the event sink.
message.Datasource.OpenObject(record, "_Record");
Kind regards,
Henning Krause
"Eric" wrote in message
news:9C7F1061-9091-4CF5-9EFE-F985E6378C52@microsoft.com...
> You are the best, now it fires for the event onsyncsave. However, this
> brought one more problem, it still can't seem to open the email untill it
> is
> in the inbox. Here is what is happening:
>
> bstrURLItem =
> file://./backofficestorage/DOMAIN.COM/MBX/eharvey/NON_IPM_SUBTREE/MDB
> Transport Queue Folder/No Subject.EML
>
> -----Open the adodb connection to the email----
>
> Dim msgconn As New ADODB.Connection
> Dim msgobj As New CdoEx.Message
>
> msgconn.Provider = "Exoledb.DataSource"
> msgconn.Open(bstrURLItem, "", "", 0)
>
> -----This works without error-------------
> -----Open Message to add disclaimer----
>
> msgobj.DataSource.Open(bstrURLItem, msgconn,
> Interop.msado28.ConnectModeEnum.adModeReadWrite)
>
> -----This fails with the following----------
>
> Object or data matching the name, range, or selection criteria was not
> found
> within the scope of this operation.
>
>
> It seems that I can work with the mail item in the inbox, but not as it is
> outgoing, where I need to make some changes to the mail...
>
>
>
date: Sun, 20 Apr 2008 17:42:33 +0200
author: Henning Krause [MVP - Exchange]
Re: OnSave store event
Hi Eric,
no, I haven't. But if you sent me a private mail (through my website
www.infinitec.de) I can send you an assembly I use as a foundation for my
eventisnks. It's pretty solid and has extensive tracing capabilities
built-in.
Kind regards,
Henning Krause
"Eric" wrote in message
news:B6D729FC-8A73-4F6D-AAA3-DA990D17189F@microsoft.com...
> Eric:
>
> Got that far, now it only fires once then I have to reset the COM+ to get
> it
> to fire once again... It looks like this is getting close to what I am
> looking for, but still need to find out where it is going wrong. Do you
> have
> any code snippets for what I am trying to do (add disclaimer to all
> created
> mail and write all new (in and out) mail info to log)?
>
>
>
> "Henning Krause [MVP - Exchange]" wrote:
>
>> Hi,
>>
>> yes, the item is not yet there.
>>
>> But the CDO.Message.DataSource has another Open method which takes an
>> object
>> and an interface name as input. You can use that method to associate your
>> message with the event record that is available from the dispEventInfo
>> parameter on the event sink.
>>
>> message.Datasource.OpenObject(record, "_Record");
>>
>> Kind regards,
>> Henning Krause
>>
>
date: Mon, 21 Apr 2008 09:03:41 +0200
author: Henning Krause [MVP - Exchange]
Re: OnSave store event
Again, thank you for the information, I did find the issue of only running
once...As I said, I took the project over and the last person had an exit sub
stuck in there for some reason, which did not let the cleanup happen...
Anyway, Everything works great, except I can't trap incoming email. When I
open it as an object with the _record, there is no information passed in,
everything is blank. So I tried catching that and opening those with the
bstrURLItem, and that errors out because it is not there yet. Is there a way
to read the external mail as it hits the inboxes?
"Henning Krause [MVP - Exchange]" wrote:
> Hi Eric,
>
> no, I haven't. But if you sent me a private mail (through my website
> www.infinitec.de) I can send you an assembly I use as a foundation for my
> eventisnks. It's pretty solid and has extensive tracing capabilities
> built-in.
>
> Kind regards,
> Henning Krause
>
> "Eric" wrote in message
> news:B6D729FC-8A73-4F6D-AAA3-DA990D17189F@microsoft.com...
> > Eric:
> >
> > Got that far, now it only fires once then I have to reset the COM+ to get
> > it
> > to fire once again... It looks like this is getting close to what I am
> > looking for, but still need to find out where it is going wrong. Do you
> > have
> > any code snippets for what I am trying to do (add disclaimer to all
> > created
> > mail and write all new (in and out) mail info to log)?
> >
> >
> >
> > "Henning Krause [MVP - Exchange]" wrote:
> >
> >> Hi,
> >>
> >> yes, the item is not yet there.
> >>
> >> But the CDO.Message.DataSource has another Open method which takes an
> >> object
> >> and an interface name as input. You can use that method to associate your
> >> message with the event record that is available from the dispEventInfo
> >> parameter on the event sink.
> >>
> >> message.Datasource.OpenObject(record, "_Record");
> >>
> >> Kind regards,
> >> Henning Krause
> >>
> >
>
>
date: Wed, 30 Apr 2008 17:51:43 -0700
author: Eric
|
|