Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsWindows Server 2003Windows 2000Windows NTSmall Business ServerVirtual ServerExchange ServerIISHost Integration ServerISA ServerSMSWSUSMOMWindows Media ServerSecurityCertification
Related Topics
SQL ServerMS WindowsMS OfficePC HardwareMore Topics ...

Windows Server Forum / Exchange Server / Applications / August 2005

Tip: Looking for answers? Try searching our database.

Notification(message read/deleted)

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Melbin - 23 Aug 2005 07:43 GMT
       I want to develop an application for getting the notifications when
some particular messages are read/deleted for about 40,000 mailboxes.  
        I am using Exchange server 2000. i am using that as the email
server also.
I tried to use the Advisesink using MAPI but then i came across the problem
of the limitation of 255 mailboxes in a single process. For 40,000 mailboxes
if i am using seperate processes it will come upto 200 processes which is not
feasible. So i wanted to know which way i can do this.
    I did "Exchange store events: synchronous events, asynchronous events,
and system events" . But from here i will be getting only the delete event
not read event.
   So for that will i be able to us the auditing? (issue a PROPPATCH on the
folder on which you want to enable the auditing
(http://msdn.microsoft.com/library/en-us/e2k3/e2k3/_exch2k_accessing_item_descrip
tors.asp
),
and pass along a security descriptor containing a SACL). If it can be used
then how is it done?
 Or is there aome other way to do this?
Thanks a lotz in advance

       
Michael - 23 Aug 2005 11:53 GMT
Do you want to set security descriptor property?
You can use WebDAV to set security descriptor.

Also you can use WebDAV for notification but I am not sure if this is good
solution for 40000 mailboxes.
Have you tried WebDAV notification?

Michael
-------------------------------
If you need WebDAV API for Exchange server,
use our component WebDAV .NET for Exchange.
Check out http://www.independentsoft.com

>         I want to develop an application for getting the notifications when
> some particular messages are read/deleted for about 40,000 mailboxes.
[quoted text clipped - 9 lines]
>     So for that will i be able to us the auditing? (issue a PROPPATCH on the
> folder on which you want to enable the auditing

(http://msdn.microsoft.com/library/en-us/e2k3/e2k3/_exch2k_accessing_item_de
scriptors.asp),
> and pass along a security descriptor containing a SACL). If it can be used
> then how is it done?
>   Or is there aome other way to do this?
> Thanks a lotz in advance
Melbin - 23 Aug 2005 12:39 GMT
I did something like this for setting the SACL. Is this correct? will it give
me the notification when a message is read/deleted for that particular
folder? But where am i specifying the log file? Am i using the security log
file? Or will i be able to use the cutom registered log file?

      CoInitialize(NULL);
     bstr_t yourServerName = "ICOPE-LDAP";
     bstr_t sUrl = "http:/" + yourServerName +
       "/exchange/sampleuser1/inbox";
     bstr_t sMethod = "PROPPATCH";
 
     _variant_t vUser = L"ICOPE-LDAP\\Administrator"; //sampleuser1
     _variant_t vPassword = L"mks";  //sampleuser1

    MSXML::IXMLHttpRequest* pXMLHttpReq=NULL;
    HRESULT hr = ::CoCreateInstance(__uuidof(XMLHTTPRequest),
     NULL,
     CLSCTX_INPROC_SERVER,
     __uuidof(IXMLHttpRequest),
     (LPVOID*)&pXMLHttpReq);

      if (S_OK != hr)
      {
         printf("XML Http Request pointer creation failed\n");
         return 0;
      }
        _variant_t vAsync = (bool)FALSE;
     pXMLHttpReq->open(sMethod,
       sUrl,
       vAsync,
       vUser,
       vPassword);

     pXMLHttpReq->setRequestHeader((bstr_t)"Content-Type",
        (bstr_t)"text/xml");

     bstr_t sReq;
     bstr_t sNewVal="audit_on_success:audit_on_failure";

     sReq =  "<?xml version='1.0'?>";
     sReq = sReq + "<a:propertyupdate xmlns:a='DAV:' xmlns:o=" +
        "'urn:schemas:httpmail:inbox'>"   + "xmlns:f=
'http://schemas.microsoft.com/security/'>";
     sReq = sReq + "<a:set><a:prop>";
     sReq = sReq + "<s:security_descriptor>";
     sReq = sReq + "<s:sacl>" + sNewVal + "<s:sacl>";
     sReq = sReq + "</s:security_descriptor >";
     sReq = sReq + "</a:prop></a:set></a:propertyupdate>";
     // Send the request to set the search criteria.
     pXMLHttpReq->send(sReq);
********************************************************

> Do you want to set security descriptor property?
> You can use WebDAV to set security descriptor.
[quoted text clipped - 35 lines]
> >   Or is there aome other way to do this?
> > Thanks a lotz in advance
Michael - 23 Aug 2005 13:22 GMT
Do you plan to set this property  to all 40 000 mailboxes?

Michael
-------------------------------
If you need WebDAV API for Exchange server,
use our component WebDAV .NET for Exchange.
Check out http://www.independentsoft.com

> I did something like this for setting the SACL. Is this correct? will it give
> me the notification when a message is read/deleted for that particular
[quoted text clipped - 80 lines]
> > the
> > > folder on which you want to enable the auditing

(http://msdn.microsoft.com/library/en-us/e2k3/e2k3/_exch2k_accessing_item_de
> > scriptors.asp),
> > > and pass along a security descriptor containing a SACL). If it can be used
> > > then how is it done?
> > >   Or is there aome other way to do this?
> > > Thanks a lotz in advance
Melbin - 23 Aug 2005 13:30 GMT
Yes. Otherwise how will i get notified for all those mailboxes. Will this
work? Is this idea correct?

> Do you plan to set this property  to all 40 000 mailboxes?
>
[quoted text clipped - 102 lines]
> > > >   Or is there aome other way to do this?
> > > > Thanks a lotz in advance
Michael - 23 Aug 2005 17:01 GMT
I know about WebDAV notification.
With WebDAV you can use one account (Admin) and subscribe for events in all
40 000 mailboxes.
We have not tested with large number of mailboxes like you have, but this
means that you must send 40 000 requests to your server to subscribe in all
mailboxes.
With WebDAV there is no limit of 256 open mailboxes because to subscribe for
event with WebDAV you do not need to "open mailbox"

Because you have such large number of mailboxes you can try to use WebDAV
SUBSCRIBE method (see documentation in Exchange SDK) and subscribe for
events with callback.
Problem with WebDAV is that maximun subscription lifetime is 1 hour (3600
seconds) and after that you must renew your subscription.

Michael
-------------------------------
If you need WebDAV API for Exchange server,
use our component WebDAV .NET for Exchange.
Check out http://www.independentsoft.com

> Yes. Otherwise how will i get notified for all those mailboxes. Will this
> work? Is this idea correct?
[quoted text clipped - 97 lines]
> > > > the
> > > > > folder on which you want to enable the auditing

(http://msdn.microsoft.com/library/en-us/e2k3/e2k3/_exch2k_accessing_item_de
> > > > scriptors.asp),
> > > > > and pass along a security descriptor containing a SACL). If it can be
> > used
> > > > > then how is it done?
> > > > >   Or is there aome other way to do this?
> > > > > Thanks a lotz in advance
Henning Krause [MVP - Exchange] - 23 Aug 2005 18:04 GMT
Hello,

the WebDAV notify will not solve the problem, because no notifications are
send when elements are being read.

AFAIK, the 256 mailbox limit was with Exchange 2000, where a hotfix exist.
Exchange 2003 should not exhibit this behavior.

Greetings,
Henning Krause
MVP - Exchange
http://www.infinitec.de

>I know about WebDAV notification.
> With WebDAV you can use one account (Admin) and subscribe for events in
[quoted text clipped - 144 lines]
>> > > > >   Or is there aome other way to do this?
>> > > > > Thanks a lotz in advance
Melbin - 23 Aug 2005 14:02 GMT
Yes. Otherwise how will i get notified when a message is read/deleted in any
of those mailboxes. Is this way correct?

> Do you plan to set this property  to all 40 000 mailboxes?
>
[quoted text clipped - 102 lines]
> > > >   Or is there aome other way to do this?
> > > > Thanks a lotz in advance
Melbin - 24 Aug 2005 05:09 GMT
Sorry Henning. I thought you are busy and that is why you are not replying.
Any way thanks to Henning and Micheal for replying.
       So i can't use webdav notifications also. Now the only way is
Auditing. But how am i telling that i need the success and failure of
messages in a folder? The code i did is as follows,
    CoInitialize(NULL);
     bstr_t yourServerName = "SERVERI";
     bstr_t sUrl = "http:/" + yourServerName +
       "/exchange/sampleuser1/inbox";
     bstr_t sMethod = "PROPPATCH";
 
     _variant_t vUser = L"SERVERI\\Administrator"; //sampleuser1
     _variant_t vPassword = L"mks";  //sampleuser1

    MSXML::IXMLHttpRequest* pXMLHttpReq=NULL;
    HRESULT hr = ::CoCreateInstance(__uuidof(XMLHTTPRequest),
     NULL,
     CLSCTX_INPROC_SERVER,
     __uuidof(IXMLHttpRequest),
     (LPVOID*)&pXMLHttpReq);

      if (S_OK != hr)
      {
         printf("XML Http Request pointer creation failed\n");
         return 0;
      }
        _variant_t vAsync = (bool)FALSE;
     pXMLHttpReq->open(sMethod,
       sUrl,
       vAsync,
       vUser,
       vPassword);

     pXMLHttpReq->setRequestHeader((bstr_t)"Content-Type",
        (bstr_t)"text/xml");

     bstr_t sReq;
     bstr_t sNewVal="audit_on_success:audit_on_failure";

     sReq =  "<?xml version='1.0'?>";
     sReq = sReq + "<a:propertyupdate xmlns:a='DAV:' xmlns:o=" +
        "'urn:schemas:httpmail:inbox'>"   + "xmlns:f=
'http://schemas.microsoft.com/security/'>";
     sReq = sReq + "<a:set><a:prop>";
     sReq = sReq + "<s:security_descriptor>";
     sReq = sReq + "<s:sacl>" + sNewVal + "<s:sacl>";
     sReq = sReq + "</s:security_descriptor >";
     sReq = sReq + "</a:prop></a:set></a:propertyupdate>";
     // Send the request to set the search criteria.
     pXMLHttpReq->send(sReq);
********************************************************

> Yes. Otherwise how will i get notified when a message is read/deleted in any
> of those mailboxes. Is this way correct?
[quoted text clipped - 105 lines]
> > > > >   Or is there aome other way to do this?
> > > > > Thanks a lotz in advance
Melbin - 24 Aug 2005 11:00 GMT
Sorry Henning. I thought you are busy and that is why you are not replying.
Any way thanks to Henning and Micheal for replying.
       So i can't use webdav notifications also. Now the only way is
Auditing. But how am i telling that i need the success and failure of
messages in a folder? I saw something like "urn:schemas:httpmail:read ". Is
this the one for read? then for delete what?
       
The code i did is as follows. This code is giving OK response but not
getting any read/delete events.

    CoInitialize(NULL);
     bstr_t yourServerName = "SERVERI";
     bstr_t sUrl = "http:/" + yourServerName +
       "/exchange/sampleuser1/inbox";
     bstr_t sMethod = "PROPPATCH";
 
     _variant_t vUser = L"SERVERI\\Administrator"; //sampleuser1
     _variant_t vPassword = L"mks";  //sampleuser1

    MSXML::IXMLHttpRequest* pXMLHttpReq=NULL;
    HRESULT hr = ::CoCreateInstance(__uuidof(XMLHTTPRequest),
     NULL,
     CLSCTX_INPROC_SERVER,
     __uuidof(IXMLHttpRequest),
     (LPVOID*)&pXMLHttpReq);

      if (S_OK != hr)
      {
         printf("XML Http Request pointer creation failed\n");
         return 0;
      }
        _variant_t vAsync = (bool)FALSE;
      pXMLHttpReq->open(sMethod,
       sUrl,
       vAsync,
       vUser,
       vPassword);

      pXMLHttpReq->setRequestHeader((bstr_t)"Content-Type",
        (bstr_t)"text/xml");

     bstr_t sReq;
     bstr_t sNewVal="audit_on_success:audit_on_failure";
sReq =  "<?xml version='1.0'?>";
sReq = sReq + "<a:propertyupdate xmlns:a='DAV:'
xmlns:o='urn:schemas:httpmail:inbox'>";
sReq = sReq + "<a:set><a:prop>";
sReq = sReq + "<b:security_descriptor xmlns:b=
'http://schemas.microsoft.com/security/'>";
sReq = sReq + "<o:sacl>" + sNewVal + "</o:sacl>";
sReq = sReq + "</b:security_descriptor >";
sReq = sReq + "</a:prop></a:set></a:propertyupdate>";      
pXMLHttpReq->send(sReq);
********************************************************

> Sorry Henning. I thought you are busy and that is why you are not replying.
> Any way thanks to Henning and Micheal for replying.
[quoted text clipped - 157 lines]
> > > > > >   Or is there aome other way to do this?
> > > > > > Thanks a lotz in advance
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.