Portál AbcLinuxu, 12. května 2025 13:44
DD,
řeším problém s nastavením Eximu. Vycházím z tohoto howto (kombinace s MySQL) a vše funguje bez problémů. Chtěl bych ale přidat natvrdo do konfigurace volbu, aby se veškeré maily, které mají v hlavičce (X-Spam-Flag: YES)
přesunuly do složky Junk na dané schránce. Dle určitých podmínek (uživatelé si sami mohou měnit levely, od kterých se budou spamy tagovat) se přidá v routeru do mailu daná hlavička:
headers_add = ${if >{$spam_score_int}{${lookup mysql{select users.sa_tag * 10 from users,domains \
where localpart = '${quote_mysql:$local_part}' \ and domain = '${quote_mysql:$domain}' \
and users.on_spamassassin = '1' \
and users.domain_id=domains.domain_id }{$value}fail}} {X-Spam-Flag: YES}{X-Spam-Flag: NO} }
Na minulém serveru (který ovšem namísto scanu přímo eximem používal amavisd-new) jsem to řešil tak, že v transportu bylo nastaveno directory takto:
directory = \
${lookup mysql{SELECT maildir FROM users \
WHERE email='${local_part}@${domain}'}}\
${if eq {$h_X-Spam-Flag:}{YES} {/.Junk/}}
Bohužel v nové konfiguraci, kde se daná hlavička přidává až v routeru, tohle nefunguje. Exim v debug módu říká, že hlavičku přidává až po průchodu transportem - prakticky ve chvíli, kdy už se celý mail zapisuje fyzicky na disk, což mi přijde minimálně zvláštní.
Otázka zní - jak to vyřešit jinak? Je tu user .forward, ale přijde mi hloupost dělat několika tisícům uživatelům stejný soubor jen kvůli něčemu, co jde udělat pár řádky v administraci. Zkoušel jsem zkoumat, jestli jde nějak udělat globální filtrování, ale asi jsem hledal špatně. Mohl by mi prosím někdo "nakopnout"? Děkuji.
:0: * ^X-Spam-Flag: Yes .Junk/
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.