Exim - ограничеть от внешней почты., Denis_56, 31-Июл-09, 16:14 [смотреть все]Доброе время суток. Есть FreeBSD 6.4 + Exim 4.69 + MySQL + … Вопрос как ограничить от внешней почты сервисные аккаунты, например мне надо что бы для пользователей mail, root, webmaster… почта с внешних доменов не приходила (отбрасывалась), но при этом в нутрии доме почтовый обмен между ними был? В таблице ввел дополнительное поле «no_local» и для этих пользователей там стоит значение 0.
|
- Exim - ограничеть от внешней почты., BlackHawk, 16:17 , 31-Июл-09 (1)
>Доброе время суток. >Есть FreeBSD 6.4 + Exim 4.69 + MySQL + … >Вопрос как ограничить от внешней почты сервисные аккаунты, например мне надо >что бы для пользователей mail, root, webmaster… почта с внешних доменов >не приходила (отбрасывалась), но при этом в нутрии доме почтовый обмен >между ними был? >В таблице ввел дополнительное поле «no_local» и для этих пользователей там стоит >значение 0. и прописать deny например... или правильный транспорт...
- Exim - ограничеть от внешней почты., Denis_56, 16:45 , 31-Июл-09 (2)
> >и прописать deny например... или правильный транспорт... вариант с deny мне больше нравится, но я не могу до конца осознать как его реализовать, знаний по Exim не хватает deny message = "Sorry, the user was not found. Try again." domains = +local_domains с чем сравнивать: $ {lookup mysql{SELECT recipients FROM users WHERE no_login=’0’}} ?
- Exim - ограничеть от внешней почты., Denis_56, 16:37 , 04-Авг-09 (3)
После долгих размышлений пришел к следующему заперту:Deny message = "Sorry, the user was not found. Try again." Domains = +local_domains condition = ${if and{{eq{$(lookup mysql{SELECT local_part FROM user WHERE local_part='${local_part}' AND no_local=true}}}{$local_part}{yes}{no}}{eq{$sender_address_domain}{$domain}{yes}{no}}}} правда теперь выдает ошибку при принятии почты =( 2009-08-04 16:21:51 H=(mxb.rambler.ru) [81.19.66.30] F=<test@rambler.ru> temporarily rejected RCPT <test@pupkin.ru>: failed to expand ACL string "${if and{{eq{$(lookup mysql{SELECT local_part FROM users WHERE local_part='${local_part}' AND no_local=true}}}{$local_part}{yes}{no}}{eq{$sender_address_domain}{$domain}{yes}{no}}}}": $ not followed by letter, digit, or { inside "and{...}" condition Что не так, синтаксис вроде правильный…
- Exim - ограничеть от внешней почты., BlackHawk, 21:13 , 04-Авг-09 (4)
>[оверквотинг удален] > Domains = +local_domains > > condition = ${if and{{eq{$(lookup mysql{SELECT >local_part FROM user WHERE local_part='${local_part}' AND no_local=true}}}{$local_part}{yes}{no}}{eq{$sender_address_domain}{$domain}{yes}{no}}}} > >правда теперь выдает ошибку при принятии почты =( > >2009-08-04 16:21:51 H=(mxb.rambler.ru) [81.19.66.30] F=<test@rambler.ru> temporarily rejected RCPT <test@pupkin.ru>: failed to expand ACL string "${if and{{eq{$(lookup mysql{SELECT local_part FROM users WHERE local_part='${local_part}' AND no_local=true}}}{$local_part}{yes}{no}}{eq{$sender_address_domain}{$domain}{yes}{no}}}}": $ not followed by letter, digit, or { inside "and{...}" condition > >Что не так, синтаксис вроде правильный… я бы для начала урезал бы запрос до минимума, а потом уже наращивал... тем более оно ж сказал что ему не нравится
- Exim - ограничеть от внешней почты., Denis_56, 08:15 , 05-Авг-09 (5)
> >я бы для начала урезал бы запрос до минимума, а потом уже >наращивал... тем более оно ж сказал что ему не нравится Само собой я урезал и проверял по отдельности, работает, а вот в связке ни как =(
- Exim - ограничеть от внешней почты., BlackHawk, 13:13 , 05-Авг-09 (6)
>> >>я бы для начала урезал бы запрос до минимума, а потом уже >>наращивал... тем более оно ж сказал что ему не нравится > >Само собой я урезал и проверял по отдельности, работает, а вот в >связке ни как =( значит где-то таки ошибся, что очень легко в exim-омвских запросах... попробуй через макросы написать - будет легче в конфиге читать его
- Exim - ограничеть от внешней почты., Denis_56, 13:38 , 05-Авг-09 (7)
Решил этот вопрос, обошелся без ANDDeny message = "Sorry, the user was not found. Try again." Domains = +local_domains condition = ${if eq{$(lookup mysql{SELECT local_part FROM user WHERE local_part='${local_part}' AND no_local=true}}}{$local_part}{yes}{no}} condition = ${if eq{$sender_address_domain}{$domain}{yes}{no}}
|