ASP.NET通过exchange发送邮件问题

ASP.NET通过exchange发送邮件问题

我有一台在 Windows 2008 R2 上运行的 Exchange 2010 服务器,还有一台运行 Windows 2003 的远程 Web 服务器,上面有多个站点(所有 asp.net mvc 2 站点)。我在 Exchange 中设置了传输,我的远程 Web 服务器上的所有网站都可以毫无问题地向 Exchange 服务器中的任何人和任何外部域发送电子邮件。

现在说说我的问题。我遇到了那个网络服务器的问题,所以我将其中一个网站移到我的 Exchange 服务器上运行,它运行良好(低点击量网站),只是电子邮件无法从该网站发送。我尝试更改 Exchange 中的传输以添加本地计算机的 IP 地址和 127.0.0.1 地址,但它仍然没有发送任何电子邮件。

关于如何实现这个功能你有什么想法吗?

远程网站仍然可以发送电子邮件,没有问题,我必须在远程服务器上移动的网站版本仍然可以发送电子邮件,但在该网站的 Exchange 服务器上无法发送电子邮件。

我猜测这是一个传输问题,因为它在同一台服务器上运行,所以防火墙不应该是问题所在。

我将 web.config 中的 smtp 设置更改为 localhost,现在我确实收到了发送到 Exchange 服务器上的我的帐户的电子邮件,但没有收到外部地址上的任何电子邮件。

补充说明一下,这是一个定制开发的 asp.net mvc 2 网站。无论哪种情况,发送电子邮件时代码中都不会产生任何错误。

答案1

您需要提供更多关于您的申请的详细信息。您是尝试发送经过身份验证的电子邮件还是匿名电子邮件?全部您在 Windows 2003 上运行的网站不再与 Exchange 邮件服务器一起使用,还是只是一个特定的网站?

你可能想看看http://www.systemwebmail.com/default.aspx因为他们可能为您提供可编程解决方案。无论使用量有多大或多小,我都不建议在 Exchange 服务器上运行任何类型的网站。

需要检查的一些简单事项:防火墙端口、应用于 Exchange 服务器和/或 Web 服务器的任何可能影响端口的更新/补丁、检查 Web/Exchange 服务器上的日志等。在 Visual Studio 中使用断点逐步检查 Web 应用程序可能会更容易,以查看确切地正在应用程序中进行,但我会首先尝试诊断这是一个应用程序问题还是非应用程序问题。


这是自定义 ASP.NET 应用程序还是供应商解决方案?我认为您需要阅读此页面 (http://www.systemwebmail.com/faq/4.1.aspx#4.1) 并尝试确定导致该问题的一些因素。

答案2

我会首先检查 Exchange 中接收连接器的日志。通常类似于C:\Program Files\Exchange Server\V14\TransportRoles\Logs\ProtocolLog\SmtpReceive 确保已为所有接收连接器启用详细日志记录。

  1. 您可以查看应用程序的电子邮件是否能够连接到 Exchange 接收连接器
  2. 如果您有多个接收连接器,您可以检查哪个连接器用于应用程序的电子邮件。我曾多次遇到有多个接收连接器的情况(一个用于来自其他网络设备的内部电子邮件,一个用于从互联网接收,一个用于内部自定义应用程序等),而错误的接收连接器正在接收电子邮件。我拥有不同的授权(匿名、经过身份验证等)并允许每个 IP,这导致了各种问题。您的网站现在位于 Exchange 服务器上,这一事实可能导致它使用不同的接收连接器并受到您的应用程序未考虑到的某些因素的影响。

答案3

您是否在 Exchange Server 上启用了 IPv6?当您的网站尝试解析邮件服务器名称时,它可能会尝试使用 IPv6 地址,而这在上面接收连接器的描述中并未提及。

相关内容