почтовые ящики на двух серверах
Здравствуйте все!
Имеется два почтовых сервера
1. Qmail у провайдера (mail.firma.ru)
1. Qmail у провайдера (mail.firma.ru)
2. Zimbra ZCS Open Source Edition внутри организации (mail1.firma.ru)
Вся существующая почта находится на сервере у провайдера (почта только для части сотрудников).
Локальный сервер находится за Cisco FireWall
На Cisco прописан проброс портов на локальный сервер.Локальный сервер находится за Cisco FireWall
Имя сервера mail1.firma.ru
Задача в том, обеспечить всех сотрудников почтовыми ящиками, которые будут расположены на сервере zimbra в домене firma.ru
Во время тестового режима хочется, чтобы существующие ящики оставались на старом сервере.
По моей просьбе провайдер создал дополнительную MX запись на своем DNS-сервере
Получилось так:
firma.ru. A NN.NNN.NN.NN
firma.ru. MX 30 mail.firma.ru.
mail A NN.NNN.NN.NN
NN.NN.NNN.NN.in-addr.arpa PTR mail.firma.ru.
mail1.firma.ru A MM.MMM.MMM.MMM
firma.ru. MX 40 mail1.firma.ru.
MMM.MMM.MMM.MM.in-addr.arpa PTR mail1.firma.ru.
где NN.NNN.NN.NN - IP адрес провайдера
MMM.MMM.MMM.MM - внешний IP адрес нашей Cisco
Идея была в том, что письмо на адрес, несуществующий на сервере провайдера будет отбрасываться его сервером и при выборе следующего приоритета MX будет доставляться на локальный сервер.
Но увы :(
Приходя на сервер провайдера QMail, письмо либо отбрасывается отправителю либо просто умирает на этом сервере, в зависимости от настроек QMail
Провайдер объясняет это так:
> Передача почты на следующий по приоритету MX почтовый сервер происходит в случае не возможности соединения с первым почтовым сервером (например в случае если сервер не отвечает по 25 порту, либо если сервер отвечает кодами ошибок "повторить позже" или кодом не доступности ).
> В данном случае почтовый сервер, на ошибку отсутствия пользователя, отвечает кодом "отбросить с ошибкой", так как это особенность любого почтового сервера, которые соответствует RFC. Если требуется чтобы на ошибку отсутствия пользователя сервер отвечал другим кодом, то тут потребуется переписывать исходных код почтового сервера что в нашем случае не возможно.Идея была в том, что письмо на адрес, несуществующий на сервере провайдера будет отбрасываться его сервером и при выборе следующего приоритета MX будет доставляться на локальный сервер.
Но увы :(
Приходя на сервер провайдера QMail, письмо либо отбрасывается отправителю либо просто умирает на этом сервере, в зависимости от настроек QMail
Провайдер объясняет это так:
> Передача почты на следующий по приоритету MX почтовый сервер происходит в случае не возможности соединения с первым почтовым сервером (например в случае если сервер не отвечает по 25 порту, либо если сервер отвечает кодами ошибок "повторить позже" или кодом не доступности ).
>
Теперь собственно мой вопрос.
Можно ли настроить Zimbra таким образом, чтобы она отвечала кодами ошибок "повторить позже" либо кодом недоступности в случае, если адреса получателя не существует на Zimbra? Тогда можно попробовать поменять приоритеты у MX записей и все будет OK.
Или может быть существует другой путь?
Или все мои хотелки нереальны?
Комментарии
14/01/2014 - 17:19
2. Хотелки реальны, но не соответствуют RFC. Другими словами письма на некоторые сервера доходить не будут.
Предлагаю к зимбре, в ее ящики подключить ящики от Qmail. А Зимбра будет главной. И не пугайте Cisco Firewall"ом - есть решения пострашнее фаервола :)
15/01/2014 - 08:31
2. Т.е. предлагается забирать почту с внешнего сервера? Это не совсем то, что надо. В этом случае сервер Qmail все равно должен получать почту и при этом он будет блокировать почту на Зимбру из-за высшего приоритета своей MX записи. Либо наоборот, если поменять приоритеты MX, Зимбра будет блокировать почту на Qmail и тогда нечего будет забирать из Qmail.
05/02/2014 - 10:17
13/04/2015 - 09:24
не могу никак раздуплить (
17/04/2015 - 12:20
8.9 Как мне перенаправлять почту для неопознанных пользователей на другой хост?
Мне бы хотелось установить LUSER_RELAY, указывающий на bigbang.af.mil.
Ответ:
Поместите
в ~alias/.qmail-default.
А дальше уже зимбра будет ее разбирать. MX оставляете с большим приоритетом.
Единственный минус - борьба со спамом.
19/05/2015 - 12:39
Можно попробовать отвечать ошибкой 450 - так обычно отвечает в том числе и грейлистинг, при этом письма частенько уходят в другой mx.
В принципе отвечать можно любым кодом ошибки, каким вам захочется, сами гуглите при каком коде сервера -отправители будут пытаться отправить письма на другой mx (скорее всего каждый сервер будет вести себя по своему).
Делается примерно так (ZImbra 8.6):
открываем
/opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf
добавляем в него строку
check_recipient_access lmdb:/opt/zimbra/conf/recipient_access
перед строкой reject_unlisted_recipient, т.е. до проверки существования пользователя в зимбре. (если пользователи в зимбре существуют, можно и сразу после этой строки, так будет более правильно, но пользователи обязательно! должны быть созданы в Zimbra, просто пометьте для себя, что до них почта не будет доходить)
создаем файлик
/opt/zimbra/conf/recipient_access
там пишем
user1@domain.com REJECT 450 Try again Later
user2@domain.com REJECT 450 Try again Later
и т.д.
Код ошибки "450 Try again Later" можете менять как вам хочеться. По идее в случае ошибки 45х сервер-отправитель должен пытаться отправить письмо на другой mx или позже.
А вообще я бы на вашем месте не заморачивался, ничего хорошего не получится, только время потратите на искуственно созданные проблемы. Если не хватает опыта в работе с зимброй, настройте тестовый сервер и "поиграйтесь", а потом смело переходите на новый.