EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-11-21 10:47:40
Взято из статей.
http://www.lissyara.su/?id=1173 (Автор: lissyara.)
http://www.lissyara.su/?id=1728 (Автор: Cancer.)
Код: Выделить всё
# смотрим альясы
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}}
# Всё что осталось - это локальные адресаты.
# Доставляем почту в dovecot
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM \
`alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery
Нормально то, что пользователи и алиасы это один и тот же запрос?
Сам пока сделал так:
Код: Выделить всё
# Список алиасов
MYSQL_ALIASES = SELECT goto FROM alias WHERE address='${quote_mysql:$local_part@$domain}' OR address='${quote_mysql:$domain}'
# Список пользователей
MYSQL_USERS = SELECT username FROM mailbox WHERE username='${quote_mysql:$local_part@$domain}' LIMIT 1
...
...
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{MYSQL_ALIASES}}
dovecot_user:
driver = accept
condition = ${lookup mysql{MYSQL_USERS}{yes}{no}}
transport = dovecot_delivery
cannot_route_message = Unknown user
...
...
Далее попробовал переслать всю почту с одного домена на другой:
Код: Выделить всё
Для создания catch-all почтового ящика используйте "*" в качестве имени алиаса.
для внутридоменного перенаправления используйте "*@domain.tld" для поле Кому
Не работает. Отсюда необходим другой тип обработки. Надо подумать.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Хостинг HostFood.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
- стреляли...
- Сообщения: 35439
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2009-03-09 2:02:47
ну, вообще - нормально.
вначально отальясились, адреса изменились.
тем же запросом пробежались - но адреса-то уже другие...
у меня оно щас выглядит так:
Код: Выделить всё
# смотрим альясы
mysql_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT LCASE(`goto`) FROM `alias` WHERE \
`address`=LCASE('${quote_mysql:$local_part@$domain}') OR \
`address`=LCASE('${quote_mysql:@$domain}') AND `active`='1' \
ORDER BY SUBSTRING_INDEX(`address`,'@',1) DESC LIMIT 1}}
Код: Выделить всё
# Всё что осталось - это локальные адресаты.
# Доставляем почту в dovecot
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT LCASE(`goto`) FROM \
`alias` WHERE \
`address`=LCASE('${quote_mysql:$local_part@$domain}') OR \
`address`=LCASE('${quote_mysql:@$domain}') AND `active`='1' \
ORDER BY SUBSTRING_INDEX(`address`,'@',1) DESC LIMIT 1}{yes}{no}}
transport = dovecot_delivery
cannot_route_message = Unknown user
Убей их всех! Бог потом рассортирует...
Alex Keda
-
Cancer
- Гл. Кастратор
- Сообщения: 1269
- Зарегистрирован: 2008-03-25 12:21:36
- Откуда: г. Ростов-на-Дону
-
Контактная информация:
Непрочитанное сообщение
Cancer » 2009-03-09 16:08:33
# Всё что осталось - это локальные адресаты.
# Доставляем почту в dovecot
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT LCASE(`goto`) FROM \
`alias` WHERE \
`address`=LCASE('${quote_mysql:$local_part@$domain}') OR \
`address`=LCASE('${quote_mysql:@$domain}') AND `active`='1' \
ORDER BY SUBSTRING_INDEX(`address`,'@',1) DESC LIMIT 1}{yes}{no}}
transport = dovecot_delivery
cannot_route_message = Unknown user
Мне так не подойдет такой роутер, я так понял если он не находит определенного пользователя в БД выдаст сообщение мол пользователь неизвестен
cannot_route_message = Unknown user
У меня отправка сообщений получается такая же, если нет в БД пользователя он перенаправляет письмо на мастерхост где он точно есть

, ну конечно не проблема под себя сделать

Cancer