Страница 1 из 1
Exim, system_filter, mysql
Добавлено: 2013-03-12 22:16:27
Gamerman
Захотелось мне менять тему в письмах, которые приходят на алиас.
В файле фильтра делаю проверку так,
но хотелось бы не руками писать в файле, а через выборку с мускуля?
Это как-то можно сделать?
Re: Exim, system_filter, mysql
Добавлено: 2014-03-22 19:08:27
Alex Keda
да. точно также, тока запросом
из фильтра можно делать запросы к БД
Re: Exim, system_filter, mysql
Добавлено: 2014-03-22 19:45:20
Gamerman
Примерчик можно? Вид запроса интересует.
Re: Exim, system_filter, mysql
Добавлено: 2014-03-22 21:27:45
Alex Keda
запрос как запрос... в документации есть же всё...
Код: Выделить всё
mx# cat /usr/local/etc/exim/filters/filter.eliron.2006-08-10
#!/bin/sh
# Это вовсе не шелл-скрипт, просто в mcedit при такой первой строке
# включается подсветка синтаксиса, и работать на порядок удобней :)
############# ELIRON #######################
# копируем письма. с вирусами нам не нужны.
# Проверяем, надо ли копировать почту, идущую этому пользователю,
# на начальственный адрес (единичка в поле `copy_mail` - копировать,
# любое другое значение - нет)
if $recipients is "${lookup mysql{SELECT LCASE(`address`) FROM `alias` WHERE \
`address`='${quote_mysql:$recipients}' AND `copy_mail`='1' \
AND `domain`='eliron.ru' LIMIT 1}}"
then
# кому копируем (можно на локальный адрес, можно на
# любой другой сервер инета)
unseen deliver archive-in@eliron.ru
endif
# исходящая почта (тут свои косяки - если чел в настройках своего почтового
# клиента пропишет левый адрес - почта копироваться не будет. Как вариант -
# отключить приём писем от неавторизованных клиентов, и ловить по переменной
# $authenticated_sender - но тогда железки не смогут рапортоваться, если им
# нужно, наружу... Впрочем, у меня они на этот сервер пишут...)
if $sender_address is "${lookup mysql{SELECT LCASE(`address`) FROM `alias` WHERE \
`address`='${quote_mysql:$sender_address}' AND `copy_mail`='1' \
AND `domain`='eliron.ru' LIMIT 1}}"
then
# кому копируем (можно на локальный адрес, можно на
# любой другой сервер инета)
unseen deliver archive-out@eliron.ru
endif
Re: Exim, system_filter, mysql
Добавлено: 2014-03-22 21:28:32
Alex Keda
блин, когда-то я mcedit юзал

)
Re: Exim, system_filter, mysql
Добавлено: 2014-03-22 21:53:45
Gamerman
Спасибо
Exim, system_filter, mysql
Добавлено: 2024-05-17 13:31:28
Urgor
Оказывается $recipients может содержать сразу несколько адресов... Да и окончание 's' нам на это как-то напоминает... Но кто бы мог подумать что так и будет!

И естессно почта где много получателей игнорится фильтром...
Вообщем пришлось переделать как-то так:
Код: Выделить всё
if $recipients contains "${lookup mysql{select `email` from `copy_list` where locate(`email`,'${quote_mysql:$recipients}')>0 and `enabled`='Y' limit 1}}"
then
unseen save /shared/mail/backup 640
endif
`copy_list` табличка с перечнем е-мылов, где есть как просто мыла так и домены. Соответственно можно копировать почту уходящую на какой-нить домен всю целюком... Вотъ. Может кому понадобиться.
Exim, system_filter, mysql
Добавлено: 2024-05-19 20:31:15
Alex Keda
Urgor писал(а): ↑2024-05-17 13:31:28
Оказывается $recipients может содержать сразу несколько адресов... Да и окончание 's' нам на это как-то напоминает... Но кто бы мог подумать что так и будет!

И естессно почта где много получателей игнорится фильтром...
18 лет прошло, точно не помню - но помоему, там в конфиге было max_recipients = 1 чтоли
непомню точно, но смысл такой
собственно да, грабли вылези на первом же письме более чем с одним получателем

вот это как раз помню
