最近一个项目中,有一个自己的开源的系统,在配置了SMTP服务器之后,一直发送不了邮件,我最开始尝试修改接收连接器的接收IP,但是其实之前是包含在一个内部子网段里的,单独添加后仍然无效。

开源系统返回的日志:

     [mail] Sending email: VirtualClinic - SCM - The VirtualClinic -- vir-auth-service Deployment from develop on int-192.168.3.85  Started!

     [mail] Failed to send email: Could not connect to SMTP host: mail.xxx.com, port: 25

其实这个日志看不出来什么具体的内容,无非就是无法连接到我们的SMTP主机。 我也尝试用Telnet了一下我们 mail.xxx.com 25端口,也是没问题的。

为了找寻更详细的信息,只有登录到Exchange服务器上去查看系统报错日志了。

果然,在Exchange中找寻到了下述一个 Event ID 1018的警告信息,提示该账号无法获取SMTP 接收连接器的“提交权限”。

为接收连接器添加访问权限_接收

通过您提供的这个Event Log信息,我们怀疑该问题可能与xxx\CLN_Notification这个账号对于该receive connector的权限有关。

所以我们通过下述命令进行添加

get-receiveconnector "receiveconnectorname" | add-adpermission -User <the user's identity> -ExtendedRights ms-Exch-SMTP-Submit

之后,问题解决。