Basically, SMTP error "no route to host" happens while sending emails.
This error is related to a blocked port at the hosting end or ISP.
In this context, we shall look into how to fix this SMTP error.
While trying to send mail, it results in the error:
SMTP ERROR: Failed to connect to server: No route to host (65)
Now, let's see the different causes of this error.
1. Firstly, port 25 blocked in the server firewall which can be caused by a iptables reject with one of the type icmp-net-unreachable or icmp-host-unreachable:
-j REJECT –reject-with icmp-host-unreachable
The following reject types are currently valid:
The default error message is to send a port-unreachable to the host.
To see iptables rules, run the following command.
$ sudo iptables -S
2. Secondly, port blocked at the hosting side or ISP
This can be tested using the command given below:
$ telnet server_name port_number
$ telnet mail.ibmimedia.com 25
3. Host is offline/service is not running
We can check whether the host is online using ping command.
$ ping server_ip
The service itself might not have been started.
We can check to see if the service has been started and is running properly using the following command:
$ sudo systemctl status SERVICENAME
4. Using an incorrect port.
5. DNS Is Improperly Configured.
We should try to ping the IP address that we are looking to connect to.
It could be that the computer is not connecting to a DNS server properly:
ping -c3 your.server.ip
If the ping works but connecting a domain name doesn't, we are looking at a DNS issue.
6. Finally, incorrect Network or Host Configuration
i. Firstly, open the port in the server firewall.
ii. Next, contact hosting support or ISP and ask them to remove the block.
iii. Then, use a different port like 587.
iv. DNS is improperly configured.
Systemd users can run systemd-resolve –status to check the DNS servers that our system is using.
In most cases, our computer will discover the relevant DNS information over DHCP. If we are using a static IP or something on our network is configured differently, we may have to set our DNS manually.
In that file, uncomment the DNS line and add either the IP of our router or another known DNS server.
v. Incorrect Network or Host Configuration
First, make sure that our computer's network configuration is correct.
Double-check the configuration files themselves and see if we can connect to the Internet another way.
If we are using a specific hostname to connect or we have set up specific hosts on either the server or the client, we need to make sure both machines can connect to each other.
Check the configurations of “/etc/hosts,” “/etc/hosts.allow” and “/etc/hosts.deny”.