我不是系统管理员,所以请让我澄清任何不正确的解释。我们有 3 台机器,都在同一个域中:
1) 交换服务器 2) SMTP 服务器 3) Web 服务器
使用 Java,我从 Web 服务器向 SMTP 服务器发送电子邮件。SMTP 服务器应该将电子邮件转发到 Exchange 服务器。但是,电子邮件从未发送,并且在 SMTP 服务器上显示以下错误消息:
向主机 [Exchange 服务器 IP 地址] 发送邮件时失败,而向远程域 [两台计算机所在的域] 发送邮件时失败:发生 SMTP 协议错误。给出的原因是“MAIL”...远程服务器回复“530 5.7.1 客户端未授权”
似乎 Exchange 服务器不允许 SMTP 服务器连接。此外,系统管理员向我指出了 Java 代码和配置,但在我看来,问题出在 SMTP-Exchange 服务器之间,而不是 Web 服务器-SMTP 服务器之间。有没有关于在哪里调试的提示?顺便说一句,Exchange 应该允许从 SMTP 服务器进行“匿名”访问,但似乎并非如此,因为错误是客户端未授权。我缺少哪些 Exchange 知识才能使它正常工作?
其他信息:邮件发送之前一直正常,据我所知,没有对 Exchange 设置或 smtp 设置进行任何更改。不过,可能对 Java 代码配置进行了更改。
答案1
我发现导致这种情况发生的几个原因
- 您正在使用某个帐户进行身份验证,但使用该帐户无权发送的返回地址
- 您正在匿名发送,而服务器不接受匿名邮件
如果它应该像您说的那样接受匿名邮件,那么请从 Java 邮件程序中删除身份验证参数。