Cum pot obține expeditorul corect în PHP cu mail()? SMTP
Dacă site-ul dumneavoastră trimite e-mailuri cu funcția PHP mail(), mesajele pleacă fără autentificare. Expeditorul tehnic (Return-Path) este atunci adesea contul de sistem al pachetului dumneavoastră, nu propria dumneavoastră adresă. Din acest motiv, SPF și DMARC nu se potrivesc corect, mesajele ajung mai des în spam, iar notificările de eroare ajung într-o căsuță poștală pe care nu o verifică nimeni.
De aceea, configurați site-ul să trimită e-mailuri prin SMTP cu autentificare, la fel ca programul dumneavoastră de e-mail. Astfel, expeditorul este propria dumneavoastră adresă, iar mesajele sunt tratate ca e-mailuri obișnuite de pe domeniul dumneavoastră.
Datele pentru SMTP
- Server: numele domeniului dumneavoastră (jouwdomein.nl), dacă site-ul este găzduit la WebOké, sau numele serverului pachetului dumneavoastră, de exemplu linux2023.webawere.nl. Îl găsiți în Contul meu WebOké, la Produsele mele, în coloana Server.
- Port: 465 cu SSL/TLS sau 587 cu STARTTLS.
- Nume de utilizator: adresa de e-mail completă a unei căsuțe poștale, de preferință o căsuță separată pentru site, de exemplu website@jouwdomein.nl.
- Parolă: parola acelei căsuțe poștale.
Folosiți ca expeditor (From) adresa acelei căsuțe poștale sau un forwarder care redirecționează către ea. Adresa unui vizitator nu o puneți niciodată în From, ci în Reply-To. În caz contrar, serverul refuză mesajul sau acesta ajunge în spam.
Exemplu cu PHPMailer
O bibliotecă folosită frecvent este PHPMailer. O instalați cu 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;
}
Folosiți WordPress sau WooCommerce? Atunci rezolvați acest lucru cu un plugin SMTP, consultați Trimiterea fiabilă a e-mailurilor din WordPress și WooCommerce prin SMTP. Cum protejați un formular împotriva spamului aflați în Un formular de contact pe site-ul dumneavoastră: trimiterea câmpurilor prin e-mail și prevenirea spamului.
Doriți să aflați mai multe? Urmați cursul gratuit E-mail în ordine, lecția 7.3 E-mailuri de pe site și formulare.
Doriți să aflați mai multe? Urmați cursul gratuit de WordPress, lecția 9.1 E-mailuri din WordPress.
