Exchange 2016: 451 4.7.0 Temporary server error. Please try again later.

There is a reason why I have been stuck with Exchange 2010 for a while. Ever since Exchange 2013 was releases, the same error has always been around for me, no matter where I installed it.

Now I thought it was time to give the latest Exchange 2016 a try. I thought that Microsoft must have had time to patch the annoying error, but I could be no more wrong. How is it even possible that the same problem persist?!

Okey, so the error I’m talking about is this annoying SMTP error preventing you from actually receive any mail. The sending SMTP server is receiving a “451 4.7.0 Temporary server error. Please try again later.”. In the Event Viewer on the Exchange server, one can read something like “No DNS servers could be retrieved from network adapter…”.

The problem is that the Exchange server is unable to do any DNS queries because it doesn’t know any DNS servers. Even though it’s supposed to find your DNS servers by itself… I have googled around a bit and after a few trial and error I found what I think is the solution.

1. Log on to your ECP (https://mail.domain.com/ecp) with a Domain Admin credential and go to Servers, mark your server and edit it.

2. Go to DNS lookups and change both External DNS lookups and Internal DNS lookups to Custom settings. Now, enter your DNS servers in both fields and hit Save.

Now this is the funny part – the ECP only changes the Backend(?) Transport Service, not the Frontend Transport Service. To do this, we need PowerShell.

3. Logon to your Exchange server via RDP and fire up the Exchange Management Shell (pick “Run as Administrator” just in case).

First of all, we need to find out your network adapter’s GUID. I’m not sure if this step is actually needed, but let’s play safe here.

4. Run the following command: Get-NetworkConnectionInfo

You will get an output similar to this:

RunspaceId : xxxx
Name : Intel(R) 82574L Gigabit Network Connection
DnsServers : {10.1.1.7}
IPAddresses : {10.1.1.9, aaaa::bbbb:cccc:dddd:eeee}
AdapterGuid : xxxx
MacAddress : 00:00:00:00:00:00
Identity : xxxx
IsValid : True
ObjectState : Unchanged

5. Copy the AdapterGuid and type in the following commands (replace SERVER with your Exchange server and xxxx with your adapter’s GUID):

Set-FrontendTransportService -Identity SERVER -InternalDNSAdapterGuid xxxx

Set-FrontendTransportService -Identity SERVER -ExternalDNSAdapterGuid xxxx

7. Verify that your adapter’s GUID and DNS servers is set correctly by typing in the following command:

Get-FrontEndTransportService | Format-List *DNS*

You will get an output similar to this:

ExternalDNSAdapterEnabled : True
ExternalDNSAdapterGuid : xxxx
ExternalDNSProtocolOption : Any
ExternalDNSServers : {10.1.1.7}
InternalDNSAdapterEnabled : True
InternalDNSAdapterGuid : xxxx
InternalDNSProtocolOption : Any
InternalDNSServers : {10.1.1.7}
DnsLogMaxAge : 7.00:00:00
DnsLogMaxDirectorySize : 100 MB (104,857,600 bytes)
DnsLogMaxFileSize : 10 MB (10,485,760 bytes)
DnsLogPath :
DnsLogEnabled : False

8. Reboot the server.

EDIT: Make sure you do not turn off IPv6! I’m not hundred percent sure it’s needed, but I have been seeing mysterious errors when IPv6 is turned of on an Exchange 2013/2016 server. Better safe than sorry – leave it on!

4 thoughts on “Exchange 2016: 451 4.7.0 Temporary server error. Please try again later.”

  1. How do you reverse the command “Set-FrontendTransportService -Identity SERVER -InternalDNSAdapterGuid xxxx” and “Set-FrontendTransportService -Identity SERVER -ExternalDNSAdapterGuid xxxx”?

    I did the commands above and having issues and would like to revert those settings to default.

  2. which adapter do I apply this to? The NIC or the Fallover cluster virtual adapter?

    RunspaceId : 883b4b04-41c4-42a3-af58-1b71f7a911e9
    Name : Intel(R) 82574L Gigabit Network Connection
    DnsServers : {10.##.##.80, 10.##.##.85}
    IPAddresses : {10.##.##.122}
    AdapterGuid : 61460973-111d-4228-829f-79173abb35bd
    MacAddress : 00:50:56:80:3B:EA
    Identity : 61460973-111d-4228-829f-79173abb35bd
    IsValid : True
    ObjectState : Unchanged

    RunspaceId : 883b4b04-41c4-42a3-af58-1b71f7a911e9
    Name : Microsoft Failover Cluster Virtual Adapter
    DnsServers : {}
    IPAddresses : {169.254.2.104, fe80::9c57:91fd:ae8a:e8bd}
    AdapterGuid : bc561763-c020-4f27-82ff-ffb87a40bafc
    MacAddress : 02:10:8B:3E:5D:55
    Identity : bc561763-c020-4f27-82ff-ffb87a40bafc
    IsValid : True
    ObjectState : Unchanged

    1. I would say the actual NIC of the server where you have the DNS servers configured (i.e., NOT for the failover NIC). Looking at the output of the Get command, it seems like Exchange is fetching the DNS servers from the NIC specified.

      You shouldn’t have any DNS servers specified on the failover NIC.

Leave a Reply

Your email address will not be published. Required fields are marked *