【问题标题】:MailMessage sends ok from Test PC but not Dev ServerMailMessage 从测试 PC 发送 ok 但不是开发服务器
【发布时间】:2012-02-29 07:50:59
【问题描述】:

当我在本地测试时,我能够将 smtp 消息发送到第 3 方 smtp 服务器,但当我将此代码移植到我们的开发服务器时却不能。当我在那里尝试时,我真的不知道,但我认为它没有发出请求。我运行了 firebug、fiddler 并没有从我的代码中看到发送邮件请求的请求。

除了测试我发送这个 smtp 请求以确保它对我们开放(确实如此)的主机的 smtp 端点之外,我一直在试图弄清楚为什么相同的代码在我的机器上工作而不是在我们的 Windows 上工作Server 2008 R2 开发盒。

【问题讨论】:

  • 我假设我应该能够看到像提琴手之类的发送的 smtp 消息?我怎么知道 SmtpClient.SendMail 是否真的发送了请求?当我在我的 PC 上本地运行邮件代码时,即使此代码正在运行,我也没有看到任何请求发出...我看不到如何跟踪已发送的 smtp 消息。
  • 我假设调用失败时应该抛出。您是否在盒子上的事件查看器中看到任何暗示?

标签: .net mailmessage


【解决方案1】:

您是通过代码直接将邮件发送到第 3 方 smtp 服务器,还是通过 2008 机器上的本地 SMTP 服务器路由?

如果您没有通过(例如)2008 机器上的 IIS 中的 SMTP 服务进行路由,您可以试试这个,将您的应用配置为使用本地服务,并在代码中设置以下内容以将邮件放入文件夹结构在 IIS 下允许 SMTP 服务处理电子邮件的传递

smtpclient.deliverymethod = smtpdeliverymethod.pickupdirectoryfromiis

然后您可以为本地 smtp 服务器配置日志记录,并检查本地和远程服务器之间的对话以识别问题。您还可以看到用于排队邮件的文件夹以及其中的实际电子邮件信封(如果您很快的话)

您是否使用 telnet 检查了从 2008 机器到远程 smtp 服务器的连接以打开与它的对话以消除任何防火墙问题?

如果电子邮件仍然无法通过第三方 SMTP 服务器,则可能是导致您出现问题的可送达性问题。是否允许您的服务器 IP 地址为它所在的域发送电子邮件,如果不是,您可能需要针对您的 DEV 框的 IP 地址的域发布 SPF 记录。

【讨论】:

  • "您是通过代码直接将邮件发送到第 3 方 smtp 服务器还是通过 2008 机器上的本地 SMTP 服务器路由?" 是
  • 是的,我总是在测试前通过 telnet 进行测试……而且我可以连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多