我收到一条从网站返回给我的错误消息,这似乎是服务器端的问题。但是,此服务器适用于盒子上的所有其他站点。我(开发人员)是否有可能做错了什么?我不知道从哪里开始在服务器上跟踪这个问题,我的系统管理员说一切正常:
The following recipient(s) cannot be reached:
Customer Service Account on 6/3/2009 11:00 AM
There was a SMTP communication problem with the
recipient's email server. Please
contact your system administrator.
<fgdc.myservername.net #5.5.0 smtp;550 Requested action not taken: mailbox unavailable>
服务器是 2003、64 位并运行 Exchange 2003
站点是 Asp.Net C#,使用 URL 路由
我从哪里开始解决这个问题?
更新
事实证明,我的系统管理员将问题追溯到垃圾邮件保护层。事实证明 MIMESweeper 可能正在丢弃消息,因为它看到来自我们的网络服务器场的消息试图发送带有内部地址的电子邮件。我们测试了外部地址(gmail、hotmail 等),效果很好。
感谢所有的答案。事实证明,从我的角度来看,最好的答案是“与您的系统管理员交谈”......但我想我会为任何有类似问题的人更新这个问题。
那就是服务器说您指定为“RCPT TO:”的人无效。
我建议您使用 Wireshark 之类的工具来捕获代码和服务器之间的 SMTP 对话,并验证您发送的内容是否符合您的预期。总是很高兴看到线路上发生的事情,看看它是否与您的代码所说的应该发生的事情相吻合。
如果您指定了正确的收件人,请联系服务器管理员并让他们检查。
当然,这可能是开发商的错。例如,规范说 RCPT 应该是这样的:
但是,实际发送这个是非常常见的做法:
大多数功能齐全、成熟的 MTA 都接受后者,即使它并不完全正确。一些应用程序(如邮件防火墙、CRM 邮件捕捉器等)会对此严格要求并返回错误。
我并不是说这是这种情况下的原因,但它是您的代码如何与大多数服务器一起工作的一个示例,但如果它在一小部分服务器上中断仍然是您的错。
我赞同 Evan 的建议,即嗅探流量并了解实际发送的内容。
您可以使用常规武器向相关电子邮件地址发送电子邮件吗?如果是这样,它可能是你的代码。如果不是,那就是他们的服务器(或者可能是试图为他们的服务器智能托管的防火墙)。
如果您想知道这是服务器故障站点。如果您的系统管理员说它是代码 - 它就是代码。错误总是开发人员的错。如果您想责怪系统管理员,我听说有一个名为 stackoverflow 的网站可能更令人同情:)
说真的,是的,它是代码。根据错误,recipent 无效。不知何故,网络服务器试图将邮件发送到一个名为“客户服务帐户”的帐户,所有电子邮件地址的格式均为 [email protected]。您收到 550 错误的事实表明您正确连接到目标邮件服务器,但没有名为“客户服务帐户”的用户
从技术上讲 550 意味着无法中继,但我猜您正在尝试发送到内部邮箱。即使您尝试中继,此收件人的格式也不正确。