You would think this would be quite a simple task right. It probably is if you are some SQL guru I imagine, this whole sending mail from a db is a new concept to me, and I may have missed something very basic (wouldn’t be the first time, and certainly not the last).. it does not seem to be all that straight forward.
My first thought was to go with Database Mail. Well, Database Mail is nice enough, I set it all up nicely following the msdn walkthrough here, the test email fired off fine.. I thought all was good and well until I thought my problem through a bit further. I will have a recordset where each row is associated with someone to email with information in that row. So to use the sp_send_dbmail procedure would involve some kind of cursor/crazy stored procedure that I just wasn’t all that keen on writing. Like I said. Im no SQL guru.
So then one of my collegaues said what about Notification Services. I thought, hey cool, I love the BI tools that come with SQL 2005 (especially reporting services <3) and Notification Services I would love to learn about. So I spent 20 mins googling it and then I find out Notification Services does not ship with SQL 2008. Well that kind of pissed me off a bit because I didnt want to implement some solution that would get scrapped in a few months when we upgrade to SQL 08. Not that my workplace is likely to do that anytime soon.. haha.
Anyway, so then I discovered this awesome, and I mean awesome tutorial that basically explains to do exactly what I wanted. One thing I have learnt though, is that delaying validation on the send mail task will allow you to set the ToLine property using an expression. This is the perfect solution for my problem, and means that for every row in the table/recordset I can send a new email to the required person with information from that row.
Another caveat was that to get exchange to act as a SMTP relay so you can fire off the Send Mail task you need to tweak the default settings a bit. The official word on how to do that is here, basically just add the IP address of your Exchange server to the Relay settings in your exchange system manager.
Now I can spam emails to my co workers when I test this on Monday