Kako lahko v PHP z mail() dosežem pravilnega pošiljatelja? smtp
Če Vaše spletno mesto pošilja pošto s PHP-funkcijo mail(), pošta odide brez prijave. Tehnični pošiljatelj (Return-Path) je takrat pogosto sistemski račun Vašega paketa in ne Vaš lastni naslov. Zato SPF in DMARC ne delujeta pravilno, pošta pogosteje konča med neželeno pošto, sporočila o napakah pa prispejo v nabiralnik, ki ga nihče ne pregleduje.
Zato naj Vaše spletno mesto pošilja pošto prek SMTP s prijavo, enako kot Vaš poštni program. Tako je pošiljatelj Vaš lastni naslov, pošta pa se obravnava kot običajna pošta z Vaše domene.
Podatki za SMTP
- Strežnik: Vaše ime domene (jouwdomein.nl), če je Vaše spletno mesto pri WebOké, ali ime strežnika Vašega paketa, na primer linux2023.webawere.nl. Najdete ga v Moj WebOké pod Moji izdelki, v stolpcu Strežnik.
- Vrata: 465 s SSL/TLS ali 587 s STARTTLS.
- Uporabniško ime: celoten e-poštni naslov nabiralnika, po možnosti ločenega nabiralnika za spletno mesto, na primer website@jouwdomein.nl.
- Geslo: geslo tega nabiralnika.
Kot pošiljatelja (From) uporabite naslov tega nabiralnika ali posredovalnik (forwarder), ki pošto preusmerja nanj. Naslova obiskovalca nikoli ne vpišite v From, temveč v Reply-To. V nasprotnem primeru strežnik pošto zavrne ali pa ta konča med neželeno pošto.
Primer s PHPMailer
Pogosto uporabljena knjižnica je PHPMailer. Namestite jo s Composerjem (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;
}
Uporabljate WordPress ali WooCommerce? To uredite z vtičnikom za SMTP, glejte Zanesljivo pošiljanje pošte iz WordPressa in WooCommerce prek SMTP. Kako obrazec zaščitite pred neželeno pošto, preberite v članku Kontaktni obrazec na Vašem spletnem mestu: pošiljanje polj po e-pošti in preprečevanje neželene pošte.
Želite izvedeti več? Udeležite se brezplačnega tečaja Urejena e-pošta, lekcija 7.3 Pošta z Vašega spletnega mesta in obrazci.
Želite izvedeti več? Udeležite se brezplačnega tečaja WordPress, lekcija 9.1 E-pošta iz WordPressa.
