Страница 1 из 1
Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-29 15:08:44
neptunix
Настроил работу exim с локальной доставкой через dovecot (сначала доставка работала через mysql_delivery)
Так вот -
если доставка работает через dovecot - то
как exim проверяет существование получателей?
В конфиге написано:
Код: Выделить всё
accept domains = +local_domains
endpass
message = No such user in this domain
log_message = Такого пользователя нет в домене
verify = recipient
Но нигде явно не прописана проверка пользователя на существование в mysql (т.е. чтобы exim обратился в базу в таблицу mailbox и посмотрел там)
Самое смешное что оно работает, правда мне не понятно как.
И еще - если в таблице поставить active = 0 - то exim все равно принимает для этого пользователя почту, а вот dovecot deliver уже отфутболивает.
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-29 20:19:40
Alex Keda
знаит надо явную проверку.
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 9:54:49
neptunix
lissyara писал(а):знаит надо явную проверку.
У меня вопрос немного в другом) Как exim тогда проверяет пользователей если это явно нигде не задано?
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 10:40:05
Alex Keda
роутингом
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 11:02:17
neptunix
lissyara писал(а):роутингом
А можно расшифровать, если не сложно?
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 11:05:47
Alex Keda
пытается сроутить сообщение.
успешно - значит есть, нет - значит нет
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 11:17:20
neptunix
lissyara писал(а):пытается сроутить сообщение.
успешно - значит есть, нет - значит нет
то есть в моем случае exim спрашивает у dovecot-а есть ли такой пользователь?
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 15:29:11
Alex Keda
нет. до этого он не доходит - он проверяет все условия и всё.
если выполняется этот роутер - то значит юзер существует
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 22:26:39
neptunix
lissyara писал(а):нет. до этого он не доходит - он проверяет все условия и всё.
если выполняется этот роутер - то значит юзер существует
а как он физически понимает что юзер существует? То есть как роутер выполняется?
exim лезет в /var/spool/mail и смотрит существует ли там каталог пользователя? Ерунда какая-то
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-30 22:42:26
Alex Keda
и раскуриваие вывода.
+ чтение документации.
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-05-31 9:04:39
dikens3
neptunix писал(а):а как он физически понимает что юзер существует? То есть как роутер выполняется? exim лезет в /var/spool/mail и смотрит существует ли там каталог пользователя? Ерунда какая-то
1. Проверка адреса получателя по списку роутеров, в которых указан транспорт для доставки.
2. Если роутер обрабатывает наш домен, тогда проверяется
возможность выполнения этого роутера. Если
результат этой
возможности положительный - пользователь существует.
3. Сообщение передается в транспорт, который тоже может отфутболивать сообщения по разным причинам, таким как превышение объёма почтового ящика или самого сообщения и т.п.
Если чё напутал в полезных скриптах есть система
отладки.
Re: Проверка пользователей в базе для exim и dovecot
Добавлено: 2008-06-04 15:32:59
freeman
neptunix писал(а):lissyara писал(а):нет. до этого он не доходит - он проверяет все условия и всё.
если выполняется этот роутер - то значит юзер существует
а как он физически понимает что юзер существует? То есть как роутер выполняется?
Чувствую что у тебя есть такое
Код: Выделить всё
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
Вот тут и идёт проверка.
neptunix писал(а):.....
И еще - если в таблице поставить active = 0 - то exim все равно принимает для этого пользователя почту, а вот dovecot deliver уже отфутболивает.
Вот это и мне вчера перестало нравится, правда никак не доберусь исправить
Поправте меня если не прав. При такой конфигурации Exim сначала принимает письма даже для отключенных пользователей (active = 0), вместо того чтобы сказать что пользователь неизвестен. Потом довекот их обратно футболит. Просто сейчас увидел что пользователей нет уже, а спам и километровые письма на них канал, логи и т.д. забивают.
Кстати таже ситуация и с квотами средствами Dovecot - трафик/время и даже дисковое пространство всё одно тратится на приём писем
