none
NewMail notification for all mailboxes RRS feed

  • Question

  • Hi to all, I have this problem.

    With an external application I Need to process in real-time all "NewMail notification" for all the mailboxes (about 5000) in my organization.
    With Exchange 2003 the solution was OnSave Sink.

    How can i do this now ?

     

    Sunday, January 29, 2012 11:33 AM

All replies

  • Depends what you want to do as part of the NewMail Notification ? The first thing i would suggest you look at is using Transport Agents which allows you to intercept the messages while they are in the Transport PipeLine (All messages in Exchange will transits a Hub Server) see the Exchange Transport SDK for more details http://msdn.microsoft.com/en-us/library/dd877026%28v=exchg.140%29.aspx

    If Transport Agents can't do what you want then the next option would be EWS Notifications see http://msdn.microsoft.com/en-us/library/hh312849%28v=exchg.140%29.aspx these are a little more complex given the number of users you want this to take affect on.

    Cheers
    Glen

    Monday, January 30, 2012 5:21 AM
  • Hi Glen, thanks for reply....

    I had already analyzed both. Unfortunately I need to be notified only after the message was physically delivered to the user's inbox.

    With the first solution I know only that the message is being delivered.

    With the second solution I have to create a subscription for each mailbox present in my organization. Everything works fine if there are a few mailboxes, but with 5000 mailboxes I have a big problem.

    For example, I have developed a possible solution: the transport agent acquires the message-id of the message is being delivered while another thread looking for the message-id in the tracking log to check if the message was delivered.

    What I would like to know if the event "DELIVERED" is recorded when the message is physically delivered to the mailbox, and if I have performance problems with traffic of about 3000 messages per hour.

    There are other possibilities?

    • Marked as answer by Cassini Marco Monday, January 30, 2012 7:00 AM
    • Unmarked as answer by Cassini Marco Monday, January 30, 2012 7:01 AM
    Monday, January 30, 2012 7:00 AM
  • >>I had already analyzed both. Unfortunately I need to be notified only after the message was physically delivered to the user's inbox.

    It might be usefull to know why you need this ? Eg what actions do you then perform on the messages that could not have been done in a Transport Agent. If its that your moving a message to a particular folder within the mailbox what you can do is use a Inbox rule to move the message based on a X-header or other property you modified on the message within a transport agent.

    >> What I would like to know if the event "DELIVERED" is recorded when the message is physically delivered to the mailbox, and if I have performance problems with traffic of about 3000 messages per hour

    Anything you see in the Tracking logs is generated by the Tracking Log Transport Agent Delivered means that it was passed of by the Transport Service to the Store (but before the message hits the mailbox) there is full diagram of everything that happens within the Transport Pipeline http://www.microsoft.com/download/en/details.aspx?id=21987

    3000 message per hour isn't that high a volume some Hub server would do this in a few minutes but you need to think about is concurrency with that solution eg what happens when someone send a message to every user within the org.

    There are other possibilities?

    There is no such thing as store wide events so any solution outside of Transport Agents and Inbox rules is going to client based either sync or notification.

    Cheers
    Glen 


    Monday, January 30, 2012 9:20 AM
  • Hi Glen, thank you so much for your patience ...

    My application is a "Certified Mail system" which, according to Italian law, has legal relevance.
    This application must create a mail called "delivery receipt" to be sent to the sender of the email delivered.
    This receipt must also contain the date and time the message was physically delivered.

    If everything works well, in a transport agent I know if a message is being delivered.
    But if for any reason, (eg. the server is down or there is any other problem), the message is not physically stored in the mailbox or the delivery is delayed, and I have already sent the "delivery receipt", there could be in serious legal consequences .


    Monday, January 30, 2012 12:55 PM
  • >My application is a "CertifiedMail system" which, according to Italian law,has legal relevance.
    This application must create a mailcalled "delivery receipt" to be sentto the sender of the email delivered.
    This receipt must also contain the date and time the message was physically delivered.

    That really then depends on how your servers are setup eg do you have the Hub and Mailbox Role on the same server etc but in your legal argument if you where using multiple DAG's there maybe a potential problem during a failure where new mail hadn't converged to the DAG your switching to etc. If you used the Tracking logs on the Mailbox Role servers that should be pretty close eg (if the Source is the STOREDRIVER and the Event is Delivered that means its hit the final end point).

    The only other thing i could think of would be the AVAPI but this is restricted to AV vendors.

    Cheers
    Glen 

     

    Tuesday, January 31, 2012 6:09 AM