Incoming Mail Problems

Revision as of 13:02, 8 April 2009 by Phoenix (talk | contribs)

Troubleshooting incoming mail

If you're having trouble receiving mail from outside, you need to find out where the message is failing.

When sending your test message, check the Log Files, especially /var/log/zimbra.log, on your MTA server.

It's often helpful to tail the logfile as you send the message:

 tail -f /var/log/zimbra.log

If you see nothing logged (no connection, nothing) then the problem likely either DNS or your firewall.


To troubleshoot your firewall, it helps to have an account on a system outside of your network.

For mail to flow inbound, servers on the internet need to connect to your MTA on port 25.

DNS issues

The mail domain that your user accounts are created under must have an MX record. To test this:

 host -t mx domain

The IP address returned should be the IP (public or private) of your MTA. If it's the public address, make sure that the Firewall is forwarding port 25 to the MTA.

Mail is delivered to the MTA, but not to the mailbox

If there is a line in the /var/log/zimbra.log like:

 postfix/lmtp ... deferred ... connection refused

There is no connection to port 7025 to perform Local Mail Transfer Protocol (LMTP) delivery.

The host that the LMTP delivery is made to will be the value of the account's zimbraMailHost attribute.

To test this, telnet from the MTA to the zimbraMailHost on port 7025 by name (not by IP). If this is resolving to an IP address on your firewall, make sure the port is forwarded on to the zimbraMailHost.

It is possible that the DNS address that is being resolved by the Postfix MTA does not match the internal IP address of the server. This can happen when you have an external DNS that is resolving to the firewall, but no internal DNS to handle address resolution within your internal network. It can also happen when there is no DNS entry at all for your ZCS server. There are four main ways to get around this problem.

Create IP alias

If your network configuration permits it (and in most cases it doesn't cause any problem) create an IP alias for your network card with the IP address of the MX record. This is the simplest solution. The network mask should be if you using IPV4, because this will be a host route. The method of adding IP aliases depends on your distribution so contact the manual of your Linux about how to do it.

Split DNS

In order to handle address resolution for both internal and external hosts, you'll need to configure a split DNS configuration. A split DNS is a configuration where queries from inside the firewall are directed to a DNS server located inside the firewall, which is authoritative for those internal addresses. This DNS server will return the "inside" addresses of other servers on the local network, and will forward any requests for "outside" addresses to the main DNS server. You can configure this by setting up the A and MX records for the internal zone within a DNS server running on the ZCS server. This will cause the local hostnames to resolve to the correct internal addresses. To enable forwarding, include a line similar to this in your named.conf (BIND 9):

 forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] };

Where ip_addr refers to the main DNS server for your organization.

MTA Relay

An alternative to setting up a DNS server is to un-check "Enable DNS Lookups" on the MTA tab under Server configuration on the Zimbra Admin console. This requires a relay MTA to be configured somewhere that will accept all outbound email.


A third option is to change the zimbraMailTransport attribute for your mail users. Normally, it will be similar to this:


If you change it to be similar to this:

 zimbraMailTransport: lmtp:[]:7025

the system will attempt to resolve the hostname using the hosts table instead of DNS. You could also change the hostname to an IP address in this situation. Generally, messing with the zimbraMailTransport settings is not recommended because of the operational headache involved in changing the setting for every new user created on your system and making sure they all stay current and correct. You're better off running a small local DNS.

Verified Against: unknown Date Created: 3/5/2006
Article ID: Date Modified: 2009-04-08

Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search