Страница 1 из 1
Использование /etc/aliases в связке Postfix+MySQL
Добавлено: 2006-02-09 15:46:00
Sweeper_jr
Как я понял для перенаправления почты с реального юзера системы на виртуального юзера Postfix нужно что бы main.cf содержал следующее:
Код: Выделить всё
local_recipient_maps = $virtual_mailbox_maps $alias_maps
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf, hash:/etc/mail/aliases
атакже:
Код: Выделить всё
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/mail/aliases
Затем если мы изменяем содержимое /etc/aliases, необходимо сделать ребилд базы с помощью команды newaliases (также команда postalias /путь/к/файлу/алиасов, если файл с алиасами переместили). Проделав столь не хитрые ситуации, я избавился от месагов в логах, сообщающих мне что database /etc/mail/aliases.db is older than source file /etc/mail/aliases. Что есть наверное хорошо.
Сделал в /etc/mail/aliases новый алиас
И при попытке системы отослать root'у очередной месаг он перенапраляется
me@domain.com, но безуспешно:
Код: Выделить всё
Feb 9 13:15:24 box postfix/virtual[45289]: 5E4444AE3: to=<me@domain.com>, orig_to=<root@domain.com>, relay=virtual, delay=0, status=sent (delivered to maildir)
К
me@domain.com приходит письмо с сабжектом Undelivered Mail Returned to Sender и содержанием <
root@domain.com> (expanded from <root>): unknown user "
root@domain.com"
Также если отправлять письма на алиес содержащийся в /etc/mail/aliases:
Код: Выделить всё
Feb 9 14:46:28 box postfix/virtual[46153]: 1FB074AD9: to=<root@domain.com>, relay=virtual, delay=0, status=bounced (unknown user: "root@domain.com")
Так как все таки правильно реализовать сабж???
Добавлено: 2006-02-09 16:05:52
Alex Keda
посмотрел конфиг на серваке где постфикс - я делал запись в таблице альясов (mysql)
Добавлено: 2006-02-09 18:36:11
Sweeper_jr
То есть у тебя в MySQL в таблице alias есть следующие содержимое
Код: Выделить всё
+---------------------+-----------------------+
| address | goto |
+---------------------+-----------------------+
| root@domain.com | me@domain.com |
+---------------------+-----------------------+
и все работает?
Вообщем странно, запросы на мускуль такие
Код: Выделить всё
6137 Query SELECT maildir FROM mailbox WHERE username='root@domain.com'
6137 Query SELECT maildir FROM mailbox WHERE username='root'
6140 Query SELECT goto FROM alias WHERE address='root@domain.com'
Последний запрос работает, а вот первые два естественно впустую, и вообще причем здесь maildir FROM mailbox, ведь для
root@domain.com нет maildir. Мне кажеться это не нормально... (?)
А что касается /etc/mail/aliases, то он мне нужен для того что бы использовать алиасы такого типа:
test: :include: /path/name
всегото их нужно пяток, ради них использовать mailman - стрелять из пушки по воробьям, хотя тоже вариант.
Добавлено: 2006-02-09 18:39:36
Alex Keda
ну да.
а запросов пустых в любом почтовике полно...
это не самое узкое место

Добавлено: 2006-02-09 18:46:41
Sweeper_jr
Но все равно имея в наличии алиас
root@domain.com ->
me@domain.com
а в maillog пишет что
unknown user: "
root@domain.com
куда смотреть?

Добавлено: 2006-02-09 18:57:55
Alex Keda
в сторону имени хоста
как машина называется? mail.domain.ru?
вот и создай домен и альяс
Добавлено: 2006-02-09 19:09:55
Sweeper_jr
домен был содан, а вот алиас не пробовал...
... не, тоже самое, без изменений - status=bounced (unknown user: "
root@domain.com")
Добавлено: 2006-02-09 21:43:33
Alex Keda
Код: Выделить всё
SELECT goto FROM alias WHERE address='root@domain.com'
А ты пробовал его руками в SQL выполнить?
Что он возвращает?
Причём самое правильное - скопировать из логов и вставить. Чтоб точно было. Иногда явных ошибок не видно...
Добавлено: 2006-02-10 11:21:09
Sweeper_jr
Да пробовал, вот:
Код: Выделить всё
mysql> SELECT goto FROM alias WHERE address='root@domain.com';
+-----------------------+
| goto |
+-----------------------+
| me@domain.com |
+-----------------------+
1 row in set (0.00 sec)
Запросы идут, а вот как узнать используються ли само значение.
Пробовал отправить из шела письмо с помощью mail:
Код: Выделить всё
box# mail -s test root@domain.com
test
.
EOT
логи:
Код: Выделить всё
Feb 10 10:18:53 box postfix/pickup[50294]: D1C6A4AE3: uid=0 from=<root>
Feb 10 10:18:53 box postfix/qmgr[46135]: D1C6A4AE3: from=<root@domain.com>, size=306, nrcpt=1 (queue active)
Feb 10 10:18:53 box postfix/virtual[50599]: D1C6A4AE3: to=<root@domain.com>, relay=virtual, delay=0, status=bounced (unknown user: "root@domain.com")
Feb 10 10:18:53 box postfix/virtual[50599]: D4E0E4AEC: to=<me@domain.com>, orig_to=<root@domain.com>, relay=virtual, delay=0, status=sent (delivered to maildir)
Интересно получается, Postfix баунсит письмо, а отчет об ошибке от MAILER-DAEMON попадает к
me@domain.com, то есть значение из MySQL берется нормально. Но как то все запутано...
Добавлено: 2006-02-10 11:33:55
Alex Keda
Код: Выделить всё
mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf, hash:/etc/mail/aliases
а если их местами поменять?
Код: Выделить всё
hash:/etc/mail/aliases, mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
Добавлено: 2006-02-10 11:54:47
Sweeper_jr
Да, поменял, без изменений. Даже попробовал сделать команду newaliases, и в логах:
Код: Выделить всё
Feb 10 10:56:08 box postfix/trivial-rewrite[50979]: table hash:/etc/mail/aliases(0,100) has changed -- restarting
как бы Postfix перечитывает /etc/aliases...
Добавлено: 2006-02-10 12:16:57
Alex Keda
ладно. а оно тебе вообще надо?
чем тебя всё в mysql не устраивает? у меня нету в конфиге хеша этого... и всё работает...
Добавлено: 2006-02-10 12:37:55
Sweeper_jr
lissyara писал(а):ладно. а оно тебе вообще надо?
чем тебя всё в mysql не устраивает? у меня нету в конфиге хеша этого... и всё работает...
Дык не работает в mysql! Ни один алиес! будь он root или любой другой user, все равно не работает.
Глючит у меня только postfixadmin, но он тут не причем, таблицы же в mysql есть.

Вот меня тут осенило немного. Как то я пытался прикрутить ClamAV к Postfix. Но так ничего и неполучилось, зацикливала почта. Возможно причина одна и та же?!
Добавлено: 2006-02-10 12:40:23
Alex Keda
да х.з.... у меня же работает...
конфиг на сайте...
Добавлено: 2006-02-10 15:31:02
Sweeper_jr
Понял, спасибо за помощь!
Если что то нарою, то обязательно поделюсь!
Re: Использование /etc/aliases в связке Postfix+MySQL
Добавлено: 2006-03-30 1:28:07
Ramzes
Sweeper_jr писал(а):Как я понял для перенаправления почты с реального юзера системы на виртуального юзера Postfix нужно что бы main.cf содержал следующее:
Код: Выделить всё
local_recipient_maps = $virtual_mailbox_maps $alias_maps
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf, hash:/etc/mail/aliases
атакже:
Код: Выделить всё
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/mail/aliases
Затем если мы изменяем содержимое /etc/aliases, необходимо сделать ребилд базы с помощью команды newaliases (также команда postalias /путь/к/файлу/алиасов, если файл с алиасами переместили). Проделав столь не хитрые ситуации, я избавился от месагов в логах, сообщающих мне что database /etc/mail/aliases.db is older than source file /etc/mail/aliases. Что есть наверное хорошо.
Сделал в /etc/mail/aliases новый алиас
И при попытке системы отослать root'у очередной месаг он перенапраляется
me@domain.com, но безуспешно:
Код: Выделить всё
Feb 9 13:15:24 box postfix/virtual[45289]: 5E4444AE3: to=<me@domain.com>, orig_to=<root@domain.com>, relay=virtual, delay=0, status=sent (delivered to maildir)
К
me@domain.com приходит письмо с сабжектом Undelivered Mail Returned to Sender и содержанием <
root@domain.com> (expanded from <root>): unknown user "
root@domain.com"
Также если отправлять письма на алиес содержащийся в /etc/mail/aliases:
Код: Выделить всё
Feb 9 14:46:28 box postfix/virtual[46153]: 1FB074AD9: to=<root@domain.com>, relay=virtual, delay=0, status=bounced (unknown user: "root@domain.com")
Так как все таки правильно реализовать сабж???
Закоментируй в main.cf строку:
Код: Выделить всё
receive_override_options = no_address_mappings
И алиасы будут работать...
Добавлено: 2006-04-03 16:17:30
Sweeper_jr
Хм... Таки работает!

. Спасибо!
Не работает только если в /etc/mail/aliases есть алиасы с таким синтаксисом
alias: :include:/path/to/file/with/list
Может у меня ситнтаксис неправильный?
Добавлено: 2006-04-03 23:06:47
Ramzes
Sweeper_jr писал(а):Хм... Таки работает!

. Спасибо!
Не работает только если в /etc/mail/aliases есть алиасы с таким синтаксисом
alias: :include:/path/to/file/with/list
Может у меня ситнтаксис неправильный?
Незачто )
Та забей ты на эти хэши %)
Гемор лишний... после каждого, пардон, пука newaliases пинать %)
В мускул запихнул и фсе, сразу все будет работать

содержимое того же /path/to/file/with/list просто запихни в табличку алиасов и все )