So I was able to make TFS send emails not through a local exchange.
commandbreak was correct in the fact that TFS does not need Exchange. It needs a SMTP server. The problem we were running into is that we still had Exchange, but our Exchange server was off of our domain. This lead to us not being able to pass authentication to this Exchange server because TFS appears not to support authenticated SMTP.
For Server 2008: (should be relevant for 2003)
To fix this
- I installed the IIS 6.0 Manager and Virtual SMTP server on the box that had the installation of TFS.
- Opened the IIS 6.0 manager and configured the virtual SMTP server by right clicking on it and selecting properties.
- On the properties window I went to the Access tab and clicked on the Authentication button.
- On the Authentication window I selected Anonymous access and Integrated Windows Authentication.
- Back on the Access tab of the Properties window I clicked the Connection button.
- On the resulting window I made sure that the SMTP server was accepting connections from the local machine.
- Back on the Access tab of the Properties window I clicked the Relay button.
- I made sure that the local machine could relay through the SMTP server.
- Back on the Properties window I went to the Delivery tab and clicked the Outbound Security.
- On the resulting window I set the security level to Anonymous access.
- Done with the Properties of the SMTP server I fired up the Administration Console for TFS.
- Selecting the Application Tier from the tree on the right I scrolled down on the right side to the Email settings.
- I clicked the Alert Settings link for the email settings and added the domain IP address (not loopback or localhost) of the local machine (do not know if this is necessary) and a from address that had already been configured in our Smarsh account list.
After closing the TFS Administration Console I went into Visual Studio 2010 and configured myself to receive alerts whenever a work item was assigned to me. I then went through a bunch of bugs created by failed builds and assigned them to me. It took a few minutes but I got the emails.
I can only assume that this works because Smarsh has an account for us with the username/email address that I put in for the from address for the TFS email alerts. I had originally tried setting up the virtual SMTP to use basic authentication using the from email address/username and password, but this didn't work.
I'm not sure if this also works because our domain used to have our MX record point here so the SMTP server is not blacklisted. I would like to think that Smarsh is smart enough to figure out that we're relaying from our internal network to their servers which is basically just back to us. This may not work if you relay and your destination email address for a configured alert is on a service that does checking for junk mail (a GMail, Hotmail, etc type of destination).
Hopefully this will help someone else out. I've been working on trying to configure things way too long!