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