Πώς μπορώ να ορίσω τον σωστό αποστολέα στην PHP με τη mail(); smtp
Εάν ο ιστότοπός σας στέλνει email με τη συνάρτηση PHP mail(), το μήνυμα αποστέλλεται χωρίς σύνδεση. Ο τεχνικός αποστολέας (Return-Path) είναι τότε συχνά ο λογαριασμός συστήματος του πακέτου σας και όχι η δική σας διεύθυνση. Γι' αυτό τα SPF και DMARC δεν ταιριάζουν σωστά, το email καταλήγει συχνότερα στα spam και τα μηνύματα σφάλματος πηγαίνουν σε ένα mailbox που δεν ελέγχει κανείς.
Γι' αυτό, ρυθμίστε τον ιστότοπό σας να στέλνει email μέσω SMTP με σύνδεση, όπως ακριβώς και το πρόγραμμα email σας. Έτσι αποστολέας είναι η δική σας διεύθυνση και το email αντιμετωπίζεται ως κανονικό email από το domain σας.
Τα στοιχεία για το SMTP
- Server: το όνομα του domain σας (jouwdomein.nl), εάν ο ιστότοπός σας φιλοξενείται στη WebOké, ή το όνομα server του πακέτου σας, όπως linux2023.webawere.nl. Θα το βρείτε στο Το WebOké μου, στην ενότητα Τα προϊόντα μου, στη στήλη Server.
- Θύρα: 465 με SSL/TLS ή 587 με STARTTLS.
- Όνομα χρήστη: η πλήρης διεύθυνση email ενός mailbox, κατά προτίμηση ενός ξεχωριστού mailbox για τον ιστότοπο, όπως website@jouwdomein.nl.
- Κωδικός πρόσβασης: ο κωδικός πρόσβασης αυτού του mailbox.
Ως αποστολέα (From) χρησιμοποιήστε τη διεύθυνση αυτού του mailbox ή ένα forwarder που προωθεί σε αυτό. Τη διεύθυνση ενός επισκέπτη δεν τη βάζετε ποτέ στο From, αλλά στο Reply-To. Διαφορετικά ο server απορρίπτει το email ή αυτό καταλήγει στα spam.
Παράδειγμα με PHPMailer
Μια ευρέως χρησιμοποιούμενη βιβλιοθήκη είναι η PHPMailer. Την εγκαθιστάτε με το Composer (composer require phpmailer/phpmailer).
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// SMTP-instellingen
$mail->isSMTP();
$mail->Host = 'jouwdomein.nl';
$mail->Port = 465;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->SMTPAuth = true;
$mail->Username = 'website@jouwdomein.nl';
$mail->Password = 'wachtwoord';
$mail->CharSet = 'UTF-8';
// Afzender, antwoordadres en ontvanger
$mail->setFrom('website@jouwdomein.nl', 'Website jouwdomein.nl');
$mail->addReplyTo('bezoeker@example.net');
$mail->addAddress('info@jouwdomein.nl');
// Bericht
$mail->Subject = 'Testbericht';
$mail->Body = 'Dit is een testmail verzonden via SMTP.';
$mail->send();
echo 'E-mail verzonden';
} catch (Exception $e) {
echo 'Versturen mislukt: ' . $mail->ErrorInfo;
}
Χρησιμοποιείτε WordPress ή WooCommerce; Τότε το ρυθμίζετε με ένα plugin SMTP, δείτε Αξιόπιστη αποστολή email από WordPress και WooCommerce μέσω SMTP. Για το πώς προστατεύετε μια φόρμα από spam, διαβάστε Φόρμα επικοινωνίας στον ιστότοπό σας: αποστολή πεδίων με email και αποτροπή spam.
Θέλετε να μάθετε περισσότερα; Παρακολουθήστε το δωρεάν μάθημα Τακτοποιημένο email, ενότητα 7.3 Email από τον ιστότοπό σας και φόρμες.
Θέλετε να μάθετε περισσότερα; Παρακολουθήστε το δωρεάν μάθημα WordPress, ενότητα 9.1 Email από το WordPress.
