For various reasons, one of our corporate intranet sites in development cannot use Active Directory groups or passwords. Users logins will be stored within a MSSQL database instead.

However, we do want the ability to send email notifications to these users using their AD registered email address. All users will exist in AD.

So my general question is what is the better approach:

  1. Use SQL to query the AD for emails when the web application wants to notify selected user(s)
  2. Store the email addresses in the MSSQL database and update records via a batch process each night?

The first seems to have less duplication, but performance could be slower (and vice-versa). Is there another method?


To answer your questions, the emails will generally be initiated by other users. For instance, after modifying a document the editor will have the option to send a notification to be sent immediately. The plan was to have the ASP.NET application handle sending mail. In terms of volume, peak usage would be around 200-300 a day.

  • 1
    Can you tell us more about the mechanism you're using to initiate and process the notifications? I.e., does the application set a flag in the database, which a periodic job picks up, or is it more of a "push"? What are you using to send e-mails? Database Mail? What rate of e-mail sending are you expecting (in, say, e-mails/second)? Is there a SLA for timeliness of e-mail delivery? If you could please edit this information (and anything else you think is relevant) into the question, that would be appreciated.
    – Jon Seigel
    Sep 26, 2012 at 2:37

1 Answer 1


It would appear that the responsibility of sending the email lies with the ASP.NET application not the database.

I would perform a lookup of the users email from AD within the ASP.NET application and generate the email that way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.