Народ, помогите разобраться что есть что в почте. Зашел на сайт постфикса, а там - standalone-конфигурация...null-client-конфигурация... и т.д. При чем, что это самое значит описывается одним-двумя предложениями. Не понятно. Подскажите куда смотреть для построения такого: слать почту -постфиксом, забирать - чем-то pop... (что с ним дружит лучше). Реальных юзеров не заводить (хранить в базе или файле). Спам и вирусов оставить в покое. Потом разбираться буду.
Зараннее спасибо. Sorry за тупой вопрос.
Почитайте тут: http://www.postfix.org/VIRTUAL_README.html#virtual_mailbox
Сколько у вас будет почтовых доменов и пользователей?
У меня вопрос наподобие. Вся сеть завалена мануалами о настройке postfix под виртуальных юзверей и виртуальные домены, а того же, но вез виртуальных доменов нету. Домен у меня один и хотелось бы получать на него почту и для юзеров системы и виртуальных. Помогите советом.2fa: Рекомендую тебе popa3d :) есть такой маленький и надежный трудяга.
>доменов нету. Домен у меня один и хотелось бы получать на
>него почту и для юзеров системы и виртуальных. Помогите советом.
Увы, вам придется указать этот домен в virtual_mailbox_domains (не забудте выкинуть его из mydestination). Иначе для каждого виртуального юзера нужен системный акаунт.
>Увы, вам придется указать этот домен в virtual_mailbox_domains (не забудте выкинуть его
>из mydestination). Иначе для каждого виртуального юзера нужен системный акаунт.Ну а как postfix будет определять системный юзер или виртуальный? local_recipient_maps?
>Ну а как postfix будет определять системный юзер или виртуальный? local_recipient_maps?
Нет. Отвечу вопросом на вопрос :)
Какое именно отличие системных пользователей от виртуальных вам нужно?
Другими словами: что вы сделать то хотите?
>Какое именно отличие системных пользователей от виртуальных вам нужно?
>Другими словами: что вы сделать то хотите?Никакого. Хочу чтобы мыло могли получать и юзеры системы и виртуальные юзеры, находящиеся на одном домене. Почту root@domain получает рут, почту vasya@domain получает юзер вася из таблицы mysql. Вобщем хотелось бы чтобы информация о пользователях бралась и из /etc/passwd и mysql базы.
postfix так не умеет.
Можно сделать так: виртуальный домен, все пользователи виртуальные, часть пользователей через virtual_aliases мапится в системных.
>postfix так не умеет.
>Можно сделать так: виртуальный домен, все пользователи виртуальные, часть пользователей через virtual_aliases
>мапится в системных.
OK. Значит что я понял: домен, в которам нах.одят.ся виртуальные юзеры в mydestination писать нельзя; для юзеров системы нужно делать виртуальные алиасы. Теперь вопросы: на юзеров системы только алиасы должны быть или еще и виртуальные юзеры-еквиваленты? Будут ли в такой конфигурации работать не виртуальные алиасы? Спасибо. :)
>OK. Значит что я понял: домен, в которам нах.одят.ся виртуальные юзеры в
>mydestination писать нельзя; для юзеров системы нужно делать виртуальные алиасы. Теперь
Не нужно, а можно.
>вопросы: на юзеров системы только алиасы должны быть или еще и
>виртуальные юзеры-еквиваленты? Будут ли в такой конфигурации работать не виртуальные алиасы?
Для системных юзеров могут быть либо виртуальные юзеры, либо виртуальные алиасы, либо и то и другое - как вам хочется.
Не виртуальные алиасы можно заставить работать.
>Не нужно, а можно.
В документации пишут что нельзя ни в коем случае :)>Для системных юзеров могут быть либо виртуальные юзеры, либо виртуальные алиасы, либо
>и то и другое - как вам хочется.
Тоесть, если в таблице алиасов будет что-то вроде root@fomain > root почта будет приходить руту?>Не виртуальные алиасы можно заставить работать.
через local_recipient_maps?
>>Не нужно, а можно.
>В документации пишут что нельзя ни в коем случае :)
Похоже мы не понимаем друг друга...
Смотрите:
virtual_mailbox_domains=some.domain.tld
virtual_mailbox_maps=hash:virtual_maps
virtual_alias_maps = hash:virtual_alias
virtual_maps:
user1@some.domain.tld some/user1
userN@some.domain.tld some/userN
root@some.domain.tld some/root #этой строки может и не быть
virtual_alias:
root@some.domain.tld root #почта пойдет на root@$myhostnameДля root@$myhostname если $myhostname перечисен в $mydestination будут работать локальные алиасы и .forward
>Тоесть, если в таблице алиасов будет что-то вроде root@fomain > root почта будет приходить руту?
Да, см пример выше.>>Не виртуальные алиасы можно заставить работать.
>через local_recipient_maps?
Да.
>Похоже мы не понимаем друг друга...
В моем случае приоритетны виртуальные пользователи, но хотелось бы чтобы системные пользователи обслуживались тем же сервисом.
>virtual_maps:
>....
>root@some.domain.tld some/root #этой строки может и не быть
Это создание виртуального юзера-эквивалента для системного root. Мне не хотелось бы этого делать, максимум алисы.
>virtual_alias:
>root@some.domain.tld root #почта пойдет на root@$myhostname
Дело в том, что some.domain.tld = $myhostname.До сих пор не понимаю функцию local_recipient_maps. Она ведь равна "unix:passwd.byname, $alias_maps, $virtual_alias_maps" (например). По моей логике это должно означать :), что получателем на локальной машине может быть системный юзер, алиас, виртуальный юзер (алиас). Насколько я понял это не так.
Посмотрите решение от jonatan'а.
Если это не то что вам надо, то я просто не понимаю чего вы хотите добиться.>Насколько я понял это не так.
local_recipient_maps - это список таблиц, в котором postfix будет искать адрес из "RCPT TO" когда доменная часть этого адреса совпадает с $mydestination.
>Посмотрите решение от jonatan'а.
>Если это не то что вам надо, то я просто не понимаю
>чего вы хотите добиться.
Это СОВЕРШЕННО не то. Еще раз повторю, что хочу чтобы postfix обслуживал 1 домен с реальными и виртуальными пользователями. То, что предлагает jonatan - это пересылка почты, которая не имеет получателя на этой системе на другой хост.>local_recipient_maps - это список таблиц, в котором postfix будет искать адрес из
>"RCPT TO" когда доменная часть этого адреса совпадает с $mydestination.
Ok.
mydestination = $mydomain localhost $myhostname
local_recipent_maps = unix:passwd.byname $alias_maps mysql:/virtual/mapsMySQL пишет следующее:
1 Connect postfix@domain on mail
1 Query select rcpt from aliases where addr = 'test@domain'
2 Connect postfix@domain on mail
2 Query select rcpt from aliases where addr = 'domain'
3 Connect postfix@domain on mail
3 Query select mailbox from users where user = 'domain'
4 Connect postfix@domain on mail
4 Query select rcpt from aliases where addr = 'test'1 и 4 запрос - без вопросов.
2 запрос - почему-то в алиасах ищется имя домена.
3 запрос - к базам виртуальных юзеров почему-то с именем домена.
>Это СОВЕРШЕННО не то. Еще раз повторю, что хочу чтобы postfix обслуживал
>1 домен с реальными и виртуальными пользователями. То, что предлагает jonatan
>- это пересылка почты, которая не имеет получателя на этой системе
>на другой хост.
Кто вам запрещает обработать эту почту?>1 и 4 запрос - без вопросов.
>2 запрос - почему-то в алиасах ищется имя домена.
>3 запрос - к базам виртуальных юзеров почему-то с именем домена.
Потому что там может быть @domain в качестве wildcard
Поскольку друг друга мы так и не поняли прийдется времене сделать как в сообщении 11. В связи с этим есть впрос: есть ли способ не употреблять в алиасах @domain каждый раз, домен-то один?
>Поскольку друг друга мы так и не поняли прийдется времене сделать как
>в сообщении 11. В связи с этим есть впрос: есть ли
>способ не употреблять в алиасах @domain каждый раз, домен-то один?Лучше сделайте по совету jonatan'а!
Только используйте не falback_relay (может быть только SMTP - для вас не нужное усложнение), а falbak_transport=что_то_вроде_maildrop
maildrop взят только для примера, вместо него может быть любая внешняя программа способная разложить почту по ящикам.
>Лучше сделайте по совету jonatan'а!
>Только используйте не falback_relay (может быть только SMTP - для вас не
>нужное усложнение), а falbak_transport=что_то_вроде_maildrop
>maildrop взят только для примера, вместо него может быть любая внешняя программа
>способная разложить почту по ящикам.
ИМХО, как сказал сам jonatan, способ не очень красивый. Рас уж такая проблема не находит простого и ясного решения прийдется что-нибудь придумывать самому.
По-моему решение есть или по крайней мере должно быть :)
Можно рассмотреть немного некрасивый, но вполне рабочий вариант того, что ты хочешь. Домен указывается mydestination.local_recipient_maps = proxy:unix:passwd.byname,
$alias_maps,
mysql:/etc/postfix/mysql_recipient_maps.cffallback_relay = [192.168.0.1]
Т.е. почта для несуществующих пользователей будет отправляться на 192.168.0.1. Если в чем неправ - unk меня поправит.
>Можно рассмотреть немного некрасивый, но вполне рабочий вариант того, что ты хочешь.
Почему не красиво?
Красиво!
Я забыл про fallback :(