Ενότητα 7 · 7.3
Mail από τον ιστότοπό σας και φόρμες
Ενότητα 7: Newsletters και email από τον ιστότοπό σας · Χρόνος ανάγνωσης: 11 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να ρυθμίσετε το mail του ιστότοπού σας (φόρμες επικοινωνίας, επιβεβαιώσεις παραγγελιών, ειδοποιήσεις WordPress) έτσι ώστε να φτάνει στον παραλήπτη, να μη δημιουργεί προβλήματα DMARC και να μην επιτρέπει κατάχρηση του πακέτου σας.
Κεντρικές έννοιες: PHP mail(), SMTP με σύνδεση, envelope-αποστολέας, From έναντι Reply-To, η διεύθυνση του επισκέπτη ποτέ ως From, SMTP-plugin, transactional mail, spam φορμών, captcha, honeypot, όριο αποστολής, τοπική παράδοση όταν το MX βρίσκεται αλλού
Ο ιστότοπός σας είναι επίσης πρόγραμμα email
Ο ιστότοπός σας στέλνει περισσότερο mail από όσο νομίζετε. Μια φόρμα επικοινωνίας σας στέλνει κάθε μήνυμα με email. Ένα ηλεκτρονικό κατάστημα στέλνει επιβεβαιώσεις παραγγελιών, τιμολόγια και μηνύματα αποστολής. Το WordPress στέλνει email όταν υπάρχει νέο σχόλιο, ενημέρωση ή επαναφορά κωδικού πρόσβασης. Για τον παραλήπτη, αυτό είναι απλώς mail από το domain σας, και ελέγχεται εξίσου αυστηρά όπως το mail από το mailbox σας: SPF, DKIM, DMARC, φήμη.
Ωστόσο, το mail από ιστότοπους αποτυγχάνει πιο συχνά από το συνηθισμένο mail. Αυτό οφείλεται συνήθως σε έναν από τρεις λόγους: τον τρόπο αποστολής, τη διεύθυνση αποστολέα ή κατάχρηση της φόρμας.
Τρόπος 1: PHP mail()
Ο απλούστερος τρόπος για να στέλνει email ένας ιστότοπος είναι η συνάρτηση PHP mail(). Ο ιστότοπος παραδίδει τότε το mail απευθείας στο πρόγραμμα email του web server, χωρίς σύνδεση. Συνήθως λειτουργεί, αλλά έχει μειονεκτήματα:
- Ο envelope-αποστολέας (Return-Path) γίνεται συχνά ο λογαριασμός συστήματος του πακέτου σας, όπως
gebruiker@server.hosting.example, και όχι η δική σας διεύθυνση. Το SPF ελέγχεται τότε για το domain του server, και επομένως δεν είναι ευθυγραμμισμένο με το domain του From σας (μάθημα 7.1). - Το αν προστίθεται υπογραφή DKIM του domain σας εξαρτάται από τον server. Σε ορισμένους server συμβαίνει, σε άλλους όχι.
- Δεν βλέπετε τίποτα πίσω. Αν το mail δεν φτάσει ή λάβετε bounce, αυτό πηγαίνει στον λογαριασμό συστήματος, όπου κανείς δεν κοιτάζει.
- Κανένα όριο ανά φόρμα. Αν γίνει κατάχρηση της φόρμας, ο server στέλνει mail στο όνομά σας μέχρι να φτάσει το όριο του πακέτου σας.
Τρόπος 2: SMTP με σύνδεση (καλύτερα)
Αφήστε τον ιστότοπό σας να στέλνει όπως κάνει το πρόγραμμα email σας: σύνδεση στον server εξερχόμενου mail με πραγματικό mailbox, μέσω θύρας 587 (STARTTLS) ή 465 (SSL/TLS), με την πλήρη διεύθυνση email ως όνομα χρήστη (μαθήματα 1.4 και 2.1). Τότε:
- ο envelope-αποστολέας είναι η δική σας διεύθυνση και το mail υπογράφεται όπως το συνηθισμένο mail από το domain σας·
- τα bounces καταλήγουν σε mailbox που μπορείτε να διαβάσετε·
- το απεσταλμένο mail εμφανίζεται, αν το θέλετε, στον φάκελο Sent·
- μπορείτε να ορίσετε δικό σας όριο αποστολής ανά mailbox.
Στο WordPress αυτό γίνεται με ένα SMTP-plugin. Αυτό αντικαθιστά τη βασική λειτουργία mail του WordPress με αποστολή μέσω SMTP. Συμπληρώνετε τα ίδια στοιχεία όπως σε ένα πρόγραμμα email: server, θύρα, ασφάλεια, όνομα χρήστη και κωδικός πρόσβασης. Δημιουργήστε για αυτό κατά προτίμηση ένα ξεχωριστό mailbox, για παράδειγμα website@example.com. Αν κλαπεί ποτέ ο κωδικός πρόσβασης, το δικό σας mailbox παραμένει ασφαλές, και βλέπετε με μια ματιά ποιο mail προέρχεται από τον ιστότοπο.
Για δικό σας PHP-site υπάρχουν βιβλιοθήκες που στέλνουν μέσω SMTP, όπως το PHPMailer. Τοποθετήστε τον κωδικό πρόσβασης σε αρχείο ρυθμίσεων εκτός του web φακέλου, όχι στον κώδικα μιας σελίδας.
Στο WebOké, τα στοιχεία για SMTP βρίσκονται στον οδηγό DirectAdmin 8.1, με το όνομα server του πακέτου σας· σε άλλους παρόχους βρίσκονται στον οδηγό ή στο email καλωσορίσματος και λειτουργεί με τον ίδιο τρόπο.
Πολύ transactional mail; Χρησιμοποιήστε μια υπηρεσία
Αν στέλνετε εκατοντάδες επιβεβαιώσεις παραγγελιών την ημέρα, αξίζει μια υπηρεσία transactional mail: μια υπηρεσία αποστολής για αυτόματο mail. Αυτή διαθέτει καλή φήμη και δείχνει τι συνέβη με κάθε mail. Συνδέετε το domain όπως και με μια υπηρεσία newsletter (DKIM μέσω CNAME, μάθημα 7.1). Κρατήστε ξεχωριστά το transactional mail και τα newsletters: μια αποτυχημένη καμπάνια δεν πρέπει να επηρεάσει το email επιβεβαίωσης των παραγγελιών σας.
Ο χρυσός κανόνας: η διεύθυνση του επισκέπτη ποτέ δεν είναι ο αποστολέας
Σε μια φόρμα επικοινωνίας είναι δελεαστικό να αφήσετε το mail να στέλνεται "από" τον επισκέπτη. Έτσι μπορείτε να πατήσετε απευθείας Απάντηση στο πρόγραμμα email σας. Αυτό φαίνεται ως εξής:
From: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierΌμως ο server σας δεν επιτρέπεται να στέλνει mail εκ μέρους του example.net. Ας υποθέσουμε ότι το example.net έχει πολιτική DMARC p=reject. Ο server παραλήπτης (ο δικός σας, ή αυτός του Gmail αν κάνετε ανακατεύθυνση mail) βλέπει ένα mail με From example.net που δεν προέρχεται από SPF ή DKIM του example.net, και το απορρίπτει. Πολλά μεγάλα maildomain έχουν αυστηρή πολιτική: σε έλεγχο στις 8 Νοεμβρίου 2026, μεταξύ άλλων τα yahoo.com, aol.com, ziggo.nl και kpnmail.nl είχαν πολιτική DMARC p=reject, και τα icloud.com, gmx.de και web.de p=quarantine. Ένας επισκέπτης με τέτοια διεύθυνση συμπληρώνει τη φόρμα σας, και εσείς δεν λαμβάνετε ποτέ το μήνυμα ή καταλήγει στον φάκελο spam. Domains με p=none (όπως εκείνη τη στιγμή τα gmail.com και hotmail.com) μπορούν να αυστηροποιήσουν την πολιτική τους ανά πάσα στιγμή, και η Google γράφει ρητά στις οδηγίες της ότι δεν επιτρέπεται να μιμείστε διευθύνσεις Gmail ως From. Μην βασίζεστε λοιπόν ποτέ στο ότι θα πάει καλά.
Ο σωστός τρόπος:
From: Website example.com <website@example.com>
Reply-To: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierΟ αποστολέας είναι η δική σας διεύθυνση, οπότε το SPF, το DKIM και το DMARC είναι σωστά. Η διεύθυνση του επισκέπτη βρίσκεται στο Reply-To. Αν πατήσετε Απάντηση, η απάντησή σας πηγαίνει στον Pieter. Στα περισσότερα plugins φορμών βρίσκετε αυτό στις ρυθμίσεις του mail: ορίστε στο Αποστολέας (From) μια σταθερή διεύθυνση από το δικό σας domain, και στο Reply-To το πεδίο όπου ο επισκέπτης συμπληρώνει τη δική του διεύθυνση.
Προστασία φορμών από κατάχρηση
Μια φόρμα χωρίς προστασία θα εντοπιστεί αργά ή γρήγορα από bots. Στην καλύτερη περίπτωση, εσείς λαμβάνετε spam. Στη χειρότερη περίπτωση, την εκμεταλλεύονται για να στέλνουν spam σε άλλους: αν η φόρμα σας στέλνει επιβεβαίωση στη "διεύθυνση που συμπληρώνει ο επισκέπτης", ένα bot μπορεί να συμπληρώσει εκεί οποιαδήποτε διεύθυνση στον κόσμο, με δικό του κείμενο στο μήνυμα. Τότε το domain σας στέλνει spam, με όλες τις συνέπειες για τη φήμη σας (μάθημα 5.2).
Προστασία σε επίπεδα:
- Captcha ή αόρατος έλεγχος (όπως reCAPTCHA ή Turnstile) σταματά τα περισσότερα bots.
- Honeypot: ένα κρυφό πεδίο που οι άνθρωποι δεν βλέπουν αλλά τα bots το συμπληρώνουν. Αν συμπληρωθεί; Τότε το μήνυμα δεν αποστέλλεται.
- Κανένα ελεύθερο κείμενο σε επιβεβαίωση προς τον επισκέπτη, ή καθόλου επιβεβαίωση προς τη δηλωμένη διεύθυνση. Ένα απλό μήνυμα "Ευχαριστούμε, λάβαμε το μήνυμά σας" στη σελίδα είναι αρκετό.
- Όριο αποστολής ανά mailbox για το mailbox του ιστότοπου, χαμηλότερο από αυτό του πακέτου σας.
- Ενημέρωση λογισμικού. Παλιά plugins είναι γνωστή είσοδος για κατάχρηση.
Παρατηρείτε ότι το πακέτο σας στέλνει ξαφνικά πολύ mail ή λαμβάνετε ειδοποίηση ότι έχει φτάσει το ημερήσιο όριο ενώ εσείς στέλνετε λίγο mail; Αλλάξτε τότε αμέσως τους κωδικούς πρόσβασης και ελέγξτε ποια φόρμα ή script στέλνει το mail (μάθημα 3.4).
Το mail βρίσκεται αλλού, ο ιστότοπος εδώ
Μια συχνή παγίδα: ο ιστότοπός σας βρίσκεται σε έναν πάροχο, το mail σας σε άλλον (για παράδειγμα Microsoft 365 ή Google Workspace). Το MX σας δείχνει σε εκείνον τον άλλο πάροχο. Όμως ο web server εξακολουθεί να νομίζει ότι χειρίζεται ο ίδιος το mail για το domain σας, επειδή το domain βρίσκεται και στο δικό του πακέτο. Το mail από τη φόρμα προς το info@example.com το παραδίδει τότε τοπικά, σε ένα mailbox στον web server όπου κανείς δεν κοιτάζει, ή δίνει σφάλμα όπως 550 ... mailbox unavailable.
Η λύση είναι να δηλώσετε στο πάνελ του web server ότι το mail διεκπεραιώνεται αλλού. Στο DirectAdmin στο WebOké, αυτό είναι το πλαίσιο επιλογής "Χρήση αυτού του διακομιστή για τη διαχείριση των email μου" στο MX Records (απενεργοποίηση). Άλλα πάνελ έχουν αντίστοιχες ρυθμίσεις, όπως "email routing: εξωτερικό" στο cPanel. Ακόμα καλύτερα: αφήστε τον ιστότοπο να στέλνει mail μέσω SMTP με mailbox στον πάροχο όπου βρίσκεται πραγματικά το mail σας.
Σύνοψη
- Το mail του ιστότοπου ελέγχεται εξίσου αυστηρά όπως το συνηθισμένο mail. Αφήστε τον ιστότοπο να στέλνει μέσω SMTP με σύνδεση, όχι μέσω
mail(). - Χρησιμοποιήστε ξεχωριστό mailbox για τον ιστότοπο, με δικό του όριο αποστολής.
- Η διεύθυνση του επισκέπτη ανήκει στο Reply-To, ποτέ στο From. Διαφορετικά το DMARC αποτυγχάνει, και σε domains με
p=reject(όπως yahoo.com, ziggo.nl, kpnmail.nl) το mail απορρίπτεται. - Προστατέψτε τις φόρμες με captcha, honeypot και χωρίς ελεύθερες επιβεβαιώσεις προς δηλωμένες διευθύνσεις.
- Αν το mail σας βρίσκεται σε άλλον πάροχο, απενεργοποιήστε την τοπική παράδοση στον web server ή στείλτε mail μέσω SMTP σε εκείνον τον πάροχο.
Κουίζ
Άσκηση
Άσκηση O7.3: Επανεξέταση της αλληλογραφίας από τον ιστότοπο. Συμπληρώστε μια φόρμα στον δικό σας ιστότοπο με διεύθυνση Gmail ή Outlook.com ως αποστολέα και εξετάστε τις κεφαλίδες του μηνύματος που φτάνει σε εσάς. Απαντήστε στη λίστα ελέγχου: ποια διεύθυνση βρίσκεται στο From, βρίσκεται η διεύθυνση του επισκέπτη στο Reply-To, τι δηλώνουν τα spf=, dkim= και dmarc= στο Authentication-Results, στέλνει ο ιστότοπός σας μέσω SMTP ή μέσω mail(), και έχει η φόρμα captcha ή honeypot; Αν δεν έχετε δικό σας ιστότοπο, απαντήστε στις ερωτήσεις για το παράδειγμα σε αυτό το μάθημα. Στη συνέχεια θα λάβετε την υποδειγματική απάντηση.
Άσκηση O7.3: Επανεξέταση της αλληλογραφίας από τον ιστότοπο
Αυτή την άσκηση την κάνετε μόνοι σας: κανείς δεν την ελέγχει. Σημειώστε τι έχετε κάνει και επισημάνετε την άσκηση ως ολοκληρωμένη.
From = μια σταθερή δική σας διεύθυνση, Reply-To = ο επισκέπτης, αποστολή μέσω SMTP με σύνδεση, captcha ή honeypot, και καμία επιβεβαίωση με ελεύθερο κείμενο (αυτό το εκμεταλλεύονται οι αποστολείς ανεπιθύμητης αλληλογραφίας). Αν η διεύθυνση του επισκέπτη βρίσκεται στο From, τότε το DMARC αποτυγχάνει μόλις το domain του επισκέπτη έχει πολιτική (μάθημα 7.3).
Τα τικ και οι σημειώσεις σας παραμένουν μόνο σε αυτό το πρόγραμμα περιήγησης· δεν τα στέλνουμε πουθενά. Αν έχετε εγγραφεί, αποθηκεύουμε στο Τα μαθήματά μου μόνο ότι έχετε ολοκληρώσει την άσκηση.
Για περαιτέρω μελέτη
Τα βήματα σε αυτά τα άρθρα ισχύουν για τα πάνελ του WebOké· σε άλλους παρόχους λειτουργεί με παρόμοιο τρόπο.
- Μια φόρμα επικοινωνίας στον ιστότοπό σας: αποστολή πεδίων μέσω email και αποτροπή spam
- Πώς μπορώ να ορίσω τον σωστό αποστολέα με τη mail() της PHP; SMTP
- Η αποστολή email μέσω PHP δεν λειτουργεί, οι εγγραφές MX παραπέμπουν αλλού
- Όριο αποστολής email
- Συμπληρώθηκε το ημερήσιο όριο email
- Εγχειρίδιο DirectAdmin 8.1: Όλες οι ρυθμίσεις με μια ματιά: servers, θύρες και ασφάλεια
- Εγχειρίδιο DirectAdmin 5.10: E-mail bij Microsoft 365 of Google Workspace, website bij WebOké
