Kaip PHP su mail() funkcija galiu nustatyti teisingą siuntėją? SMTP
Jei Jūsų svetainė siunčia laiškus PHP funkcija mail(), laiškai išsiunčiami neprisijungus. Techninis siuntėjas (Return-Path) tuomet dažnai yra Jūsų paketo sistemos paskyra, o ne Jūsų paties adresas. Dėl to SPF ir DMARC patikra nepavyksta tinkamai, laiškai dažniau patenka į šlamštą, o klaidų pranešimai keliauja į pašto dėžutę, kurios niekas netikrina.
Todėl leiskite savo svetainei siųsti laiškus per SMTP su prisijungimu, kaip tai daro Jūsų pašto programa. Tuomet siuntėjas yra Jūsų adresas, o laiškai traktuojami kaip įprasti Jūsų domeno laiškai.
SMTP duomenys
- Serveris: Jūsų domeno vardas (jouwdomein.nl), jei Jūsų svetainė talpinama WebOké, arba Jūsų paketo serverio pavadinimas, pavyzdžiui, linux2023.webawere.nl. Jį rasite Mano WebOké skiltyje Mano produktai, stulpelyje Serveris.
- Prievadas: 465 su SSL/TLS arba 587 su STARTTLS.
- Naudotojo vardas: visas pašto dėžutės el. pašto adresas, geriausia atskiros svetainei skirtos pašto dėžutės, pavyzdžiui, website@jouwdomein.nl.
- Slaptažodis: tos pašto dėžutės slaptažodis.
Kaip siuntėją (From) naudokite tos pašto dėžutės adresą arba persiuntimo adresą (forwarder), kuris peradresuoja į ją. Lankytojo adreso niekada nenurodykite lauke From, jį nurodykite lauke Reply-To. Kitaip serveris laišką atmes arba jis pateks į šlamštą.
Pavyzdys su PHPMailer
Dažnai naudojama biblioteka yra PHPMailer. Ją įdiegsite naudodami 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;
}
Naudojate WordPress arba WooCommerce? Tuomet tai sutvarkysite SMTP įskiepiu, žr. Patikimas laiškų siuntimas iš WordPress ir WooCommerce per SMTP. Kaip apsaugoti formą nuo šlamšto, skaitykite straipsnyje Kontaktų forma Jūsų svetainėje: laukų siuntimas el. paštu ir šlamšto prevencija.
Norite sužinoti daugiau? Išklausykite nemokamą kursą „Tvarkingas el. paštas“, pamoka 7.3 Laiškai iš svetainės ir formų.
Norite sužinoti daugiau? Išklausykite nemokamą WordPress kursą, pamoka 9.1 El. paštas iš WordPress.
