Страница 1 из 1

Простой whitelist на Exim

Добавлено: 2007-07-31 12:15:51
Truewar-6.5.88
Есть таблица "белых" ip типа: [id, relay_ip, type] (ождна таблица на белыйе и черные адреса. Различаются параметром type )
Из нее запросом mysql формируется hostlist.

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

hostlist   	whitelist_hosts		= ${lookup mysql{SELECT relay_ip FROM blacklist WHERE type='WHITE' \
				  and (relay_ip		='${quote_mysql:${sender_host_address}}' \
				  or relay_ip		='${quote_mysql:${mask:$sender_host_address/24}}')}}	
Аксептить пробовал строками:

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

accept
hosts			= +whitelist_hosts
Но у меня все равно письма с "белых" ip проверяются greylist'ом. Мне нужно, чтобы письмо сразу аксептилось.
Что я делаю не так?

Re: Простой whitelist на Exim

Добавлено: 2007-07-31 12:36:36
Alex Keda
поиск вернёт столбец адресов, а не список разделённый двоеточиями.
лучше сделай поиск оп конкретному IP там где это необходимо с результатом yes/no

Re: Простой whitelist на Exim

Добавлено: 2007-07-31 12:52:42
Truewar-6.5.88
Я же проверку делаю:
and (relay_ip ='${quote_mysql:${sender_host_address}}' \
or relay_ip ='${quote_mysql:${mask:$sender_host_address/24}}')}}
В таблице нету одинаковых ip...

А если с yes/no, то это будет так:

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

WHITELIST = SELECT relay_ip FROM blacklist WHERE type='WHITE' \
	    and (relay_ip='${quote_mysql:${sender_host_address}}' \
	    or relay_ip='${quote_mysql:${mask:$sender_host_address/24}}')
А аксептить так:

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

 
accept   condition = ${lookup mysql{WHITELIST}{yes}{no}}

Я правильно понял?

Re: Простой whitelist на Exim

Добавлено: 2007-07-31 13:14:48
Truewar-6.5.88
Попробовал с yes\no, как написал тут.
Все заработало!
СпасибО!

Re: Простой whitelist на Exim

Добавлено: 2007-07-31 13:15:39
dikens3
В догонку, раз уж стал писать до твоего ответа. :-)

Список разделённый : делается так:

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

# Заблокированные E-Mail'ы
MYSQL_BAD_EMAILS        = SELECT email FROM block_emails
...
...
# Прибиваем плохие E-Mail'ы и домены
  deny      message      = You are blocked !
            senders      = ${sg{${lookup mysql{MYSQL_BAD_EMAILS}}}{\n}{:}}
...
...
Список по IP-Адресам можно проверять так:

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

# Белый список IP-Адресов
MYSQL_WHITELISTIP       = SELECT ip FROM white_list_ip WHERE ip = '$sender_host_address' LIMIT 1
...
...
# Принимаем, если IP-Адрес в белом списке
  accept    domains       = +local_domains
            hosts         = mysql; MYSQL_WHITELISTIP
            endpass
            message       = "Unknown user"
            verify        = recipient
...