在Exchange Server中重新创建默认接收连接器

Exchange Server 2013/2016/2019有5个默认的Exchange Server接收连接器。安装Exchange Server时,这些接收连接器将自动创建。有时,您必须重新创建默认接收连接器,因为您调整了某些内容,并且邮件流不再起作用。在本文中,您将学习如何重新创建Exchange Server中的默认接收连接器。

Exchange服务器使用接收连接器来控制以下的入站SMTP连接:

  1. 交换组织外部的消息传递服务器。
  2. 在本地交换服务器或远程交换服务器上的运输管道中的服务。
  3. 电子邮件客户需要使用经过身份验证的SMTP发送消息的客户。

阅读有关Exchange Server接收连接器的更多信息:

  • Exchange Server接收连接器记录
  • 在Exchange Server中配置匿名SMTP继电器
  • 复制接收连接器到另一台Exchange服务器
  • 导入远程IP地址以交换接收连接器
  • 从Exchange接收连接器中导出远程IP地址

让我们看一下Exchange Server中的接收连接器。登录以交换管理中心并导航到邮件流>接收连接器

Exchange Server上的5个默认交换服务器接收连接器是:

  1. 客户前端
  2. 客户代理
  3. 默认
  4. 默认前端
  5. 出站代理前端

重新创建默认接收连接器

要重新创建在Exchange管理中心中的默认接收连接器,请浏览以下屏幕,并确保为每个接收连接器配置相同的配置。

客户前端接收连接器

要重新创建客户端前端接收连接器,请浏览以下配置:

一般的

安全

范围

客户代理接收连接器

要重新创建客户端代理接收连接器,请浏览以下配置:

一般的

安全

范围

默认接收连接器

要重新创建默认接收连接器,请浏览以下配置:

一般的

安全

范围

默认前端接收连接器

要重新创建默认前端接收连接器,请仔细阅读以下配置:

一般的

安全

范围

出站代理前端接收连接器

要重新创建出站代理前端接收连接器,请浏览以下配置:

一般的

安全

范围

在下一步中,我们将展示如何使用PowerShell脚本重新创建默认接收连接器。

重新创建默认接收连接器PowerShell脚本

要使用PowerShell脚本重新创建Exchange Server中的默认接收连接器,请按照以下步骤进行操作。

步骤1。下载set-receiveconnectors powerShell脚本

在Exchange Server上下载并放置Set-receiveConnectors.ps1 PowerShell脚本C:脚本文件夹。如果您没有脚本文件夹,请创建一个。

确保文件未阻止以防止运行脚本时的错误。在运行PowerShell脚本时,请在文章中阅读更多信息。

另一个选择是将下面的代码复制并粘贴到记事本中。给它名字set-receiveconnectors.ps1并将其放在C:脚本文件夹。

<#
    .SYNOPSIS
    Set-ReceiveConnectors.ps1

    .DESCRIPTION
    Recreate the default Receive Connectors on the Exchange Server.

    .LINK
    www.alitajran.com/recreate-default-receive-connectors-exchange-server

    .NOTES
    Written by: ALI TAJRAN
    Website:    www.alitajran.com
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 09/25/2023 - Initial version
    V1.10, 10/15/2024 - Added parameter for server name
#>

param (
    [Parameter(Mandatory = $true)]
    [string]$ServerName
)

# Define IP Range
$range = "0.0.0.0-255.255.255.255", "::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"

# Check if the server with the specified name exists
$targetServer = Get-ExchangeServer -Identity $ServerName -ErrorAction SilentlyContinue

if ($targetServer) {
    # Define connector parameters for splatting
    $clientProxyParams = @{
        Name              = "Client Proxy $ServerName"
        Bindings          = "0.0.0.0:465", "[::]:465"
        AuthMechanism     = "Tls", "Integrated", "BasicAuth", "BasicAuthRequireTLS", "ExchangeServer"
        RemoteIPRanges    = $range
        TransportRole     = "HubTransport"
        PermissionGroups  = "ExchangeUsers", "ExchangeServers"
        MaxMessageSize    = "35MB"
        MessageRateLimit  = 5
        MessageRateSource = "User"
        EnableAuthGSSAPI  = $true
        Server            = $ServerName
    }

    $defaultFrontendParams = @{
        Name                 = "Default Frontend $ServerName"
        Bindings             = "0.0.0.0:25", "[::]:25"
        AuthMechanism        = "Tls", "Integrated", "BasicAuth", "BasicAuthRequireTLS", "ExchangeServer"
        RemoteIPRanges       = $range
        TransportRole        = "FrontendTransport"
        PermissionGroups     = "AnonymousUsers", "ExchangeServers", "ExchangeLegacyServers"
        MaxMessageSize       = "36MB"
        DomainSecureEnabled  = $true
        ProtocolLoggingLevel = "Verbose"
        Server               = $ServerName
    }

    $outboundProxyFrontendParams = @{
        Name                 = "Outbound Proxy Frontend $ServerName"
        Bindings             = "0.0.0.0:717", "[::]:717"
        AuthMechanism        = "Tls", "Integrated", "BasicAuth", "BasicAuthRequireTLS", "ExchangeServer"
        RemoteIPRanges       = $range
        TransportRole        = "FrontendTransport"
        PermissionGroups     = "ExchangeServers"
        MaxMessageSize       = "36MB"
        DomainSecureEnabled  = $true
        ProtocolLoggingLevel = "Verbose"
        Server               = $ServerName
    }

    $clientFrontendParams = @{
        Name              = "Client Frontend $ServerName"
        Bindings          = "0.0.0.0:587", "[::]:587"
        AuthMechanism     = "Tls", "Integrated", "BasicAuth", "BasicAuthRequireTLS"
        RemoteIPRanges    = $range
        TransportRole     = "FrontendTransport"
        PermissionGroups  = "ExchangeUsers"
        MaxMessageSize    = "35MB"
        MessageRateLimit  = 5
        MessageRateSource = "User"
        EnableAuthGSSAPI  = $true
        Server            = $ServerName
    }

    $defaultParams = @{
        Name                                    = "Default $ServerName"
        Bindings                                = "[::]:2525", "0.0.0.0:2525"
        AuthMechanism                           = "Tls", "Integrated", "BasicAuth", "BasicAuthRequireTLS", "ExchangeServer"
        RemoteIPRanges                          = $range
        TransportRole                           = "HubTransport"
        PermissionGroups                        = "ExchangeUsers", "ExchangeServers", "ExchangeLegacyServers"
        MaxMessageSize                          = "35MB"
        MaxInboundConnectionPerSource           = "Unlimited"
        MaxInboundConnectionPercentagePerSource = 100
        MaxRecipientsPerMessage                 = 5000
        SizeEnabled                             = "EnabledWithoutValue"
        Server                                  = $ServerName
    }

    # Check and create connectors if they don't exist
    $connectors = @{
        "Client Proxy"            = $clientProxyParams
        "Default Frontend"        = $defaultFrontendParams
        "Outbound Proxy Frontend" = $outboundProxyFrontendParams
        "Client Frontend"         = $clientFrontendParams
        "Default"                 = $defaultParams
    }

    foreach ($connectorName in $connectors.Keys) {
        $connectorParams = $connectors[$connectorName]
        if (!(Get-ReceiveConnector | Where-Object { $_.Name -eq $connectorParams.Name -and $_.Server -eq $ServerName })) {
            $null = New-ReceiveConnector @connectorParams
            Write-Host "$connectorName Connector created successfully." -ForegroundColor Green
        }
        else {
            Write-Host "$connectorName Connector already exists." -ForegroundColor Yellow
        }
    }
}
else {
    Write-Host "Server '$ServerName' not found. Please provide a valid Exchange Server name." -ForegroundColor Red
}

步骤2。删除默认接收连接器

删除要重新创建的默认接收连接器很重要。假设您只想重新创建其中一个,然后仅删除特定的默认接收连接器。

在我们的示例中,我们将删除所有默认接收连接器,因为我们喜欢重新创建它们。

步骤3。运行设置 - 二级联启动板脚本

启动Exchange Management Shell作为管理员并运行Set-ReceiveConnectors.ps1 PowerShell脚本以重新创建默认接收连接器。

C:scripts.Set-ReceiveConnectors.ps1 -ServerName "EX01-2019"

该脚本将显示:

  1. 如果默认接收连接器已经存在,它将转移到下一个默认的接收连接器。
  2. 如果默认接收连接器不存在,它将创建一个具有正确设置的新默认接收连接器。
  3. 如果设置了错误的Exchange服务器名称,则脚本将显示您需要输入有效的Exchange Server名称。
Client Proxy Connector created successfully.
Default Frontend Connector created successfully.
Outbound Proxy Frontend Connector created successfully.
Client Frontend Connector created successfully.
Default Connector created successfully.

步骤4。验证默认接收连接器

确认在Exchange Server中成功创建了默认接收连接器。

建议阅读:从Exchange接收连接器中删除远程IP地址

就是这样!

结论

您了解了如何在Exchange Server中重新创建默认接收连接器。如果您有入站邮件流量问题或更改默认的Exchange Server接收连接器,并希望将其设置回原始配置,请重新创建它们。在Exchange管理中心或使用PowerShell脚本中重新创建接收连接器。

您喜欢这篇文章吗?您可能还喜欢使用Exchange SMTP继电器找到IP地址。不要忘记关注我们并分享这篇文章。