Team Foundation server notifications are very useful for situations when you want to be notified about various changes to your project such as check-ins , work item changes, build completes or brakes.
Configuring notifications in previous versions of Team Foundation server required manual editing of Web config files of your TFS web service application. In 2010 version most common configuration tasks can be done through TFS administration console UI.
1. Configuring Email alerts on server side
Start up TFS admin console. test
Click on Application Tier tab and scroll down to Email Alert settings.
Click on Alert setting and enter details.
Even though your SMTP server doesn’t have to be on same domain as TFS box you can ran into trouble if your SMTP requires authentication.
Setup SMTP authentication details
If you try to use SMTP server which requires authentication you may run into following error found in Windows Server Event Viewer.
Detailed Message: TF271001: An error occurred while attempting to send an e-mail notification to the following address: xxxxxx@bizicbojan.com. Further e-mail notification errors that occur within the next five minutes might not be logged. Verify that the e-mail notification settings are correct in the Team Foundation Administration Console.
Exception Message: Transaction failed. The server response was: This server requires PTR for unauthenticated connections. (type SmtpException)
In previous versions of Team Foundation Server it was possible to configure TFS to work with SMTP user name and password, unfortunately IT IS NOT POSSIBLE TO DO DIRECTLY IN TEAM FOUNDATION SERVER 2010.
TEAM FOUNDATION SERVER 2010 DOESN’T SUPPORT SMTP SERVERS WHICH REQUIRE AUTHENTIFICATION.
Googling around I found that:
TFS does not directly support using a username and password to connect to an SMTP server but it is possible to work around this limitation by using an SMTP virtual server on the TFS AT. That virtual SMTP server can be configured to provide the authentication credentials that the “real” SMTP server needs when relaying messages. Please consult the following links for more details:
Apparently “TFS 2010 Background Job Agent” service, responsible for sending emails, has hardcoded line such as this:
smtpClient.UseDefaultCredential = true;
However, there is workaround for this issue you can found it on this blog post: http://blogs.msdn.com/b/buckh/archive/2006/07/21/smtp-username-password.aspx?wa=wsignin1.0
Basically you need to setup SMTP server which does not require username and password which will “relay” messages to your main SMTP server. You only need to setup SMTP relaying correctly.
2. Configuring Email alerts on client side
Fire up Visual Studio and connect to your team project.
Right click on your team project and then on “Project Alerts”.
Use this dialog to setup for which notification’s you want subscribe to.
3. Monitoring
To monitor your TFS notifications open Event Viewer, expand Custom Views and click on Application Events and look for Source=TFS Services events.
Additionally you can switch on logging and tracing of your TFS Job Agent by editing config file usually located on this path C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\TFSJobAgent\TfsJobAgent.exe.config.
Edit following lines under system.diagnostics:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<!--To enable tracing to file, simply uncomment listeners section and set trace switch(es) below.
Directory specified for TextWriterTraceListener output must exist, and job agent service account must have write permissions. -->
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\jobagent.log" />
<remove name="Default" />
</listeners>
</trace>
<switches>
<!-- Trace Switches
Each of the trace switches should be set to a value between 0 and 4, inclusive.
0: No trace output
1-4: Increasing levels of trace output; see Systems.Diagnostics.TraceLevel-->
<add name="API" value="2" />
<add name="Authentication" value="2" />
<add name="Authorization" value="2" />
<add name="Database" value="2" />
<add name="General" value="2" />
<add name="traceLevel" value="2" />
</switches>
</system.diagnostics>
Enter location for your log file and increase level from 0 to desired level of data in your log files.
Hope this helps