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

Exim + MySQL + WhiteList

Добавлено: 2007-11-28 17:50:43
Valentaim
Создаю базу *белых* адрессов с помощью вот этого кода:

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

hosts_avoid_esmtp =  ${lookup mysql{INSERT IGNORE INTO `sended_list` \
			(`user_from`, `user_to`, `added_timestamp`, \
			`last_mail_timestamp`, `mail_count`) VALUES \
			(LCASE('${quote_mysql:$sender_address}'), \
			LCASE('${quote_mysql:$local_part@$domain}'), \
			UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '1') ON DUPLICATE \
			KEY UPDATE `last_mail_timestamp` = UNIX_TIMESTAMP(), \
			`mail_count` = `mail_count` + 1}}
база потихоньку растет, но иногда попадают адресса типа: @, @mail, user@. С чем это связано и как это будет влиять на работу фильтра по белому списку?

Re: Exim + MySQL + WhiteList

Добавлено: 2007-11-28 21:42:25
Alex Keda
удалять...
откуда берутся - рикошеты и письма более чем одному юзеру.
удалять. могу завтра скрипт выложить.

Re: Exim + MySQL + WhiteList

Добавлено: 2007-11-30 12:27:19
freeman
lissyara писал(а):удалять...
откуда берутся - рикошеты и письма более чем одному юзеру.
удалять. могу завтра скрипт выложить.
давай выкладывай =)

Re: Exim + MySQL + WhiteList

Добавлено: 2007-11-30 13:35:15
Alex Keda

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

mail# more delete_from_exim_whitelist.sh
#!/bin/sh

# Дропаем домены в белом списке, которые старше 60 дней. Если переписка всё
# ещё идёт, то в таблице отправленных останутся записи - там дропается
# по дате последней отправки
/usr/local/bin/mysql --host=192.168.100.2 --user=exim_user --password=exim_pass \
                        --database=exim_db --execute="DELETE FROM \
                        \`domain_whitelist\` WHERE \`added_timestamp\` \
                        < (UNIX_TIMESTAMP() - 60*24*3600)"

# Дропаем из списка отправленных записи которые не обновлялись более 60 дней.
/usr/local/bin/mysql --host=192.168.100.2 --user=exim_user --password=exim_pass \
                        --database=exim_db --execute="DELETE FROM \
                        \`sended_list\` WHERE \`last_mail_timestamp\` \
                        < (UNIX_TIMESTAMP() - 60*24*3600)"

# Дропаем рикошеты. Чтоб не мешались.
/usr/local/bin/mysql --host=192.168.100.2 --user=exim_user --password=exim_pass \
                        --database=exim_db --execute="DELETE FROM \`sended_list\`\
                        WHERE \`user_from\` = ''                        \
                        OR \`user_to\`='@'                              \
                        OR \`user_to\` LIKE '@%'                        \
                        OR \`user_to\` LIKE '%@mail-gw.domain.local'     \
                        OR \`user_from\` NOT LIKE '%@domain.ru'"
/usr/local/bin/mysql --host=192.168.100.2 --user=exim_user --password=exim_pass \
                        --database=exim_db --execute="OPTIMIZE TABLE    \
                        \`domain_whitelist\`, \`sended_list\`" >/dev/null
mail#   

Re: Exim + MySQL + WhiteList

Добавлено: 2007-11-30 18:01:24
Valentaim
EOF in backquote substitution.

Я так понял шде-то кавычек не хватет...??

Re: Exim + MySQL + WhiteList

Добавлено: 2007-11-30 19:31:24
Alex Keda
открой в любом редакторе с подсветкой синтаксиса - и увидишь

Re: Exim + MySQL + WhiteList

Добавлено: 2007-12-03 13:05:56
Valentaim
А что удаляют эти строки???

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

 \`user_to\` LIKE '%@mail-gw.domain.local'     \
                        OR \`user_from\` NOT LIKE '%@domain.ru'

Re: Exim + MySQL + WhiteList

Добавлено: 2007-12-03 13:40:04
Alex Keda
этом мои внутренние замуты