Hvordan kan jeg få riktig avsender med mail() i php? smtp
Sender nettstedet ditt e-post med PHP-funksjonen mail(), går e-posten ut uten innlogging. Den tekniske avsenderen (Return-Path) er da ofte systemkontoen til pakken din, og ikke din egen adresse. Derfor stemmer ikke SPF og DMARC, e-posten havner oftere i søppelposten, og feilmeldinger havner i en innboks som ingen leser.
La derfor nettstedet ditt sende e-post via SMTP med innlogging, akkurat som e-postprogrammet ditt. Da er din egen adresse avsender, og e-posten behandles som vanlig e-post fra domenet ditt.
Opplysningene for SMTP
- Server: domenenavnet ditt (jouwdomein.nl) hvis nettstedet ditt ligger hos WebOké, eller servernavnet til pakken din, for eksempel linux2023.webawere.nl. Du finner det på Min side under Mine produkter, i kolonnen Server.
- Port: 465 med SSL/TLS, eller 587 med STARTTLS.
- Brukernavn: den fullstendige e-postadressen til en innboks, helst en egen innboks for nettstedet, for eksempel website@jouwdomein.nl.
- Passord: passordet til den innboksen.
Bruk adressen til den innboksen som avsender (From), eller en videresending som sender til den. Adressen til en besøkende setter du aldri i From, men i Reply-To. Ellers avviser serveren e-posten, eller den havner i søppelposten.
Eksempel med PHPMailer
Et mye brukt bibliotek er PHPMailer. Du installerer det med 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;
}
Bruker du WordPress eller WooCommerce? Da ordner du dette med en SMTP-plugin, se Send e-post fra WordPress og WooCommerce pålitelig via SMTP. Hvordan du beskytter et skjema mot spam, leser du i Et kontaktskjema på nettstedet ditt: send felt på e-post og forhindre spam.
Vil du lære mer? Ta det gratis kurset E-post i orden, leksjon 7.3 E-post fra nettstedet ditt og skjemaer.
Vil du lære mer? Ta det gratis WordPress-kurset, leksjon 9.1 E-post fra WordPress.
