Μετάβαση στο περιεχόμενο

Ρυθμίσεις cookies

Επιλέξτε ανά κατηγορία ποια cookies επιτρέπετε. Μπορείτε να αλλάξετε την επιλογή σας οποιαδήποτε στιγμή μέσω των Ρυθμίσεων cookies στο κάτω μέρος κάθε σελίδας. Δήλωση απορρήτου

Απαραίτητα

Πάντα ενεργά

Χρειάζονται για τη σύνδεση, για να διατηρείται το καλάθι σας και για να θυμόμαστε τις επιλογές σας. Είναι πάντα ενεργά.

Ποια cookies;
  • weboke_sessie, weboke_klant, weboke_remember: η συνεδρία σας και η παραμονή σε σύνδεση
  • weboke_basket: το καλάθι σας
  • wkBtwIncl: εμφάνιση τιμών με ή χωρίς ΦΠΑ
  • wok_cookies: η επιλογή σας για τα cookies, 12 μήνες

Μετρούν ποια διαφήμιση οδηγεί σε επίσκεψη ή παραγγελία, ώστε να μην πληρώνουμε για διαφημίσεις που δεν αποδίδουν.

Ποια cookies;
  • Google Ads μέσω Google Tag Manager (_gcl_au, _gcl_aw), έως 90 ημέρες
  • OpenAI Ads, διαφημίσεις στο ChatGPT
  • wok_aff: μέσω ποιου συνεργάτη ήρθατε σε εμάς (πρόγραμμα συνεργατών), 60 ημέρες

4,6

Χώρα και γλώσσα

Κάθε χώρα έχει τη δική της ιστοσελίδα, με τιμές και ΦΠΑ της χώρας αυτής.

Προβολή

Πώς λειτουργούν τα φίλτρα

Ενότητα 6: Αυτόματα: φίλτρα και απουσία · Χρόνος ανάγνωσης: 10 λεπτά

Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να εξηγήσετε πού και πότε εκτελούνται τα φίλτρα, να διαβάσετε ένα script φίλτρων σε Sieve και να προβλέψετε σε ποιον φάκελο θα καταλήξει ένα εισερχόμενο μήνυμα.

Βασικές έννοιες: φίλτρο, Sieve, ManageSieve, σετ φίλτρων, κανόνας, συνθήκη, ενέργεια, σιωπηρή διατήρηση, stop, περιέχει, είναι ίσο με, ταιριάζει με την έκφραση

Τα φίλτρα εκτελούνται στον server

Ένα φίλτρο ταξινομεί αυτόματα την αλληλογραφία σας: μηνύματα με "τιμολόγιο" στο θέμα πηγαίνουν στον φάκελο Τιμολόγια, τα ενημερωτικά δελτία σε δικό τους φάκελο. Το σημαντικότερο που πρέπει να γνωρίζετε: η ταξινόμηση αυτή δεν γίνεται στο webmail, αλλά στον mail server, τη στιγμή που ένα μήνυμα παραδίδεται στο γραμματοκιβώτιό σας.

Από αυτό προκύπτουν τρία πράγματα:

  • Τα φίλτρα λειτουργούν και όταν το webmail είναι κλειστό. Ο φορητός σας υπολογιστής μπορεί να είναι απενεργοποιημένος. Το τηλέφωνο βλέπει το μήνυμα αμέσως στον σωστό φάκελο.
  • Τα φίλτρα λειτουργούν μόνο σε νέα μηνύματα. Τα μηνύματα που βρίσκονται ήδη στο γραμματοκιβώτιό σας μένουν εκεί που είναι. Αν δημιουργήσετε σήμερα ένα φίλτρο, μετακινείτε τα παλιά μηνύματα μόνοι σας.
  • Τα φίλτρα ισχύουν για ένα γραμματοκιβώτιο. Κάθε γραμματοκιβώτιο έχει τα δικά του φίλτρα. Αν θέλετε να ρυθμίσετε κάτι για όλα τα γραμματοκιβώτια του domain σας, για παράδειγμα να μπλοκάρετε έναν αποστολέα, το κάνετε στον πίνακα διαχείρισης του hosting σας.

Τα φίλτρα είναι γραμμένα σε Sieve, μια απλή γλώσσα ειδικά για το φιλτράρισμα email (RFC 5228). Ο mail server της WebOké χρησιμοποιεί το Dovecot με το Pigeonhole, την υλοποίηση Sieve του Dovecot. Το webmail μετατρέπει τις επιλογές σας στη φόρμα σε ένα script Sieve και το στέλνει στον server μέσω του πρωτοκόλλου ManageSieve (RFC 5804). Δεν χρειάζεται να γράψετε Sieve, όμως όποιος μπορεί να το διαβάσει καταλαβαίνει ακριβώς τι κάνουν τα φίλτρα του.

Σετ φίλτρων, κανόνες, συνθήκες και ενέργειες

Ένα σετ φίλτρων είναι ολόκληρο το script: όλα τα φίλτρα του γραμματοκιβωτίου σας σε ένα αρχείο. Μπορείτε να έχετε περισσότερα σετ φίλτρων, αλλά πάντα μόνο ένα είναι ενεργό.

Στο σετ φίλτρων βρίσκονται τα φίλτρα, που στο webmail ονομάζονται επίσης κανόνες. Κάθε φίλτρο έχει:

  • ένα όνομα, μόνο για εσάς·
  • ένα εύρος αναζήτησης: το μήνυμα πρέπει να πληροί όλους τους κανόνες, έναν από τους κανόνες, ή το φίλτρο ισχύει για όλα τα μηνύματα·
  • μία ή περισσότερες συνθήκες: πού κοιτάζει το φίλτρο (θέμα, αποστολέας, άλλη κεφαλίδα), πώς συγκρίνει και με ποιο κείμενο·
  • μία ή περισσότερες ενέργειες: τι συμβαίνει όταν ισχύουν οι συνθήκες.

Για τη σύγκριση υπάρχουν τρεις τρόποι:

Στο webmailΣε SieveΣημασία
περιέχει:containsτο κείμενο υπάρχει κάπου στην κεφαλίδα
είναι ίσο με:isη κεφαλίδα είναι ακριβώς αυτό το κείμενο
ταιριάζει με την έκφραση:matchesμοτίβο με * (μηδέν ή περισσότεροι χαρακτήρες) και ? (ακριβώς ένας χαρακτήρας)

Τα κεφαλαία γράμματα δεν παίζουν ρόλο σε κανέναν από τους τρεις τρόπους. Το Sieve συγκρίνει από προεπιλογή με τον κανόνα i;ascii-casemap, που αντιμετωπίζει κεφαλαία και πεζά γράμματα ως ίδια. Το "τιμολόγιο" βρίσκει λοιπόν και το "ΤΙΜΟΛΌΓΙΟ" και το "Τιμολόγιο".

Έτσι μοιάζει ένα σετ φίλτρων

Στο webmail μπορείτε να δείτε το σετ φίλτρων ως κείμενο από Φίλτρα > Ενέργειες > Επεξεργασία ομάδας φίλτρων. Ένα παράδειγμα, όπως το γράφει το webmail:

require ["fileinto"];
# rule:[Ενημερωτικά]
if exists "List-Id"
{
	fileinto "Ενημερωτικά";
	stop;
}
# rule:[Τιμολόγια]
if allof (header :contains "subject" "τιμολόγιο")
{
	fileinto "Τιμολόγια";
}
# rule:[Συνάδελφος Νίκος]
if false # header :contains "from" "nikos@example.com"
{
	fileinto "INBOX.Ομάδα";
}

Γραμμή προς γραμμή:

  • Το require ["fileinto"]; ζητά από τον server την επέκταση που χρειάζεται για τη μετακίνηση σε φάκελο. Το webmail το προσθέτει μόνο του στην αρχή, μαζί με όλες τις επεκτάσεις που χρησιμοποιεί το script.
  • Το # rule:[Ενημερωτικά] είναι σχόλιο. Με αυτό το webmail αναγνωρίζει το όνομα του φίλτρου σας. Ο server παραλείπει τη γραμμή.
  • Το if exists "List-Id" είναι η συνθήκη: το μήνυμα έχει κεφαλίδα List-Id. Τα ενημερωτικά δελτία και οι λίστες αλληλογραφίας την έχουν (RFC 2919).
  • Το fileinto "Ενημερωτικά"; μετακινεί το μήνυμα στον φάκελο Ενημερωτικά. Το όνομα του φακέλου είναι το πλήρες όνομα στον server, με την τελεία ως διαχωριστικό (μάθημα 5.1). Ένας φάκελος κάτω από τα Εισερχόμενα ονομάζεται λοιπόν INBOX.Ομάδα.
  • Το stop; σταματά ολόκληρο το script. Τα επόμενα φίλτρα δεν εξετάζουν πλέον αυτό το μήνυμα. Στο webmail η ενέργεια αυτή ονομάζεται Παύση επαλήθευσης κανόνων.
  • Το if false # ... είναι ένα απενεργοποιημένο φίλτρο. Αν απενεργοποιήσετε την επιλογή Ενεργό φίλτρο, το webmail κάνει τη συνθήκη false: ποτέ αληθής. Η παλιά συνθήκη μένει ως σχόλιο, ώστε να μπορείτε να την ενεργοποιήσετε ξανά αργότερα.
Το Sieve-script του συνόλου φίλτρων στην Επεξεργασία συνόλου φίλτρων
Τα φίλτρα σας όπως τα διαβάζει ο server: ένα Sieve-script

Από πάνω προς τα κάτω

Ο server διαβάζει το script από πάνω προς τα κάτω και εξετάζει κάθε φίλτρο. Ισχύουν τρεις κανόνες.

1. Χωρίς ενέργεια, το μήνυμα μένει στα Εισερχόμενα. Το Sieve γνωρίζει τη σιωπηρή διατήρηση (implicit keep, RFC 5228, ενότητα 2.10.2): αν κανένα φίλτρο δεν κάνει τίποτα, το μήνυμα καταλήγει κανονικά στα Εισερχόμενα.

2. Μετά από μετακίνηση, το μήνυμα δεν βρίσκεται επιπλέον στα Εισερχόμενα. Ένα fileinto απενεργοποιεί τη σιωπηρή διατήρηση. Το μήνυμα καταλήγει στον επιλεγμένο φάκελο και όχι παράλληλα στα Εισερχόμενα. Αν θέλετε και τα δύο, χρησιμοποιήστε την ενέργεια Αντιγραφη μυνηματος σε.

3. Χωρίς stop, εξετάζουν το μήνυμα και τα επόμενα φίλτρα. Αν λείπει το stop, ο server συνεχίζει με το επόμενο φίλτρο. Αν ταιριάζει και αυτό το φίλτρο, ο server εκτελεί και εκείνη την ενέργεια. Δύο μετακινήσεις σε δύο φακέλους σημαίνουν ότι το μήνυμα καταλήγει και στους δύο φακέλους. Με το stop αποφασίζει το πρώτο φίλτρο που ταιριάζει.

Γι' αυτό η σειρά έχει σημασία. Στο παραπάνω παράδειγμα το Ενημερωτικά βρίσκεται πάνω από το Τιμολόγια, με stop. Ένα ενημερωτικό με "Νέο τιμολόγιο" στο θέμα πηγαίνει λοιπόν στα Ενημερωτικά και όχι στα Τιμολόγια. Αν αντιστρέψετε τη σειρά, το ίδιο ενημερωτικό καταλήγει στα Τιμολόγια, επειδή εκείνο το φίλτρο δεν έχει stop και τώρα έρχεται πρώτο. Το ενημερωτικό θα βρισκόταν μάλιστα και στους δύο φακέλους. Γι' αυτό τοποθετήστε τα πιο συγκεκριμένα φίλτρα στην κορυφή και δώστε τους stop.

Δημιουργία φίλτρου στο webmail 1:08

Περάστε ένα μήνυμα βήμα βήμα: έτσι το προβλέπετε

Πάρτε ένα μήνυμα και ακολουθήστε το script όπως το κάνει ο server:

  1. Ξεκινήστε από το πρώτο φίλτρο. Είναι απενεργοποιημένο (if false); Παραλείψτε το.
  2. Ισχύει η συνθήκη; Κοιτάξτε προσεκτικά την κεφαλίδα: subject είναι το θέμα, from ο αποστολέας με όνομα και διεύθυνση, to ο παραλήπτης.
  3. Αν ναι: εκτελέστε τις ενέργειες. Αν υπάρχει stop, τελειώσατε.
  4. Αν όχι, ή αν δεν υπάρχει stop: προχωρήστε στο επόμενο φίλτρο.
  5. Στο τέλος: αν κανένα φίλτρο δεν μετακίνησε ή δεν διέγραψε το μήνυμα, αυτό βρίσκεται στα Εισερχόμενα (INBOX).

Με αυτά τα πέντε βήματα μπορείτε να διαβάσετε κάθε script, ακόμη και αν είναι μεγάλο.

Στην πράξη: έτσι λειτουργεί στο webmail

Τα φίλτρα θα τα βρείτε στις Ρυθμίσεις > Φίλτρα. Η λίστα δείχνει τα φίλτρα σας με τη σειρά που τα εκτελεί ο server· τα σύρετε για να αλλάξετε τη σειρά. Στις Ενέργειες υπάρχει η Επεξεργασία ομάδας φίλτρων: εκεί βλέπετε και αλλάζετε το script ως κείμενο. Τα βήματα για ένα νέο φίλτρο θα τα βρείτε στον Οδηγό Roundcube, στην ενότητα Δημιουργία φίλτρου. Σε άλλα webmail λειτουργεί παρόμοια: το Gmail έχει φίλτρα, το Outlook.com κανόνες. Αυτά δεν χρησιμοποιούν Sieve, αλλά και εκεί ισχύουν η σειρά και η διακοπή.

Σύνοψη

  • Τα φίλτρα εκτελούνται στον mail server κατά την παράδοση, άρα και όταν το webmail είναι κλειστό, και μόνο σε νέα μηνύματα.
  • Το webmail γράφει τα φίλτρα σας ως script Sieve (RFC 5228) και το αποθηκεύει στον server μέσω ManageSieve.
  • Τα περιέχει, είναι ίσο με και ταιριάζει με την έκφραση δεν κάνουν από προεπιλογή διάκριση πεζών και κεφαλαίων.
  • Αν κανένα φίλτρο δεν κάνει τίποτα, το μήνυμα μένει στα Εισερχόμενα· μετά από μετακίνηση δεν βρίσκεται επιπλέον στα Εισερχόμενα.
  • Τα φίλτρα εκτελούνται από πάνω προς τα κάτω· το stop τερματίζει το script, άρα η σειρά καθορίζει το αποτέλεσμα.

Κουίζ

1. Σήμερα δημιουργείτε ένα φίλτρο για τον φάκελο Τιμολόγια. Τι γίνεται με τα τιμολόγια που βρίσκονται ήδη στα Εισερχόμενα;



2. Ένα φίλτρο με "Θέμα περιέχει τιμολόγιο" λαμβάνει ένα μήνυμα με θέμα "ΤΙΜΟΛΌΓΙΟ 118". Τι συμβαίνει;



3. Τι σημαίνει το if false # header :contains "from" "nikos@example.com" σε ένα σετ φίλτρων;



4. Ένα μήνυμα ταιριάζει με το πρώτο φίλτρο (μετακίνηση στα Τιμολόγια, χωρίς stop) και με το δεύτερο (μετακίνηση στους Πελάτες). Πού καταλήγει;



5. Πότε διατηρεί ο server ένα μήνυμα στα Εισερχόμενα;



Άσκηση

Άσκηση A6.1: Πού καταλήγει αυτό το μήνυμα; Ανοίξτε το υλικό filters-1.txt, ένα σετ φίλτρων όπως το γράφει το webmail, και το berichten-1.txt, με τις κεφαλίδες (headers) τεσσάρων εισερχόμενων μηνυμάτων, αριθμημένων από 1 έως 4. Ελέγξτε κάθε μήνυμα σύμφωνα με τα πέντε βήματα αυτού του μαθήματος: από πάνω προς τα κάτω, παραλείποντας τα απενεργοποιημένα φίλτρα και προσέχοντας το stop. Συμπληρώστε για κάθε μήνυμα το όνομα του φακέλου όπου καταλήγει, ακριβώς όπως εμφανίζεται στο script· αν το μήνυμα καταλήγει στα Εισερχόμενα, συμπληρώστε INBOX. Το πρόγραμμα συγκρίνει τις τέσσερις απαντήσεις σας με το κλειδί απαντήσεων και δείχνει για κάθε μήνυμα ποιο φίλτρο ήταν καθοριστικό.

Άσκηση A6.1: Πού καταλήγει αυτό το μήνυμα;

Αρχείο για αυτή την άσκηση: filters-1.txt, berichten-1.txt





Ό,τι συμπληρώνετε και ό,τι βρίσκουμε δεν το αποθηκεύουμε. Το πρόγραμμα περιήγησής σας θυμάται τις απαντήσεις σας και αν περάσατε την άσκηση. Αν έχετε εγγραφεί, αποθηκεύουμε μόνο ότι η άσκηση ήταν (σχεδόν) σωστή στο Τα μαθήματά μου· εκεί μπορείτε και να το διαγράψετε.

Περαιτέρω ανάγνωση

Όπου περιγράφονται βήματα στο webmail, ισχύουν για το webmail της WebOké· σε άλλα webmail λειτουργεί παρόμοια.

Μια στιγμή…

Ρυθμίστε τα domains σας

Ρυθμίστε για κάθε domain τους nameservers, τη σύνδεση με το hosting σας και ποιος θα είναι ο κάτοχος.

Φόρτωση των domains σας…