我们公司最近迁移到了 Smarsh 提供的外部托管 Exchange 服务器。
有没有关于如何使用外部 Exchange 服务器设置 Team Foundation Server (TFS) 2008 和 2010 的文档?
我研究过经过身份验证的 SMTP 解决方案,但还没有找到真正有效的方法来实现这一点。我目前正在尝试在同一台机器上设置虚拟 SMTP 服务器并进行中继。但似乎没有奏效(我还没有尝试过所有的配置方法,但结果看起来很糟)。
编辑:问题似乎是我无法让 TFS 与需要身份验证的外部 SMTP 服务器通信。有办法吗?
TFS 没有真正的电子邮件配置,这看起来很糟糕。
编辑:我还应该注意,这是使用 TFS 2010(客户端是 Visual Studio 2010)
答案1
因此我能够让 TFS 不通过本地交换发送电子邮件。
commandbreak 的说法是正确的,TFS 不需要 Exchange。它需要 SMTP 服务器。我们遇到的问题是,我们仍然有 Exchange,但我们的 Exchange 服务器不在我们的域中。这导致我们无法将身份验证传递给此 Exchange 服务器,因为 TFS 似乎不支持经过身份验证的 SMTP。
对于 Server 2008:(应该适用于 2003)要修复此问题
- 我在安装了 TFS 的盒子上安装了 IIS 6.0 管理器和虚拟 SMTP 服务器。
- 打开 IIS 6.0 管理器并通过右键单击并选择属性来配置虚拟 SMTP 服务器。
- 在属性窗口上,我转到“访问”选项卡并单击“身份验证”按钮。
- 在身份验证窗口中,我选择了匿名访问和集成 Windows 身份验证。
- 返回“属性”窗口的“访问”选项卡,我单击“连接”按钮。
- 在出现的窗口中,我确保 SMTP 服务器正在接受来自本地机器的连接。
- 返回“属性”窗口的“访问”选项卡,我单击了“中继”按钮。
- 我确保本地机器可以通过 SMTP 服务器进行中继。
- 返回“属性”窗口,我转到“传递”选项卡并单击“出站安全”。
- 在出现的窗口中,我将安全级别设置为匿名访问。
- 完成 SMTP 服务器的属性后,我启动了 TFS 的管理控制台。
- 从右侧的树中选择应用程序层,我在右侧向下滚动到电子邮件设置。
- 我单击了电子邮件设置的“警报设置”链接,并添加了本地计算机的域 IP 地址(不是环回或本地主机)(不知道是否有必要)和已在我们的 Smarsh 帐户列表中配置的发件人地址。
关闭 TFS 管理控制台后,我进入 Visual Studio 2010 并配置自己,以便每当有工作项分配给我时接收警报。然后,我查看了一堆由失败的构建造成的错误,并将它们分配给我。花了几分钟,但我收到了电子邮件。
我只能假设这有效,因为 Smarsh 为我们提供了一个帐户,该帐户的用户名/电子邮件地址是我输入的 TFS 电子邮件警报发件人地址。我最初尝试设置虚拟 SMTP 以使用发件人电子邮件地址/用户名和密码进行基本身份验证,但这没有奏效。
我不确定这是否也有效,因为我们的域曾经将 MX 记录指向此处,因此 SMTP 服务器未被列入黑名单。我想 Smarsh 足够聪明,能够弄清楚我们正在从内部网络中继到他们的服务器,而这些服务器基本上只是返回给我们。如果您进行中继并且配置警报的目标电子邮件地址位于检查垃圾邮件的服务上(GMail、Hotmail 等类型的目标),则这可能不起作用。
希望这能帮助到其他人。我已经花了很多时间尝试配置了!
答案2
根据我的经验,TFS 不需要交换,如果有任何 SMTP(配置为智能主机)就足以使警报和通知正常工作。
你想做什么?
答案3
我还编写了一篇关于如何让 TFS 与 Microsoft Exchange Server 协同工作的指南。关键是要确保它有一个接收连接器,以便仅允许从 TFS 应用层服务器进行匿名 SMTP 中继。
以下是我关于该主题的完整博客文章的链接: http://www.edsquared.com/2012/02/10/Using+Exchange+Server+With+TFS+For+Delivering+EMail+Alerts.aspx