У меня есть настройка почтового сервера для использования postfix и cyrus imapd + ldap для поиска почты.
Теперь я хотел бы указать это для конкретного адреса (например, someuser@domain.com) вместо того, чтобы доставлять почту в почтовый ящик, она передается скрипту (точнее, скрипту ruby). Мне нужна эта функция, так как я хотел бы, чтобы письма передавались на конкретный адрес и попадали на наш сервер redmine. Как это сделать?
В настоящее время я в main.cf:
...
mydestination = $mydomain, mail.$mydomain
local_recipient_maps = ldap:/etc/postfix/ldapvirtual.cf
local_transport = lmtp:unix:/var/lib/imap/socket/lmtp
...
/etc/postfix/ldapvirtual.cf - файл конфигурации LDAP для поиска почтовых адресов.
Что мне нужно настроить на postfix?
В master.cf
вы создаете новую конфигурацию "ruby" для сценария ruby для приема почты. Это делается через pipe
как описано в http://www.postfix.org/pipe.8.html Вы, наверное, уже можете видеть некоторые примеры (с pipe
в последнем столбце) в вашем текущем master.cf
. Но как его настроить, зависит от скрипта ruby и соответствующей системной среды.
Тогда вам понадобится файл (например) /etc/postfix/transport_maps
с содержанием
someuser@example.com ruby:
other@example.net ruby:
Это будет передавать почту для этих людей на рубиновый транспорт, который вы настроили в master.cf
пока вы назвали его «рубином». Тогда беги postmap /etc/postfix/transport_maps
.
После этого вам понадобится новая строка в main.cf
с участием
transport_maps = hash:/etc/postfix/transport_maps
Перезагрузите демон Postfix. С этого момента настроенные адреса проходят через ruby, а остальные - через транспорт, настроенный с помощью local_transport
.