Проблема почтового сервера ZIMBRA размещенным за NATом в том, что при получении почты, она будет пытаться доставить ее в службу, принимающую почту на порту 7025 по внешнему ip адресу, несмотря на то, что в файле hosts явно указан локальный ip адрес для нашего домена. Подозреваю, что проверка идет по MX записи, из-за этого и ошибка. Решать ее можно разными способами:
- Если у вас есть локальный DNS сервер, настройте там отдельную зону для внутренних клиентов. В этой зоне MX и A записи для домена должны указывать на локальный ip адрес зимбры. Почтовый сервер должен использовать этот dns сервер с локальной зоной. Это самый правильный вариант.
- На пограничном шлюзе, который принимает внешние запросы, настройте форвард пакетов, пришедших на порт 7025 из локальной сети обратно на почтовый сервер. Этот вариант сложнее, так как настройка не очевидна и не везде ее можно сделать.
- Идем в консоль и выполняем команды под учетной записью zimbra:
$ su zimbra
$ zmprov ms `zmhostname` zimbraMtaLmtpHostLookup native
$ zmprov mcf zimbraMtaLmtpHostLookup native
$ zmmtactl restart
После этого письма нормально стали падать в ящик, так как подключения пошли на локальный адрес и порт 7025.
Почтовые очереди разгрузились