症状:

l  客户端:ASP.NET编程调用SMTPClient。可以发送内部邮件,无法发送外部邮件。发送外部邮件时报错:邮箱不可用,服务器响应5.7.1

l  服务器端:EXCHANGE2007,产生事件ID1035。对接收连接器“%接收连接器名”的入站身份验证失败,出现错误LogonDenied。身份验证机制为Login

 

原因:

       当通过外部程序访问Exchange的接收连接器时,默认是使用匿名用户的权限组权限。默认接收连接器的匿名用户权限如下:

  • Ms-Exch-SMTP-Submit
  • Ms-Exch-SMTP-Accept-Any-Sender
  • Ms-Exch-SMTP-Accept-Authoritative-Domain-Sender
  • Ms-Exch-Accept-Headers-Routing

需要添加权限Ms-Exch-SMTP-Accept-Any-Recipient。才可以完成匿名中继,即发送邮件至外部邮箱。

 

解决方法:

       此示例将检索指定接收连接器的信息,并通过管道将结果传递给 Add-ADPermission cmdlet,从而向新接收连接器上的匿名连接授予中继权限。

Get-ReceiveConnector "接收连接器名" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

 

 

注意:

       “匿名中继”是严重的安全缺陷,可能会使邮件服务器转发垃圾邮件。请在接收连接器的“网络”选项卡中,配置远程服务器的IP地址,以减小能够使用此匿名中继的IP地址范围。