Exchange 连接器不会发送到外部域

sis*_*dog 6 exchange smtp

我是一名开发人员,试图让我的 .Net 应用程序通过我们的 Exchange 服务器发送电子邮件。我不是 Exchange 专家,所以我会预先确定!!

我们在 Exchange 中设置了一个接收连接器,它具有以下属性:

  1. 网络:允许所有 IP 地址通过端口 25。

  2. 身份验证:选中传输层安全和外部安全复选框。

  3. 权限组:匿名用户和 Exchange 服务器复选框被选中。

但是,当我在我们的 Exchange 服务器上运行这个 Powershell 语句时,它可以在我发送到本地域地址时工作,但是当我尝试发送到远程域时却失败了。

作品:

C:\Windows\system32>Send-Mailmessage -To MYLOCALADDRESS@OURDOMAIN.com -From MYLOCALADDRESS@OURDOMAIN.com -Subject testing -Body testing -SmtpServer OURSERVER
Run Code Online (Sandbox Code Playgroud)

(顺便说一句:我的 OURSERVER=boxname.domainname.local 值。这与我启动 Exchange 命令行管理程序时显示的完全限定名称相同)。

失败:

C:\Windows\system32>Send-Mailmessage -To MYPERSONALADDRESS@gmail.com -From MYLOCALADDRESS@OURDOMAIN.com -Subject testing -Body testing -SmtpServer OURSERVER
Run Code Online (Sandbox Code Playgroud)

Send-MailMessage : 邮箱不可用。服务器响应是: 5.7.1 无法中继 At line:1 char:17 + Send-Mailmessage <<<< -To MYPERSONALADDRESS@gmail.com -From MYLOCALADDRESS@OURDOMAIN.com -Subject testing -Body himom -SmtpServer FTI- EX + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpFailed RecipientException +fullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

编辑: 根据@TheCleaner 的建议,我将 Add-ADPermission 运行到中继,但没有帮助;

[PS] C:\Windows\system32>Get-ReceiveConnector "Allowed Relay" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

Identity             User                 Deny  Inherited  
--------             ----                 ----  ---------  
FTI-EX\Allowed Relay NT AUTHORITY\ANON... False False  
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助。标记

The*_*ner 0

我假设只有一个 Exchange 服务器,没有网关/垃圾邮件过滤器等。

在您的接收连接器上(将其称为“中继”):

  1. 确保“从具有这些 IP 地址的远程服务器接收邮件”具有您要运行此应用程序的服务器的 IP 地址。

  2. 在“身份验证”选项卡上,唯一应该检查的是“外部安全”

  3. 在权限组中唯一应该检查的是“Exchange Servers”

注意:如果您像原始帖子中那样使用“匿名”,那么您需要在 Exchange shell 中运行此命令才能使该类型的中继连接器正常工作:

Get-ReceiveConnector "NAMEOFCONNECTOR" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
Run Code Online (Sandbox Code Playgroud)

然后,从 IP 位于上面 #1 中的服务器之一再次尝试该应用程序。不要直接在 Exchange 服务器本身上尝试。