Использование /etc/aliases в связке Postfix+MySQL

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Использование /etc/aliases в связке Postfix+MySQL

Непрочитанное сообщение Sweeper_jr » 2006-02-09 15:46:00

Как я понял для перенаправления почты с реального юзера системы на виртуального юзера 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
И при попытке системы отослать 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")
Так как все таки правильно реализовать сабж???

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-09 16:05:52

посмотрел конфиг на серваке где постфикс - я делал запись в таблице альясов (mysql)

Код: Выделить всё

root@domain.com -> me@my_domain.ru
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-09 18:36:11

То есть у тебя в 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 - стрелять из пушки по воробьям, хотя тоже вариант.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-09 18:39:36

ну да.

а запросов пустых в любом почтовике полно...
это не самое узкое место :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-09 18:46:41

Но все равно имея в наличии алиас
root@domain.com -> me@domain.com
а в maillog пишет что
unknown user: "root@domain.com
куда смотреть? :twisted:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-09 18:57:55

в сторону имени хоста :)

как машина называется? mail.domain.ru?
вот и создай домен и альяс

Код: Выделить всё

root@mail.domain.su -> me@domain.su
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-09 19:09:55

домен был содан, а вот алиас не пробовал...
... не, тоже самое, без изменений - status=bounced (unknown user: "root@domain.com")

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-09 21:43:33

Код: Выделить всё

SELECT goto FROM alias WHERE address='root@domain.com'
А ты пробовал его руками в SQL выполнить?
Что он возвращает?

Причём самое правильное - скопировать из логов и вставить. Чтоб точно было. Иногда явных ошибок не видно...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-10 11:21:09

Да пробовал, вот:

Код: Выделить всё

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 берется нормально. Но как то все запутано...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-10 11:33:55

Код: Выделить всё

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
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-10 11:54:47

Да, поменял, без изменений. Даже попробовал сделать команду newaliases, и в логах:

Код: Выделить всё

Feb 10 10:56:08 box postfix/trivial-rewrite[50979]: table hash:/etc/mail/aliases(0,100) has changed -- restarting
как бы Postfix перечитывает /etc/aliases...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-10 12:16:57

ладно. а оно тебе вообще надо?
чем тебя всё в mysql не устраивает? у меня нету в конфиге хеша этого... и всё работает...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-10 12:37:55

lissyara писал(а):ладно. а оно тебе вообще надо?
чем тебя всё в mysql не устраивает? у меня нету в конфиге хеша этого... и всё работает...
Дык не работает в mysql! Ни один алиес! будь он root или любой другой user, все равно не работает.
Глючит у меня только postfixadmin, но он тут не причем, таблицы же в mysql есть.
:idea:Вот меня тут осенило немного. Как то я пытался прикрутить ClamAV к Postfix. Но так ничего и неполучилось, зацикливала почта. Возможно причина одна и та же?!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-02-10 12:40:23

да х.з.... у меня же работает...
конфиг на сайте...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-02-10 15:31:02

Понял, спасибо за помощь! :P
Если что то нарою, то обязательно поделюсь!

Ramzes
проходил мимо
Сообщения: 2
Зарегистрирован: 2006-03-30 1:26:04

Re: Использование /etc/aliases в связке Postfix+MySQL

Непрочитанное сообщение Ramzes » 2006-03-30 1:28:07

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
И при попытке системы отослать 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
И алиасы будут работать...

Аватара пользователя
Sweeper_jr
ефрейтор
Сообщения: 61
Зарегистрирован: 2006-01-19 12:48:12
Контактная информация:

Непрочитанное сообщение Sweeper_jr » 2006-04-03 16:17:30

Хм... Таки работает! :lol: . Спасибо!
Не работает только если в /etc/mail/aliases есть алиасы с таким синтаксисом
alias: :include:/path/to/file/with/list
Может у меня ситнтаксис неправильный?

Ramzes
проходил мимо
Сообщения: 2
Зарегистрирован: 2006-03-30 1:26:04

Непрочитанное сообщение Ramzes » 2006-04-03 23:06:47

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

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