加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

电子邮件 – 邮箱不可用,客户端没有权限作为此发件人发送 – 仅

发布时间:2020-12-15 22:42:14 所属栏目:asp.Net 来源:网络整理
导读:我们的用户只需点击一下按钮就可以从我们的ASP.NET Web应用程序发送电子邮件.在我们的测试环境中,发生了一件奇怪的事情. 应用程序第一次尝试发送电子邮件时,我们会收到异常: 信箱不可用.服务器响应为:5.7.1客户端无权作为此发件人发送 有趣的是,当用户再次
我们的用户只需点击一下按钮就可以从我们的ASP.NET Web应用程序发送电子邮件.在我们的测试环境中,发生了一件奇怪的事情.

应用程序第一次尝试发送电子邮件时,我们会收到异常:

信箱不可用.服务器响应为:5.7.1客户端无权作为此发件人发送

有趣的是,当用户再次点击该按钮时(因此应用程序尝试再次发送电子邮件),它可以工作,并发送电子邮件.

如果您等待一段时间,您将再次收到错误,但第二次点击将发送电子邮件没有问题.如果您足够快,可以发送新电子邮件,那就可以了.

这是我们使用的(简化)代码:

Dim smtpClient As New SmtpClient(<smtp mail server goes here>)
smtpClient.UseDefaultCredentials = True
mailMessage.From = New MailAddress(<from address>)
smtpClient.Send(mailMessage)

但这确实适用于生产环境.我们使用的是Microsoft Exchange,我们的客户(生产环境)也是如此.

有没有人有类似的东西(第一次出错,第二次像魅力一样)?

解决方法

我之前已经看过几次,这是我见过的原因.请记住,这些只能在大型环境中看到.如果您在单个直流,单一交换服务器环境中,则这些将不适用.

首先,这里是MS文章:http://support.microsoft.com/kb/895853.在可能的情况下,你可以看到有很多东西在起作用.

您的一个Exchange服务器中继权限未正确设置.

这是最可能的原因.邮件可能在第一次和第二次尝试时采用不同的路由,而这可能听起来对两条消息进行愚蠢的邮件跟踪,看看它们是否通过同一台服务器.如果你看到不同的路径检查坏的路径上的设置,可能是一个简单的允许中继用于经过身份验证的用户未检查.

AD权限是错误的

您必须具有来自电子邮件中发件人地址的帐户的“代理发送”权限.如果它有时工作,而不是其他工作,那么它可能是邮件路由的不同路径,它们之间具有不同的权限.

身份验证无法正常运行.

在脚本的第一个实例中,可能是身份验证失败,在这种情况下,由于您没有权限,邮件被拒绝.在脚本的第二次运行中,身份验证成功.不幸的是,我不太了解ASP,无法理解上面的代码或建议如何解决它. smtpClient.UseDefaultCredentials可能不是您环境的正确代码.这仅在服务器请求时进行身份验证,并将使用本地登录用户的凭据.如果服务器第一次没有要求身份验证,那么您将不会被授权,也可能没有发送权限.尝试将其更改为始终进行身份验证的代码.

您的某个DC或全局目录已过期或信息不完整.

这种情况很少见,但您的域控制器可能存在不同步信息.通过ldap或adsi编辑仔细检查来自和来自帐户的服务器信息,并确保它们在所有dcs中是相同的.

在所有实例中,检查Exchange服务器上的日志,并确保启用所有字段的SMTP日志记录.使用邮件跟踪可以准确查看此邮件所针对的服务器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读