Hogyan érhetem el PHP-ban a mail() függvénnyel, hogy a megfelelő feladó jelenjen meg? SMTP
Ha az Ön weboldala a PHP mail() függvényével küld leveleket, akkor a levél bejelentkezés nélkül megy ki. A technikai feladó (Return-Path) ilyenkor gyakran a csomag rendszerfiókja, és nem az Ön saját címe. Emiatt az SPF és a DMARC nem megfelelő, a levél gyakrabban kerül a spam mappába, a hibaüzenetek pedig egy olyan postafiókba érkeznek, amelyet senki sem néz.
Ezért javasoljuk, hogy weboldala bejelentkezéssel, SMTP-n keresztül küldjön leveleket, ugyanúgy, mint a levelezőprogramja. Így az Ön saját címe lesz a feladó, és a levelet a domainjéről küldött hagyományos levélként kezelik.
Az SMTP adatai
- Szerver: az Ön domainneve (jouwdomein.nl), ha weboldala a WebOké-nál található, vagy a csomag szerverneve, például linux2023.webawere.nl. Ezt a Fiókom felületen, a Termékeim menüpontban, a Szerver oszlopban találja.
- Port: 465 SSL/TLS-sel, vagy 587 STARTTLS-sel.
- Felhasználónév: egy postafiók teljes e-mail-címe, lehetőleg egy külön, a weboldal számára létrehozott postafiók, például website@jouwdomein.nl.
- Jelszó: az adott postafiók jelszava.
Feladóként (From) ennek a postafióknak a címét használja, vagy egy olyan továbbítót, amely erre a postafiókra továbbít. A látogató címét soha ne a From mezőbe, hanem a Reply-To mezőbe írja. Ellenkező esetben a szerver elutasítja a levelet, vagy az a spam mappába kerül.
Példa PHPMailerrel
Egy gyakran használt könyvtár a PHPMailer. Composerrel telepíthető (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;
}
WordPresst vagy WooCommerce-t használ? Ebben az esetben ezt egy SMTP-bővítménnyel oldhatja meg, lásd: Levelek megbízható küldése WordPressből és WooCommerce-ből SMTP-n keresztül. Arról, hogyan védheti meg űrlapját a spam ellen, itt olvashat: Kapcsolatfelvételi űrlap a weboldalon: mezők elküldése e-mailben és a spam megelőzése.
Szeretne többet megtudni? Végezze el az ingyenes Rendezett e-mail-kezelés tanfolyamot, lecke: 7.3 Levelek küldése a weboldalról és űrlapokból.
Szeretne többet megtudni? Végezze el az ingyenes WordPress-tanfolyamot, lecke: 9.1 E-mail küldése WordPressből.
