Πίσω στο blog
Τεχνολογία Δημοσιεύθηκε 16.09.2026 1 λεπτά ανάγνωσης

Όταν η φόρμα επικοινωνίας λέει «Ευχαριστούμε» αλλά δεν φτάνει κανένα e-mail

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

Φανταστείτε ένα μικρό φυσικοθεραπευτήριο. Ο ιστότοπός του έχει φόρμα επικοινωνίας, και η φόρμα λειτουργεί – ή τουλάχιστον έτσι φαίνεται. Οι επισκέπτες τη συμπληρώνουν, πατούν «Αποστολή» και βλέπουν ένα φιλικό «Ευχαριστούμε, θα επικοινωνήσουμε σύντομα μαζί σας». Αυτό που δεν βλέπει κανείς: τα μηνύματα έχουν πάψει εδώ και καιρό να φτάνουν στα εισερχόμενα του φυσικοθεραπευτηρίου. Δεν υπάρχει σφάλμα, καμία επιστροφή μηνύματος στα εισερχόμενα κανενός, κανένα κόκκινο λαμπάκι πουθενά. Η φόρμα αποτυγχάνει σιωπηλά.

Γιατί δεν το αντιλαμβάνεται κανείς

Η σελίδα «Ευχαριστούμε» μιας φόρμας συνήθως σημαίνει μόνο ένα πράγμα: ο ιστότοπος προώθησε το μήνυμα. Το αν ένας διακομιστής αλληλογραφίας το αποδέχεται, το καταχωρίζει ως spam ή το απορρίπτει στην πορεία συμβαίνει αργότερα, εκτός του οπτικού πεδίου της φόρμας. Η συνάρτηση mail() της PHP, για παράδειγμα, αναφέρει επιτυχία μόλις το τοπικό σύστημα αποδεχθεί το μήνυμα για παράδοση – όχι όταν αυτό φτάσει σε κάποιον. Έτσι ο επισκέπτης λαμβάνει επιβεβαίωση και προχωρά. Ο ιδιοκτήτης, στο μεταξύ, βλέπει άδεια εισερχόμενα και υποθέτει ότι απλώς είναι ένας ήσυχος μήνας. Λιγότερα αιτήματα σπάνια ανησυχούν από μόνα τους: διακοπές, ο καιρός, η οικονομία – υπάρχει πάντα μια εξήγηση που ακούγεται πιο εύλογη από το «η φόρμα είναι χαλασμένη».

Ένα υποθετικό χρονολόγιο
  1. Ημέρα 0
    Μια τακτική ενημέρωση πρόσθετου εκτελείται κατά τη διάρκεια της νύχτας. Ο ιστότοπος φαίνεται ακριβώς όπως πριν.
  2. Ημέρα 1
    Φτάνει το τελευταίο μήνυμα. Κανείς δεν ξέρει ότι είναι το τελευταίο.
  3. Ημέρες 2–13
    Οι επισκέπτες συνεχίζουν να υποβάλλουν τη φόρμα και συνεχίζουν να βλέπουν «Ευχαριστούμε». Τίποτα δεν φτάνει στα εισερχόμενα.
  4. Ημέρα 14
    Κάποιος τηλεφωνεί και ρωτά, ελαφρώς ενοχλημένος, γιατί κανείς δεν απάντησε ποτέ στο αίτημά του.
  5. Ημέρα 15
    Η αιτία εντοπίζεται μέσα σε μία ώρα. Τα μηνύματα αυτών των δύο εβδομάδων έχουν χαθεί – εκτός αν η φόρμα κρατούσε και αντίγραφο.
Δεν πρόκειται για πραγματική περίπτωση – αλλά για ένα πολύ τυπικό μοτίβο.

Οι συνήθεις αιτίες

  • Άλλαξε ο κωδικός πρόσβασης SMTP ή ο πάροχος αλληλογραφίας. Η φόρμα συνεχίζει να συνδέεται με τα παλιά διαπιστευτήρια και ο διακομιστής αλληλογραφίας αρνείται – σιωπηλά, απ' όσο μπορεί να καταλάβει ο επισκέπτης.
  • PHP mail() χωρίς έλεγχο ταυτότητας. Ο διακομιστής ιστού στέλνει e-mail απευθείας, χωρίς να συνδεθεί σε κανονικό διακομιστή αλληλογραφίας. Πολλοί διακομιστές παραλαβής θεωρούν τέτοια μηνύματα ύποπτα: καταλήγουν στα ανεπιθύμητα ή απορρίπτονται κατευθείαν.
  • Τα SPF, DKIM και DMARC δεν ευθυγραμμίζονται. Πολλές φόρμες βάζουν τη διεύθυνση του επισκέπτη στο πεδίο From. Το μήνυμα τότε ισχυρίζεται ότι προέρχεται, ας πούμε, από μια διεύθυνση gmail.com, αλλά αποστέλλεται από τον διακομιστή ιστού σας – ακριβώς αυτό που έχει σχεδιαστεί να σταματά το DMARC.
  • Μια ενημέρωση πρόσθετου ή αλλαγή θέματος χαλά τη φόρμα ή το CAPTCHA της. Ένα αλλαγμένο πρότυπο αφαιρεί ένα πεδίο, ένα script δεν φορτώνεται πλέον ή το widget CAPTCHA εμφανίζεται χωρίς το script του – και κάθε υποβολή αποτυγχάνει στην επικύρωση.
  • Το γραμματοκιβώτιο παραλαβής είναι γεμάτο. Ο διακομιστής αλληλογραφίας αρνείται νέα μηνύματα, και η ειδοποίηση επιστροφής πηγαίνει σε μια διεύθυνση που δεν διαβάζει κανείς.
  • Το banner cookies μπλοκάρει το script της φόρμας. Αν το εργαλείο συγκατάθεσης κατατάσσει το CAPTCHA ή το script της φόρμας στο «μάρκετινγκ», οι επισκέπτες που απορρίπτουν τα cookies μπορεί να βλέπουν μια φόρμα που δεν μπορεί να υποβληθεί ή της οποίας οι υποβολές απορρίπτονται επειδή λείπει ένα token.
  • Ένα ληγμένο πιστοποιητικό TLS ή τομέας. Οι επισκέπτες βλέπουν μια προειδοποίηση του προγράμματος περιήγησης και φεύγουν, ή ο διακομιστής αλληλογραφίας δεν είναι πλέον προσβάσιμος με ασφάλεια. Αν λήξει ο τομέας του γραμματοκιβωτίου παραλαβής, η αλληλογραφία προς αυτό απλώς σταματά.
  • Ένα επίπεδο προσωρινής αποθήκευσης σερβίρει παλιές σελίδες. Μια προσωρινή αποθήκευση ολόκληρης της σελίδας μπορεί να παραδώσει μια φόρμα με ληγμένο token ασφαλείας (nonce ή token CSRF). Ο διακομιστής απορρίπτει την υποβολή και, ανάλογα με τη ρύθμιση, ο επισκέπτης δεν βλέπει κανένα σαφές σφάλμα.

Η παγίδα της διεύθυνσης From

Η τρίτη αιτία αξίζει πιο προσεκτική ματιά, επειδή πολλές ρυθμίσεις φορμών την έχουν ενσωματωμένη από προεπιλογή. Το DMARC ελέγχει αν ο τομέας στην ορατή διεύθυνση From ταιριάζει με έναν τομέα για τον οποίο εγγυώνται τα SPF ή DKIM. Αν η φόρμα στέλνει ένα μήνυμα «από» τη διεύθυνση του επισκέπτη, ο διακομιστής σας δεν είναι εξουσιοδοτημένος να στέλνει για τον τομέα αυτό, οπότε ο έλεγχος αποτυγχάνει. Ανάλογα με την πολιτική DMARC του τομέα του επισκέπτη και τον δικό σας πάροχο αλληλογραφίας, το μήνυμα καταλήγει στα ανεπιθύμητα ή απορρίπτεται. Η λύση είναι απλή: αποστολή από μια διεύθυνση του δικού σας τομέα και η διεύθυνση του επισκέπτη στο Reply-To. Το κλικ στο «Απάντηση» εξακολουθεί να φτάνει στον επισκέπτη.

Δύο τρόποι αποστολής του ίδιου μηνύματος φόρμας
Εύθραυστο
  • From: η διεύθυνση του επισκέπτη
  • Χωρίς Reply-To
  • PHP mail() απευθείας από τον διακομιστή ιστού
  • Χωρίς SPF, DKIM ή DMARC για τον τομέα αποστολής
  • Το μήνυμα υπάρχει μόνο ως e-mail
Ανθεκτικό
  • From: μια διεύθυνση του δικού σας τομέα, π.χ. form@yourdomain
  • Reply-To: η διεύθυνση του επισκέπτη
  • SMTP με έλεγχο ταυτότητας ή υπηρεσία αποστολής
  • SPF, DKIM και DMARC ρυθμισμένα και ευθυγραμμισμένα
  • Ένα αντίγραφο αποθηκεύεται επίσης στη βάση δεδομένων
Η δεξιά στήλη δεν απαιτεί σχεδόν καθόλου περισσότερη δουλειά – είναι κυρίως θέμα ρυθμίσεων.

Τι να κάνετε

  1. 1Στέλνετε τακτικά ένα δοκιμαστικό μήνυμα μέσω της δικής σας φόρμας – τουλάχιστον μηνιαίως, και πάντα μετά από ενημερώσεις, αλλαγές θέματος ή αλλαγές στις ρυθμίσεις αλληλογραφίας. Επισημάνετέ το σαφώς ως δοκιμή, ώστε να μην το απαντήσει κανείς.
  2. 2Γνωρίζετε τον κανονικό σας ρυθμό. Αν η φόρμα φέρνει συνήθως μερικά μηνύματα την εβδομάδα, δύο εβδομάδες σιωπής είναι λόγος για έλεγχο, όχι ένας ήσυχος μήνας.
  3. 3Στέλνετε μέσω SMTP με έλεγχο ταυτότητας – μέσω του παρόχου αλληλογραφίας σας ή μιας ειδικής υπηρεσίας αποστολής – αντί να βασίζεστε στο PHP mail().
  4. 4Χρησιμοποιείτε τον δικό σας τομέα στο From και τη διεύθυνση του επισκέπτη στο Reply-To. Στη συνέχεια ρυθμίστε SPF, DKIM και DMARC για τον τομέα αυτό, ώστε τα μηνύματα να περνούν τους ελέγχους.
  5. 5Κρατάτε αντίγραφο κάθε υποβολής στη βάση δεδομένων. Πολλά πρόσθετα φορμών το προσφέρουν, μερικές φορές ως επέκταση. Αν αποτύχει η αλληλογραφία, τα αιτήματα εξακολουθούν να υπάρχουν.
  6. 6Ελέγχετε τη φόρμα μετά από κάθε ενημέρωση πρόσθετου – μαζί με το CAPTCHA, και επίσης με απορριφθέντα cookies.

Τέτοιοι έλεγχοι ξεχνιούνται εύκολα, γι' αυτό αξίζει να αυτοματοποιηθούν. Με λογαριασμό και επαληθευμένο τομέα, το formexposed μπορεί να στείλει μια σαφώς επισημασμένη δοκιμαστική υποβολή και να ελέγξει αν φτάνει πράγματι (ο έλεγχος παράδοσης, μόνο κατόπιν ενεργοποίησης). Ανιχνεύει επίσης τη σιωπή – μια φόρμα που κανονικά λαμβάνει μηνύματα και ξαφνικά δεν λαμβάνει κανένα – και ελέγχει τα SPF, DKIM και DMARC των e-mail ειδοποίησης, καθώς και τη λήξη του πιστοποιητικού TLS και του τομέα. Ειδοποιείστε μόνο όταν κάτι αλλάζει.

Αν θέλετε απλώς μια πρώτη ματιά: ένας δωρεάν έλεγχος στο formexposed.com δεν χρειάζεται λογαριασμό και δεν υποβάλλει τίποτα. Μεταξύ άλλων, δείχνει αν ένα CAPTCHA υπάρχει αλλά είναι χαλασμένο – ένα widget χωρίς το script του, ένα δημόσιο δοκιμαστικό κλειδί, σφάλματα στο πρόγραμμα περιήγησης – ένας από τους πιο αθόρυβους τρόπους με τους οποίους μια φόρμα παύει να λειτουργεί. Το αν τα μηνύματα φτάνουν πράγματι μπορεί να επιβεβαιωθεί μόνο με ένα πραγματικό δοκιμαστικό μήνυμα, οπότε στείλτε ένα σήμερα.