Modulul 9 · 9.1
E-mail din WordPress
Modulul 9: E-mail, vizibilitate în căutare, GDPR, întreținere și mutare · Timp de citire: 9 minute
Obiectiv de învățare: După această lecție veți putea să vă asigurați că e-mailurile din WordPress (formulare, comenzi, linkuri de parolă) ajung în mod fiabil la destinație.
Concepte-cheie: wp_mail, PHP mail(), expeditor (From), Reply-To, SMTP, modul (plugin) SMTP, căsuță de e-mail autentificată, serviciu de e-mail tranzacțional, SPF, DKIM, DMARC, aliniere, MX în altă parte, e-mail de test
WordPress trimite mai multe e-mailuri decât credeți
Site-ul dumneavoastră trimite e-mailuri la: completarea unui formular de contact, o comandă (către client și către dumneavoastră), un utilizator nou, o parolă uitată, un comentariu nou, o actualizare automată, o eroare critică (lecția 5.4). Dacă acel e-mail nu ajunge, de multe ori observați abia atunci când un client vă sună: „am completat formularul de trei ori.”
Cum trimite WordPress e-mailuri implicit
WordPress trimite totul prin funcția wp_mail. Implicit, aceasta predă e-mailul funcției PHP mail(), care îl transmite mai departe programului de e-mail al serverului web. Acest lucru funcționează, dar are trei puncte slabe:
- Expeditorul. Fără o configurare, WordPress trimite ca
wordpress@example.com. Dacă acea adresă nu există sau expeditorul este diferit de domeniul dumneavoastră, destinatarii nu au încredere în e-mail. - SPF, DKIM și DMARC. Serverele de e-mail care primesc mesajul verifică dacă serverul care livrează e-mailul are voie să trimită în numele domeniului dumneavoastră (SPF), dacă e-mailul are o semnătură digitală validă a domeniului dumneavoastră (DKIM) și care este politica domeniului dumneavoastră atunci când acestea nu corespund (DMARC). În cursul DNS (lecțiile 4.3 până la 4.5) puteți citi cum funcționează acest lucru. E-mailul trimis prin serverul web trece aceste verificări doar dacă DNS-ul și serverul sunt configurate corespunzător.
- E-mailul este în altă parte. Dacă e-mailul dumneavoastră nu se află la furnizorul de găzduire, ci de exemplu la Microsoft 365 sau Google Workspace (înregistrările MX indică acolo), atunci e-mailul trimis prin serverul web deseori nu corespunde cu SPF și DKIM. Și unele servere web încearcă să livreze local e-mailurile către propriul domeniu în loc să le trimită prin MX, astfel încât acestea nu ajung niciodată în căsuța dumneavoastră reală de e-mail.
Configurarea corectă a expeditorului și a Reply-To
O greșeală frecventă la formularele de contact: folosirea adresei vizitatorului ca expeditor (From). Acest lucru pare logic („atunci pot apăsa pe răspuns”), dar serverul dumneavoastră nu are voie să trimită e-mailuri în numele domeniului @gmail.com sau @hotmail.com. Aceste domenii au o politică DMARC strictă, astfel că destinatarul refuză e-mailul sau îl trimite la spam.
Corect este:
From: Website <website@example.com> (o adresă de pe propriul dvs. domeniu)
Reply-To: bezoeker@example.net (adresa completată de vizitator)
To: info@example.comCu Reply-To răspunsul dumneavoastră ajunge totuși la vizitator. Aproape fiecare modul (plugin) de formular are aceste două câmpuri separate.
SMTP: trimiterea printr-o căsuță de e-mail reală
Soluția cea mai fiabilă este să lăsați WordPress să trimită e-mailuri prin SMTP: aceeași metodă prin care trimite programul dumneavoastră de e-mail, cu un nume de utilizator și o parolă ale unei căsuțe de e-mail reale. Faceți acest lucru cu un modul (plugin) SMTP (de exemplu WP Mail SMTP, FluentSMTP sau Post SMTP; mai există și altele). Modulul (pluginul) interceptează wp_mail și trimite e-mailul prin serverul pe care îl indicați:
| Opțiune | Pentru cine |
|---|---|
Căsuța de e-mail de la propriul furnizor de găzduire (de exemplu website@example.com pe serverul de e-mail al pachetului dumneavoastră de găzduire) | Majoritatea site-urilor mici cu e-mailul la același furnizor |
| E-mailul dumneavoastră este la Microsoft 365 sau Google Workspace | Dacă e-mailul se află acolo; deseori printr-o conexiune specială în modul (plugin) (OAuth) în loc de o parolă, deoarece aceste servicii limitează din ce în ce mai mult autentificarea SMTP obișnuită |
| Un serviciu de e-mail tranzacțional (un serviciu specializat în trimiterea de e-mailuri din site-uri web și aplicații) | Magazine online și site-uri care trimit multe e-mailuri |
Avantaje: e-mailul trece printr-un server deja configurat cu SPF și DKIM pentru domeniul dumneavoastră, expeditorul este o adresă existentă, iar multe module (pluginuri) păstrează un jurnal (log), astfel încât puteți vedea ce a fost trimis și ce a eșuat.
Aveți grijă la câteva lucruri:
- Folosiți o adresă de e-mail separată pentru site (de exemplu
website@), nu propria dumneavoastră căsuță de e-mail. Dacă site-ul este spart și parola se scurge, acea adresă poate fi înlocuită fără pagube. - Parola SMTP se află în baza de date sau în wp-config.php. Folosiți, acolo unde este posibil, o parolă de aplicație sau o conexiune fără parolă.
- Un jurnal de e-mail conține date cu caracter personal (cine a trimis ce). Nu îl lăsați să crească la nesfârșit (lecția 9.3).
SPF, DKIM și DMARC pentru site-ul dumneavoastră
Indiferent ce server trimite, DNS-ul dumneavoastră trebuie să corespundă:
- SPF: înregistrarea SPF a domeniului dumneavoastră trebuie să menționeze serverul care livrează e-mailul. Dacă trimiteți prin serverul de e-mail al furnizorului dumneavoastră de găzduire, acesta se află de obicei deja acolo. Dacă trimiteți printr-un serviciu tranzacțional, adăugați
include:-ul lor, în aceeași înregistrare SPF (niciodată o a doua înregistrare SPF, cursul DNS lecția 4.3). - DKIM: serverul expeditor trebuie să semneze e-mailul cu o cheie care se află în DNS-ul dumneavoastră (
<selector>._domainkey.example.com). Activați acest lucru la furnizorul dumneavoastră de găzduire și la serviciile tranzacționale; serviciul vă oferă înregistrările. - DMARC: o înregistrare la
_dmarc.example.com. Începeți cup=noneși înăspriți după ce totul funcționează corect (cursul DNS lecția 4.5).
Pentru DMARC, domeniul din From trebuie să fie aliniat cu domeniul care trece de SPF sau DKIM. De aceea „From pe propriul dumneavoastră domeniu” este atât de important.
Testare
- Multe module (pluginuri) SMTP au un buton Trimite e-mail de test. Trimiteți unul către o adresă de la un alt furnizor (o adresă Gmail sau Outlook.com) și verificați dacă ajunge în inbox.
- Verificați în acel e-mail antetele (header-urile) („Afișare original” sau „Afișare sursă”). Căutați
spf=pass,dkim=passșidmarc=pass. - Completați propriul formular de contact și verificați dacă e-mailul ajunge, cu Reply-To-ul corect.
- Testați și un link de parolă și, la un magazin, o comandă de test.
Instrumente online precum mail-tester.com oferă un scor și explicații; cu verificarea de e-mail (E-mailcheck) a furnizorului dumneavoastră de găzduire (la WebOké se numește astfel) sau internet.nl verificați partea de DNS.
În practică: cum arată într-un panou de control
Ca exemplu folosim DirectAdmin și un modul (plugin) SMTP. La alți furnizori de găzduire și module (pluginuri) câmpurile se numesc similar.
- Creați în DirectAdmin, la E-mail accounts, o căsuță de e-mail
website@example.comcu o parolă puternică. - Căutați la furnizorul dumneavoastră de găzduire setările pentru e-mail trimis (nume server, port 465 sau 587, criptare).
- Introduceți-le în modulul (pluginul) SMTP, cu
website@example.comca expeditor. Activați „forțare expeditor”, astfel încât și alte module (pluginuri) să folosească această adresă. - Verificați la administrarea DNS că SPF, DKIM și DMARC există pentru domeniul dumneavoastră.
- Trimiteți un e-mail de test și citiți antetele (header-urile).
Rezumat
- WordPress trimite prin wp_mail și implicit prin PHP mail(); expeditorul și DNS-ul determină dacă e-mailul ajunge.
- Setați expeditorul (From) pe o adresă a propriului dumneavoastră domeniu și adresa vizitatorului în Reply-To.
- Un modul (plugin) SMTP cu o căsuță de e-mail separată sau un serviciu tranzacțional este cel mai fiabil, cu un jurnal (log).
- SPF trebuie să menționeze serverul expeditor (într-o singură înregistrare), DKIM trebuie activat, DMARC trebuie să înceapă cu p=none.
- Testați cu o adresă de la un alt furnizor și citiți spf, dkim și dmarc în antete (header-uri).
Test
Exercițiu
Exercițiu A9.1: Este domeniul dumneavoastră pregătit pentru a trimite e-mailuri de pe site? Introduceți domeniul dumneavoastră, adresa pe care site-ul dumneavoastră o folosește ca expeditor și serverul prin care site-ul dumneavoastră trimite e-mailuri (numele serverului SMTP, sau „server web” dacă nu ați configurat nimic). Introduceți și selectorul DKIM dacă îl cunoașteți. Programul verifică: adresa expeditorului aparține domeniului dumneavoastră, există exact o înregistrare SPF și aceasta permite serverul menționat, există o înregistrare DKIM la selector (sau raportează că nu poate verifica fără selector) și există o înregistrare DMARC validă.
Exercițiu D9.1: Citirea unui e-mail de test. Trimiteți un e-mail de test de pe site-ul dumneavoastră (butonul de testare al modulului/pluginului dumneavoastră SMTP, sau un link de parolă către un cont de test) către o adresă de la un alt furnizor. Deschideți antetele (header-urile) acelui e-mail și notați rezultatele la spf, dkim și dmarc, precum și ce domeniu apare la fiecare. Apoi completați propriul formular de contact și verificați: ajunge e-mailul, iar „răspunde” merge către adresa pe care ați introdus-o în formular?
Exercițiul D9.1: Citirea unui e-mail de test
Acest exercițiu îl faceți singur; nimeni nu îl verifică. Bifați ce ați făcut și marcați exercițiul ca finalizat.
Trei rezultate (pass, fail sau none) cu un domeniu, de exemplu "spf=pass smtp.mailfrom=exemplu.ro". În cazul unui fail, menționați pasul următor (completarea SPF, activarea DKIM, modul SMTP).
Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.
Lecturi suplimentare
Aceste articole descriu pașii în panourile de control ale WebOké; la alte panouri funcționează similar.
- Trimiterea e-mailurilor prin PHP nu funcționează, înregistrările MX trimit în altă parte
- Cum obțin expeditorul corect cu mail() în PHP? SMTP
- Un formular de contact pe site-ul dumneavoastră: trimiterea câmpurilor prin e-mail și prevenirea spamului
- Cum funcționează trimiterea e-mailurilor / SMTP
- Manual DirectAdmin 18.10: Nu pot trimite e-mailuri
- Curs gratuit de DNS 4.3: SPF: cine are voie să trimită e-mailuri în numele domeniului dumneavoastră?
- Curs gratuit de DNS 4.4: DKIM: semnătura sub e-mailul dumneavoastră
- Curs gratuit de DNS 4.5: DMARC: ce trebuie să facă destinatarii cu e-mailurile false
