ZImbra нетривіальна маршрутизація пошти - частина 1
Так, я розумію, що це потрібно б розшифрувати ), плюс обов'язково атрибуту zimbraMailStatus має бути присвоєно значення enabled. Права ж частина (тобто власне, опис транспорту) повинна перебувати в атрибуті zimbraMailTransport того ж запису. Іншими словами, якщо в звичайному файлі transport_maps для Postfix ми записали б рядок: То в LDAP-каталозі для досягнення аналогічного ефекту нам потрібно, щоб у будь-якого об'єкта були атрибути: zimbraMailDeliveryAddress=lists.domain.com і zimbraMailTransport=smtp:[host.domain.com]:25 Сказано – зроблено. Після недовгого вивчення схеми LDAP-каталогу з'ясувалося, що атрибути zimbraMailDeliveryAddress та zimbraMailStatus є в одному з базових (які є батьківським для багатьох інших класів Zimbra) objectClass з ім'ям zimbraMailRecipient. Цей клас оголошений як AUXILIARY, тому його можна вільно додавати до будь-якого вже існуючого запису. У моєму випадку DNS внутрішньої зони також зберігається в LDAP, тому запис того самого цільового домену lists.domain.com, зрозуміло, вже був. Знаючи ж, що таке по суті transport_maps і як це працює, мені зовсім не важко було модифікувати запис каталогу належним чином:
Тут, як ви вже, мабуть, здогадалися, smtp:[host.domain.com]:25 - це опис транспорту для відправки до домену lists.domain.com, а host.domain.com - це цільове ім'я сервера. У результаті запис для даного домену став виглядати так:
Ну і колискоро є MX-запис, можна транспорт вказати ще наступним чином: smtp:lists.domain.com:25 - тоді Zimbra сама визначить по MX'у, куди їй надсилати пошту.
У наступній частині я розповім вам, як не змінюючи конфігурацію Zimbra створювати поштові аліаси, що вказують на «чужі» для Zimbra домени (так-так, ldapmodify і в цьому випадку просто замінимо :) ).