Страница 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
этом мои внутренние замуты