Ενότητα 6 · 6.2
Σχεδιασμός και δοκιμή φίλτρων
Ενότητα 6: Αυτόματα: φίλτρα και απουσία · Χρόνος ανάγνωσης: 9 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να μετατρέψετε μια ανάγκη σε φίλτρο που κάνει ακριβώς ό,τι εννοείτε, να αποφεύγετε τις γνωστές παγίδες και να δοκιμάζετε το φίλτρο σας πριν βασιστείτε σε αυτό.
Βασικές έννοιες: επιλογή κεφαλίδας (header), From, To, List-Id, Subject, πολύ ευρύ φίλτρο, σειρά, ανακατεύθυνση, Δημιουργία φίλτρου, δοκιμαστικό μήνυμα, Λήψη
Από την ανάγκη στον κανόνα
Ένα καλό φίλτρο ξεκινά με μια πρόταση σε απλή γλώσσα: "Όλα τα μηνύματα από τον χονδρέμπορο πρέπει να πηγαίνουν στον φάκελο Προμηθευτές." Στη συνέχεια κάνετε τρεις ερωτήσεις:
- Από τι αναγνωρίζετε με βεβαιότητα αυτό το μήνυμα; Όχι από το ότι "συνήθως αφορά παραγγελίες", αλλά από κάτι που υπάρχει πάντα στις κεφαλίδες (headers): μια διεύθυνση, ένα domain, μια κεφαλίδα που έχει μόνο αυτό το μήνυμα.
- Τι πρέπει να γίνει; Μετακίνηση, αντιγραφή, ανακατεύθυνση, διαγραφή; Και πρέπει το script να σταματήσει μετά;
- Τι δεν πρέπει να επηρεάσει το φίλτρο; Σκεφτείτε το μήνυμα που μοιάζει πολύ με αυτό. Εκεί ακριβώς είναι που τα φίλτρα κάνουν λάθη.
Σε ποια κεφαλίδα φιλτράρετε
Η επιλογή της κεφαλίδας καθορίζει πόσο αξιόπιστο είναι το φίλτρο σας.
- From (Από) για μηνύματα από ένα πρόσωπο ή μια εταιρεία. Φιλτράρετε με βάση τη διεύθυνση ή το domain: το
@example.netπιάνει όλους σε αυτή την εταιρεία. Μη φιλτράρετε με βάση το εμφανιζόμενο όνομα: ο καθένας μπορεί να συμπληρώσει οποιοδήποτε όνομα (μάθημα 2.2). - To (Προς) για μηνύματα που φτάνουν μέσω άλλης διεύθυνσης. Αν η διεύθυνση info@example.com ανακατευθύνεται στο γραμματοκιβώτιο της Sanne, εκείνη αναγνωρίζει αυτά τα μηνύματα από το info@ στην κεφαλίδα To. Προσοχή: ένα μήνυμα που κάποιος έστειλε με Bcc δεν έχει αυτή τη διεύθυνση στο To.
- List-Id για newsletters και λίστες αλληλογραφίας. Οι σωστοί αποστολείς προσθέτουν αυτή την κεφαλίδα (RFC 2919), με σταθερό κωδικό για κάθε λίστα. Είναι πιο αξιόπιστη από τη διεύθυνση του αποστολέα, η οποία στα newsletters αλλάζει μερικές φορές.
- Subject (Θέμα) μόνο όταν το θέμα είναι σταθερό, όπως στις αυτόματες ειδοποιήσεις ενός συστήματος. Σε όλες τις άλλες περιπτώσεις το θέμα είναι η λιγότερο αξιόπιστη επιλογή: ο καθένας μπορεί να γράψει εκεί ό,τι θέλει.
Ένα φίλτρο για τα newsletters ενός συγκεκριμένου χονδρεμπόρου μοιάζει έτσι σε Sieve:
# rule:[Groothandel]
if header :contains "List-Id" "nieuws.example.org"
{
fileinto "INBOX.Leveranciers";
stop;
}Τέσσερις παγίδες
1. Πολύ ευρύ. Το "Θέμα περιέχει factuur" φαίνεται πρακτικό, αλλά πιάνει και phishing με θέμα "Uw openstaande factuur" (Το ανεξόφλητο τιμολόγιό σας) που το φίλτρο spam δεν σταμάτησε. Το μήνυμα αυτό καταλήγει τακτοποιημένο ανάμεσα στα πραγματικά σας τιμολόγια, όπου το εξετάζετε λιγότερο κριτικά. Κάντε το πιο στενό: "Από περιέχει @example.net και Θέμα περιέχει factuur", με την επιλογή "ταιριάζουν με όλους τους παρακάτω κανόνες".
2. Σειρά. Τα φίλτρα εκτελούνται από πάνω προς τα κάτω (μάθημα 6.1). Ένα ευρύ φίλτρο με stop στην κορυφή μπορεί να θέσει εκτός λειτουργίας ένα πιο συγκεκριμένο φίλτρο από κάτω. Βάλτε το συγκεκριμένο φίλτρο στην κορυφή: πρώτα "newsletter από τον χονδρέμπορο" και μόνο μετά "όλα από example.org".
3. Κεφαλαία γράμματα και κενά. Το περιέχει δεν κάνει διάκριση σε κεφαλαία γράμματα, οπότε δεν χρειάζεται να το σκεφτείτε. Ένα περιττό κενό ή ένα τυπογραφικό λάθος στο κείμενο όμως κάνει το φίλτρο να αποτύχει. Το "factuur " με ένα κενό στο τέλος δεν βρίσκει το "factuur.".
4. Ένας φάκελος που αλλάζει αργότερα. Ένα φίλτρο παραπέμπει στο πλήρες όνομα ενός φακέλου. Αν μετονομάσετε τον φάκελο ή τον μετακινήσετε κάτω από άλλον φάκελο, το όνομα στο φίλτρο δεν είναι πλέον σωστό. Γι' αυτό ελέγχετε τα φίλτρα σας μετά από κάθε αλλαγή στους φακέλους σας.
Ανακατεύθυνση σε εξωτερική διεύθυνση
Με την ενέργεια Ανακατεύθυνση μηνύματος σε μπορείτε να στέλνετε μηνύματα σε άλλη διεύθυνση, για παράδειγμα σε μια διεύθυνση στο Gmail. Αυτό έχει δύο μειονεκτήματα.
Πρώτον, ανακατευθύνετε και το spam που δεν σταμάτησε το φίλτρο spam. Η υπηρεσία παραλαβής βλέπει τον δικό σας mail server ως τον server που παραδίδει αυτό το spam. Αυτό μπορεί να βλάψει τη φήμη του server σας και, κατ' επέκταση, την παράδοση όλων των κανονικών σας μηνυμάτων.
Δεύτερον, οι έλεγχοι του αποστολέα δεν ισχύουν πλέον. Ένα μήνυμα από τον ahmed@example.net που ανακατευθύνεται φτάνει στο Gmail από τον δικό σας server. Ο κανόνας SPF του example.net δεν αναφέρει τον server σας, οπότε ο έλεγχος αποτυγχάνει. Έτσι το μήνυμα μπορεί να καταλήξει στο spam ή να απορριφθεί. Το μάθημα Τάξη στο email σας εξηγεί αναλυτικά το SPF και το DMARC.
Γι' αυτό κάνετε ανακατεύθυνση μόνο σε διευθύνσεις που διαχειρίζεστε εσείς, και κατά προτίμηση με μια διεύθυνση ανακατεύθυνσης (forwarder) στον πίνακα διαχείρισης παρά με φίλτρο.
Δημιουργία φίλτρου από ένα μήνυμα
Ο πιο γρήγορος τρόπος να δημιουργήσετε ένα φίλτρο είναι από ένα μήνυμα που θέλετε να ταξινομείται. Ανοίξτε το μήνυμα και επιλέξτε Περισσότερα > Δημιουργία φίλτρου. Η webmail συμπληρώνει ήδη τον αποστολέα και το θέμα. Αφαιρέστε ό,τι δεν χρειάζεστε: συνήθως αρκεί ο αποστολέας, ενώ το θέμα κάνει το φίλτρο υπερβολικά στενό.

Δοκιμή πριν βασιστείτε σε αυτό
Ένα φίλτρο που αποτυγχάνει αθόρυβα το αντιλαμβάνεστε μόνο όταν χάσετε ένα σημαντικό μήνυμα. Γι' αυτό να κάνετε πάντα δοκιμή:
- Ένα δοκιμαστικό μήνυμα στον εαυτό σας. Το δικό σας μήνυμα περνά από τον mail server προς το γραμματοκιβώτιό σας, οπότε τα φίλτρα εκτελούνται. Βάλτε τη λέξη στο θέμα και ελέγξτε αν το μήνυμα βρίσκεται στον σωστό φάκελο.
- Δοκιμάστε και ό,τι δεν πρέπει να επηρεαστεί. Στείλτε ένα μήνυμα χωρίς τη λέξη και ελέγξτε αν παραμένει στα Εισερχόμενα. Δοκιμάστε επίσης με κεφαλαία γράμματα.
- Διαβάστε το script. Με Φίλτρα > Ενέργειες > Επεξεργασία ομάδας φίλτρων βλέπετε τι έχει πραγματικά αποθηκεύσει η webmail. Αν υπάρχει
if false, το φίλτρο είναι απενεργοποιημένο. - Κρατήστε ένα αντίγραφο. Με Φίλτρα > Ενέργειες > Λήψη παίρνετε ολόκληρο το script ως αρχείο. Χρήσιμο ως αντίγραφο ασφαλείας και για σύγκριση όταν κάτι ξαφνικά λειτουργεί διαφορετικά.

Φίλτρο ανά γραμματοκιβώτιο ή για ολόκληρο το domain
Τα φίλτρα στη webmail ισχύουν για ένα γραμματοκιβώτιο. Αν θέλετε να μπλοκάρετε έναν αποστολέα για όλα τα γραμματοκιβώτια του domain σας ή να κάνετε το φίλτρο spam πιο αυστηρό, αυτό γίνεται στον πίνακα διαχείρισης του hosting σας. Στο WebOké αυτός είναι το DirectAdmin, με μεταξύ άλλων την ενότητα SPAM Filters. Μη ρυθμίζετε το ίδιο πράγμα σε δύο σημεία: αργότερα δεν θα ξέρετε ποιος κανόνας σταμάτησε ένα μήνυμα.
Στην πράξη: έτσι λειτουργεί στη webmail
Δημιουργείτε φίλτρα στις Ρυθμίσεις > Φίλτρα με Δημιουργία ή από ένα μήνυμα με Περισσότερα > Δημιουργία φίλτρου. Το script το βλέπετε στα Φίλτρα > Ενέργειες > Επεξεργασία ομάδας φίλτρων, και η Λήψη σάς δίνει ένα αντίγραφο. Το Εγχειρίδιο Roundcube περιέχει τα βήματα και έναν πίνακα με χρήσιμα φίλτρα. Σε άλλες webmail λειτουργεί παρόμοια: το Gmail δημιουργεί φίλτρα από μια αναζήτηση, το Outlook.com έχει κανόνες με συνθήκες και ενέργειες.
Σύνοψη
- Ξεκινήστε με μια πρόταση σε απλή γλώσσα και αναρωτηθείτε από τι αναγνωρίζετε με βεβαιότητα το μήνυμα και τι δεν πρέπει να επηρεάσει το φίλτρο.
- Φιλτράρετε με βάση διεύθυνση, domain, To ή List-Id· το θέμα είναι το λιγότερο αξιόπιστο.
- Παγίδες: πολύ ευρύ φίλτρο, λάθος σειρά, τυπογραφικά λάθη και κενά, φάκελος που μετονομάστηκε.
- Η ανακατεύθυνση σε εξωτερική διεύθυνση στέλνει και spam και κάνει το SPF να αποτυγχάνει· κάντε την μόνο προς διευθύνσεις που διαχειρίζεστε εσείς.
- Δοκιμάστε με μήνυμα στον εαυτό σας, και για ό,τι δεν πρέπει να επηρεάσει το φίλτρο, και κρατήστε αντίγραφο με τη Λήψη.
Κουίζ
Άσκηση
Άσκηση A6.2: Έλεγχος του δικού σας φίλτρου. Δημιουργήστε στο δικό σας γραμματοκιβώτιο ένα φίλτρο που μετακινεί μηνύματα με μια λέξη της επιλογής σας στο θέμα σε έναν φάκελο της επιλογής σας. Συμπληρώστε στη σελίδα τη λέξη και το όνομα του φακέλου. Στη συνέχεια επικολλήστε το σετ φίλτρων σας (Ρυθμίσεις > Φίλτρα > Ενέργειες > Επεξεργασία ομάδας φίλτρων, επιλογή όλων και αντιγραφή) ή ανεβάστε το αρχείο που παίρνετε με τη Λήψη. Το πρόγραμμα διαβάζει το Sieve script στη μνήμη (δεν αποθηκεύεται τίποτα) και εκτελεί τρία δοκιμαστικά μηνύματα: ένα μήνυμα με τη λέξη σας στο θέμα (πρέπει να πάει στον φάκελό σας), ένα μήνυμα χωρίς τη λέξη (πρέπει να παραμείνει στα Εισερχόμενα) και ένα μήνυμα με τη λέξη σας σε κεφαλαία γράμματα (πρέπει επίσης να πάει στον φάκελό σας). Πράσινο αν είναι σωστά και τα τρία. Λαμβάνετε ειδοποίηση αν το φίλτρο είναι απενεργοποιημένο, αν το όνομα του φακέλου στο script δεν ταιριάζει με αυτό που συμπληρώσατε ή αν το script ανακατευθύνει μηνύματα σε διεύθυνση εκτός του δικού σας domain.
Περαιτέρω ανάγνωση
Όπου αναφέρονται βήματα στη webmail, ισχύουν για τη webmail του WebOké· σε άλλες webmail λειτουργεί παρόμοια.
- Roundcube Webmail 7.1: Δημιουργία φίλτρου
- Roundcube Webmail 7.2: Παραδείγματα χρήσιμων φίλτρων
- Κανόνες email στον server (φίλτρα στον server)
- Προώθηση email σε άλλη διεύθυνση (forwarders, το catch-all δεν συνιστάται)
- Δωρεάν μάθημα Το email σε τάξη: ρύθμιση και σωστή παράδοση 3.3: Aliases, ανακατεύθυνση και catch-all: χρήσιμα, αλλά με κινδύνους
- Δωρεάν μάθημα Το email σε τάξη: ρύθμιση και σωστή παράδοση 4.1: Γιατί ένα email καταλήγει στα ανεπιθύμητα
- RFC 2919, List-Id (στα αγγλικά): https://www.rfc-editor.org/rfc/rfc2919
