Postfix - filtrowanie treści

Instalacja Slackware Linux, problemy i wstępna konfiguracja, aktualizacje do nowszych wersji.

Moderatorzy: Moderatorzy, Administratorzy

kubik
Użytkownik
Posty: 33
Rejestracja: 2013-01-21, 14:28

Postfix - filtrowanie treści

Post autor: kubik » 2015-06-11, 10:07

Witam,

w postfixie mam ustawione filtrowanie maili po zawartości - utworzyłem plik "body_checks", w którym mam wpisy:

Kod: Zaznacz cały

/zarabianie na gieldzie/   REJECT wykryto spam
/unsubscribe/   REJECT wykryto spam

jak widać działa to w ten sposób, że jeśli w części "body" wiadomości wykryty zostanie ciąg tych słów, mail zostanie odrzucony.

W związku z powyższym mam pytanie - w jaki sposób skonstruować kod, aby system wykrył w tekście kilka słów nie występujących bezposrednio po sobie? Załóżmy, że w mailu występuje zdanie:

Ala ma kota.

Chcę, aby postfix zablokował mi maila w sytuacji, gdy wystąpia w całej treści 2 słowa czyli "ala" oraz "kota".
Inaczej mówiąc, musze mieć spełniony iloczyn logiczny ze słów "ala" oraz "kota" w treści, czyli warunkiem jest wystąpienie obu tych słów w całej treści maila.
Proszę o pomoc...

Pajaczek
Użytkownik
Posty: 1439
Rejestracja: 2006-08-03, 13:16
Lokalizacja: Winny Gród

Re: Postfix - filtrowanie treści

Post autor: Pajaczek » 2015-06-11, 18:52

Nie używałem tego, ale po pobieżnej lekturze man widzę, że postfix akceptuje tutaj wyrażenia regularne... masz więc odpowiedź na swoje pytanie: Wyrażenia regularne.

Kod: Zaznacz cały

COMPATIBILITY
       With Postfix version 2.2 and earlier specify "postmap -fq" to  query  a
       table  that  contains  case sensitive patterns. By default, regexp: and
       pcre: patterns are case insensitive.
(...)
se the command  "postconf  -m"  to
       find out what lookup table types your Postfix system supports.
(...)
EXAMPLES
/etc/postfix/main.cf:
           header_checks = pcre:/etc/postfix/header_checks.pcre
/etc/postfix/main.cf:
           body_checks = regexp:/etc/postfix/body_checks

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Postfix - filtrowanie treści

Post autor: webster » 2015-06-11, 22:28

Dalej wyrażenie regularne chyba nie przewiduje dowolnego wystąpienia (kolejności) dwój wzorców - mogę się mylić, ale chyba pozostaniesz przy wyrażeniu "ala(cokolwiek możne wystąpić)kota" co oznacza, że wystąpienie "kota ma ala" już nie zadziała.
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

kubik
Użytkownik
Posty: 33
Rejestracja: 2013-01-21, 14:28

Re: Postfix - filtrowanie treści

Post autor: kubik » 2015-06-12, 09:40

Dzięki za odpowiedź,

z tego co pamiętam z lingwistyki, wyrażenie regularne musi zawierać kolejność słów, ale chyba za pomoca takiego wyrażenia mozna ułożyć regułę, aby między dwoma słowami był dowolny ciag znaków? Dobrze kombinuję? Cos w podobie jak poniżej (na pewno jest błąd, ale chodzi mi o logikę):

Kod: Zaznacz cały

^ala\s+kota$

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Postfix - filtrowanie treści

Post autor: webster » 2015-06-12, 12:20

Łoł to żeś przekombinował :)) JEśli chodzi o wykonanie reguły w której występuje jeden wzorzec później mogą wystąpić dowolne znaki, i drugi wzorzec, to reguła powinna wyglądać następująco:

Kod: Zaznacz cały

/ala.*kota/
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Pajaczek
Użytkownik
Posty: 1439
Rejestracja: 2006-08-03, 13:16
Lokalizacja: Winny Gród

Re: Postfix - filtrowanie treści

Post autor: Pajaczek » 2015-06-12, 19:31

webster pisze:Dalej wyrażenie regularne chyba nie przewiduje dowolnego wystąpienia (kolejności) dwój wzorców - mogę się mylić, ale chyba pozostaniesz przy wyrażeniu "ala(cokolwiek możne wystąpić)kota" co oznacza, że wystąpienie "kota ma ala" już nie zadziała.
Co nie zmienia faktu, że można to wyfiltrować 2 wyrażeniami regularnymi -> 2 filtrami. Nie ma chyba ograniczeń na liczbę filtrów, co najwyżej przy ogromnej ich ilości może to dostać zadyszki. Poza tym, można zrobić nawet 1 wyrażenie regularne typu: ["Ala"|"kot"].*["Ala"|"kot"] , oczywiście ma to ten minus że dopasuje również frazę zawierającą 2 koty lub 2 Ale i cokolwiek pomiędzy ;)

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Postfix - filtrowanie treści

Post autor: webster » 2015-06-13, 16:48

Pajaczek pisze:
webster pisze:Dalej wyrażenie regularne chyba nie przewiduje dowolnego wystąpienia (kolejności) dwój wzorców - mogę się mylić, ale chyba pozostaniesz przy wyrażeniu "ala(cokolwiek możne wystąpić)kota" co oznacza, że wystąpienie "kota ma ala" już nie zadziała.
Co nie zmienia faktu, że można to wyfiltrować 2 wyrażeniami regularnymi -> 2 filtrami. Nie ma chyba ograniczeń na liczbę filtrów, co najwyżej przy ogromnej ich ilości może to dostać zadyszki. Poza tym, można zrobić nawet 1 wyrażenie regularne typu: ["Ala"|"kot"].*["Ala"|"kot"] , oczywiście ma to ten minus że dopasuje również frazę zawierającą 2 koty lub 2 Ale i cokolwiek pomiędzy ;)
Biorąc pod uwagę, że "ala kot" to tylko przykład, a chcielibyśmy dać wzorców np 5, to teraz tworzenie wszystkich możliwych kombinacji to... :) no właśnie :)

W postfixie wyrażenia regularne zapisujemy w nawiasach łukowych, z tego co pamiętam. (Ala|kot).*(Ala|kot)
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Pajaczek
Użytkownik
Posty: 1439
Rejestracja: 2006-08-03, 13:16
Lokalizacja: Winny Gród

Re: Postfix - filtrowanie treści

Post autor: Pajaczek » 2015-06-14, 01:00

Tylko 5... to pikuś, do wygenerowania wszystkich możliwych kombinacji można napisać prosty skrypt.
Pisząc o zadyszce przy ogromnej ilości miałem raczej na myśli od tysięcy reguł w górę (może dziesiątek tysięcy).

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Postfix - filtrowanie treści

Post autor: webster » 2015-06-14, 14:21

chyba żart by coś takiego robić :D
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Pajaczek
Użytkownik
Posty: 1439
Rejestracja: 2006-08-03, 13:16
Lokalizacja: Winny Gród

Re: Postfix - filtrowanie treści

Post autor: Pajaczek » 2015-06-14, 18:06

No... to się pośmialiśmy, a teraz zaproponuj rozwiązanie, które nie będzie żartem. ;)

kubik
Użytkownik
Posty: 33
Rejestracja: 2013-01-21, 14:28

Re: Postfix - filtrowanie treści

Post autor: kubik » 2015-06-15, 06:07

Chłopaki dzięki za zainteresowanie problemem :D

pamiętam, że kiedyś kombinując cos na zasadzie:

Kod: Zaznacz cały

*.ala.*kota
miałem REJECT na wszystkie maile, jakby wykrywał taki ciąg w każdym mailu...

ODPOWIEDZ